1

フィードバックフォームを作成するためにPHPを学んでいます。チュートリアルに従い、フォームとphpファイルを使用してhtmlページを作成し、リクエストを実行してデータベースに保存しました。不思議なことに、私には2つの問題があります。

  1. 送信を押した後、次のエラーが発生しました。未定義の変数:8行目の/Users/wj/Sites/all_sanbox/VTC-PHP/07/send_feedback.phpのユーザー

  2. フォームにデータを入力しましたが、データが入力されていないかのようにphpファイルが実行されました。

私が使用したコードは次のとおりです。


Feedback.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>

sendfeedback.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

register_globals安全なオプションなしでPHPを実行していると思います。そのため、送信された値に などを使用してアクセスする必要があります$_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 に答える