0

PHP の初心者を完了しますが、MySQL データベースに単純なフォームを送信しようとしています。Notice: Undefined index: フォームの入力変数に関する警告が表示され続けます。ここで何が問題になる可能性があります。フォームは、process.php ファイルに送信する別の PHP ページにあります。

フォームコード:

<form name="example" id="example" method="POST" action="process.php" enctype="multipart/form-data">
    <p>
        <label for="first_name">First Name:</label>
        <input size="20" name="first_name" id="first_name" />
    </p>
    <p>
        <label for="city">city</label>
        <input size="20" name="city" id="city" />
    </p>
    <p>
        <label for="state">state</label>
        <input size="20" name="state" id="state" />
    </p>
    <p>
        <label for="zip">zip</label>
        <input size="20" name="zip" id="zip" />
    </p>
    <p>
        <label for="email">e-mail</label>
        <input size="20" name="email" id="email" />
    </p>
    <p>
        <label for="form_upload">file</label>
        <input size="40" type="file" name="form_data" id="form_data" />
    </p>
    <p>
        <input type="submit" value="Submit form" name="submit" />
    </p>
</form>

Process.php

<?php
   mysql_connect("localhost", 'root', '') or die('Could not connect:' . mysql_error());
   mysql_select_db("practice") or die(mysql_error());
   mysql_query("CREATE TABLE user (id INT(5)NOT NULL AUTO, name VARCHAR(30), email     VARCHAR(40), city VARCHAR(40), state VARCHAR(3), zip INT(5) )");
   if (isset($_POST)) {
       $name  = $_POST['first_name'];
       $email = $_POST['email'];
       $city  = $_POST['city'];
       $state = $_POST['state'];
       $zip   = $_POST['zip'];
   }
   mysql_query("INSERT INTO user VALUES('$name', '$email', '$city', '$state', '$zip')");
?>
4

1 に答える 1

1

私はあなたがこれを変更する必要があると思います

    if (isset($_POST)){

そのようなインデックスを与える

  if (isset($_POST['submit'])){

そしてまた

クエリをに変更します

  mysql_query("INSERT INTO user (name , email, city,state, zip)
               VALUES('$name', '$email', '$city', '$state', '$zip')" );

変数を挿入する前に、そのように変数をエスケープする必要があります。

  $name = mysql_real_escape_string($name) ;
 // and so on 

最後に、送信するたびにテーブルを作成する理由は何ですか? 存在するかどうかを確認する必要があります。

于 2013-09-25T18:57:30.253 に答える