1

我正在学习 PHP 来创建反馈表。我按照教程创建了一个带有表单和 php 文件的 html 页面来执行请求并将其保存到数据库中。奇怪的是,我有两个问题。

  1. 在我按下提交后,我收到以下错误:未定义变量:第 8 行 /Users/wj/Sites/all_sanbox/VTC-PHP/07/send_feedback.php 中的用户

  2. 我用一些数据填写了表格,但是执行的 php 文件好像没有输入数据一样。

我使用的代码如下:


反馈.html

<HTML>
<HEAD>
<TITLE>Vinyl Dealers: feedback </TITLE>
</HEAD>

<BODY>
<H2>Feedback</H2>
<BR />
<FORM ACTION="send_feedback.php" METHOD="POST">
Your name:
<INPUT TYPE=TEXT NAME="user" MAXLENGTH=40 SIZE=40 />
<BR />
Your email:
 <INPUT TYPE=TEXT NAME="email" MAXLENGTH=40 SIZE=40 />
 <BR /><BR />
Can we keep you updated with news about our site?
<INPUT NAME="spam" TYPE=RADIO VALUE="1" CHECKED />Yes
<INPUT NAME="spam" TYPE=RADIO VALUE="0" />No
<BR /><BR />
Comments:
<BR />
 <TEXTAREA COLS=60 ROWS=10 NAME="comments"></TEXTAREA>
 <BR />
<INPUT TYPE=SUBMIT VALUE="submit" />
</FORM>
</BODY>
</HTML>

发送反馈.php

  <html>
  <head>
      <title>Vinyl Dealers: we appreciate your feedback</title>
  </head>

  <body>  
      <?php 
      if (!$user || !$email || !$comments){ ?>

      <h2>Whoops</h2>
      <br>Please fill in all fields<br>
      <a href="feedback.html">Click here to go back to the feedback page.</a>

      <?php 
      exit; 
      }

      $user = addslashes($user);
      $email = addslashes($email);
      $comments = addslashes($comments);
      $db = mysql_connect("localhost","root","admin");
      mysql_select_db("vinyldealers",$db);
      $addfeedback = "INSERT INTO feedback (user, email, spam, comments)
                      VALUES(" . '$user' . "," . $email . "," . $comments .")";
      $result = mysql_query($addfeedback);

      ?>
  <H2>Thank you</H2>
  <BR>
  We have added your comments to our database.    
  </body>
  </html>
4

2 回答 2

5

我猜你正在运行 PHP 没有register_globals安全的选项。这就是为什么您需要使用$_POST['user']和类似的方式访问提交的值...

如何添加:

 $user = $_POST['user']
 $email = $_POST['email'] 
 // etc...  
于 2009-07-10T08:11:43.897 回答
2

您永远不会从 PHP 中的 POST 变量中获取 user 的值。当您在表单中传递变量时,生成的请求会在请求的 POST 正文中包含您的值,您必须在 PHP 中提取这些值才能使用它。

在您的情况下,您想添加一些代码,例如:

$user = $_POST['user'];

这将从 HTTP 请求中获取值并放入 PHP 变量中。在所有最近的 PHP 版本中,POST 变量都可以通过$_POST关联数组访问,GET 变量同样可以通过$_GET. 在更旧版本的 PHP 中,您分别需要$HTTP_VARS_POST$HTTP_VARS_GET

于 2009-07-10T08:11:51.290 回答