http form -> php -> mysql snafu

Reply

Join Date: Sep 2006
Posts: 9
Reputation: went1180 is an unknown quantity at this point 
Solved Threads: 0
went1180 went1180 is offline Offline
Newbie Poster

http form -> php -> mysql snafu

 
0
  #1
Sep 4th, 2006
having an issue--*cough*newbie*cough*--the html and php code here supposedly creates a new record into my database. problem is, the successfully connects to sql and creates the record, but the contents of the $_POST variables do not make it into their respective fields. I have an id field (AUTO_INCREMENT) that is created successfully, but no text in the mailto, firstname, and lastname fields.

any comments would be most appreciated....

[html]
<html>
<head>
<title>Bee In The Buzz</title>
</head>

<body>

<p>Are you a:

<form method="post" action="form2sql.php">
<LABEL for="firstname">First name: </LABEL>
<INPUT type="text" name="firstname"><BR>
<LABEL for="lastname">Last name: </LABEL>
<INPUT type="text" name="lastname"><BR>
<LABEL for="mailto">email: </LABEL>
<INPUT type="text" name="mailto"><BR>

<input type="submit" name="Submit"/>
</form>


</body>
</html>
[/html]

form2sql.php:

[php]
<?php

$hostname="***";
$username="***";
$password="***";
$dbname="testdog";
$usertable="emails";


$con = mysql_connect($hostname,$username, $password);
if (!$con)
{
die('Could not connect: ' . mysql_error());
}

mysql_select_db("testdog", $con);

$sql="use emails";
$sql="INSERT INTO emails (mailto, firstname, lastname)
VALUES
('$_POST[mailto]','$_POST[firstname]','$_POST[lastname]')";

if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo "1 record added";

mysql_close($con)
?>
[/php]
Reply With Quote Quick reply to this message  
Join Date: Jul 2004
Posts: 494
Reputation: Puckdropper is an unknown quantity at this point 
Solved Threads: 21
Puckdropper Puckdropper is offline Offline
Posting Pro in Training

Re: http form -> php -> mysql snafu

 
0
  #2
Sep 4th, 2006
You're using $_POST wrong.

This:
  1. $sql="INSERT INTO emails (mailto, firstname, lastname)
  2. VALUES
  3. ('$_POST[mailto]','$_POST[firstname]','$_POST[lastname]')";
Should be:
  1. $sql="INSERT INTO emails (mailto, firstname, lastname)
  2. VALUES
  3. ('$_POST['mailto']','$_POST['firstname']','$_POST['lastname']')";

I haven't tried this, but I think it works. I don't normally do INSERT queries like this, as I need to escape the data. Doing it all on one line of code makes for a mess.

You need to escape the data too, unless you want to allow for SQL injection attacks... (With some educated guesses a hacker could figure out what to do to end your SQL statement and add some of his own.)

  1. $mailto = $_POST['mailto'];
  2. $mailto = mysql_real_escape_string($mailto)
  3.  
  4. * repeat for each variable *
  5.  
  6. $sql="INSERT INTO emails (mailto, firstname, lastname)
  7. VALUES
  8. ('$mailto', '$firstname', '$lastname')";
www.uncreativelabs.net

Old computers are getting to be a lost art. Here at Uncreative Labs, we still enjoy using the old computers. Sometimes we want to see how far a particular system can go, other times we use a stock system to remind ourselves of what we once had.
Reply With Quote Quick reply to this message  
Join Date: Sep 2006
Posts: 9
Reputation: went1180 is an unknown quantity at this point 
Solved Threads: 0
went1180 went1180 is offline Offline
Newbie Poster

Re: http form -> php -> mysql snafu

 
0
  #3
Sep 5th, 2006
thanks now i'm learning about escape strings.

p.s. should be new thread but while i'm at being a noob may i ask if it is ok to create a $password variable with my real password as the string? it seems like mysql_real_escape_string() won't work because this function only works after the connection is made, but i've also read that php code is not actually viewable by a user...
Reply With Quote Quick reply to this message  
Join Date: Jul 2004
Posts: 494
Reputation: Puckdropper is an unknown quantity at this point 
Solved Threads: 21
Puckdropper Puckdropper is offline Offline
Posting Pro in Training

Re: http form -> php -> mysql snafu

 
0
  #4
Sep 7th, 2006
You hit upon one of my PHP rules: Assume the user can see your code.

Rather than mysql_real_escape_string you can use addslashes. When you use it, you'll need to use strip slashes to edit the data, though.

  1. Here's a string.
  2.  
  3. Here\'s a string after add slashes.
  4.  
  5. Here\\\'s a string after add slashes again.
  6.  

For unrelated (or barely related) questions, go ahead and start a new thread. You can also mark the thread solved if you get the right answer. This will help people later on when searching.
www.uncreativelabs.net

Old computers are getting to be a lost art. Here at Uncreative Labs, we still enjoy using the old computers. Sometimes we want to see how far a particular system can go, other times we use a stock system to remind ourselves of what we once had.
Reply With Quote Quick reply to this message  
Reply

This thread is more than three months old.
Perhaps start a new thread instead?
Message:



Similar Threads
Other Threads in the PHP Forum
Thread Tools Search this Thread



About Us | Contact Us | Advertise | DaniWeb | Acceptable Use Policy | RSS Feed

©2003 - 2009 DaniWeb® LLC