Hi,
I am having a problem with $_POST which I will explain below. My
configuration is Redhat 7.3 Linux 2.4.18 with Apache 2.0.39, PHP 4.2.2,
and MySQL 3.23.49.
I have an SQL table which was created by:
CREATE TABLE testTable (id nut null primary key aut_increment, testField
varchar (75));
I have an HTML form using POST:
<!-- insert_form.html -->
<HTML>
<HEAD><TITLE>Insert Form</TITLE>
</HEAD>
<BODY>
<FORM ACTION="insert.php" METHOD=POST>
<P>Text to add:<br>
<input type=text name=testField size=30>
<p><input type=submit value="Insert Record"></p>
</FORM>
</BODY>
</HTML>
and I have a PHP script that uses $_POST to put the value from the form
into the SQL table:
<!-- insert.php -->
<?
$conn = mysql_connect("localhost", "supercontact", "tical123");
mysql_select_db("contactDB", $conn);
$sql = "INSERT INTO testTable VALUES ('', '$_POST[testField]')";
echo "the value is $_POST[testField]<BR>";
echo "$sql<BR>";
if ($result = mysql_query($sql, $conn))
{
echo "record added!";
}
else
{
echo "something went wrong";
}
?>
when I open up insert_form.html in a browser and put in a value of
"Testing the form" and then submitting it to insert.php, this is the
result:
the value is Testing the formtestField=Testing the form
INSERT INTO testTable VALUES ('', 'Testing the formtestField=Testing the
form')
record added!
and when I go to MySQL to see what was inserted into the table I have:
mysql> select * from testTable;
+----+--------------------------------------------+
| id | testField |
+----+--------------------------------------------+
| 19 | Testing the formtestField=Testing the form |
+----+--------------------------------------------+
1 row in set (0.00 sec)
Which that is not correct, it should be | 19 | Testing the Form |
If I change the method=POST to method=GET and the $_POST to $_GET and use
"Testing the form" it works correctly:
the value is Testing the form
INSERT INTO testTable VALUES ('', 'Testing the form')
record added!
mysql> select * from testTable;
+----+--------------------------------------------+
| id | testField |
+----+--------------------------------------------+
| 20 | Testing the form |
| 19 | Testing the formtestField=Testing the form |
+----+--------------------------------------------+
2 rows in set (0.00 sec)
Does anyone know why it is not working with $_POST but works fine with
$_GET?
Thanks,
Adam
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php