Попытка записи в базу данных MySQL с помощью формы PHP - PullRequest
1 голос
/ 23 июля 2010

Я пытаюсь выполнить простую запись в базу данных с помощью формы HTML, используя PHP.

Я запустил SQL-запрос в базе данных, и он отлично работает.Однако использование формы не работает.Я не уверен почему.Любая помощь?Имя пользователя / пароль / имя базы данных все правильно.

<?php
if(isset($_POST['submit']))
{

$con = mysql_connect("localhost","delives0_ideas","ideas");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("delives0_ideas", $con);

mysql_query("INSERT INTO data (firstName, lastName, email, idea) VALUES ('$_POST['firstName']','$_POST['lastName']', '$_POST['email']', '$_POST['idea']')");

//also email it to us besides writing it into the database

mysql_close($con);
?>

<form method="post">
<strong>First name:</strong> <input type="text" name="firstName"/>
<br/>
<strong>Last name:</strong> <input type="text" name="lastName"/>
<br/>
<strong>Email:</strong> <input type="text" name="email"/>  #####Put a javascript checker for valid emails, like name@site.com format
<br/>
<br/>
<strong>Idea:</strong>
<br/>
<textarea rows="10" cols="30" name="idea"> 
Hit us with your best shot.
</textarea> 
<br/>
<input name="submit" type="submit" value="Submit"/>
</form>

Ответы [ 4 ]

3 голосов
/ 23 июля 2010

Вы забыли "action = nameofyourpage.php" внутри разметки формы. И я бы добавил «или умру (mysql_error ())» в конце вашего запроса, чтобы проверить синтаксис запроса.

2 голосов
/ 23 июля 2010

у вас есть несколько ошибок в вашем скрипте - проверьте следующее

http://pastie.org/1056569

<?php
if(isset($_POST['submit']))
{
   $con = mysql_connect("localhost","delives0_ideas","ideas");
   if (!$con){
     die('Could not connect: ' . mysql_error());
   }

   mysql_select_db("delives0_ideas", $con);

   $sqlCmd = sprintf("INSERT INTO data (firstName, lastName, email, idea) 
     VALUES ('%s','%s','%s','%s')", 
      mysql_real_escape_string($_POST["firstName"]),
      mysql_real_escape_string($_POST["lastName"]),
      mysql_real_escape_string($_POST["email"]),
      mysql_real_escape_string($_POST["idea"]));

   mysql_query($sqlCmd);
   mysql_close($con);
 }
 ?>

 <form method="post">
  <strong>First name:</strong> <input type="text" name="firstName"/><br/>
  <strong>Last name:</strong> <input type="text" name="lastName"/><br/>
  <strong>Email:</strong> <input type="text" name="email"/> 
  <strong>Idea:</strong><br/>
  <textarea rows="10" cols="30" name="idea">Hit us with your best shot.</textarea><br/>
  <input name="submit" type="submit" value="Submit"/>
 </form>
0 голосов
/ 02 апреля 2013

у вас есть ошибка

mysql_query("INSERT INTO data (firstName, lastName, email, idea) VALUES
('$_POST['firstName']','$_POST['lastName']', '$_POST['email']', '$_POST['idea']')");

Ошибка = '$ _POST [' firstName ']' у вас болтовня 'в поле сообщения

и вы можете изменить

 $firstname = $_POST['firstName'];
 $lastname = $_POST['lastName'];
 $email = $_POST['email'];
 $idea = $_POST['idea'];

mysql_query("INSERT INTO data (firstName, lastName, email, idea) VALUES ('{$firstname}','{$lastname}', '{$email}', '{$idea}')");

или с запросом mysql

mysql_query("INSERT INTO data SET firstName='{$firstname}', lastName='{$lastname}',
email='{$email}', idea='{$idea}'");
0 голосов
/ 23 июля 2010

У вас уже есть ответ на вопрос, почему он не работает, но, пожалуйста, прочитайте эту статью о атаках с использованием SQL-инъекций, прежде чем вводить этот код в эксплуатацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...