2016-05-24 25 views
0

をホスティングしているオンライン上の作品ではありません。PHPフォームローカルホスト上のコードを認識することが、私は<a href="http://www.html-form-guide.com/php-form/php-form-processing.html" rel="nofollow">php form guide site</a></p> <p>からダウンロードこのPHPのフォーム処理コードはコードは私のホスティングスペース上の任意のエラーが発生することなく完璧に動作してい

xampp localhostで実行しようとすると、フィールドが認識されません。このエラーが表示されます:

Notice: Undefined variable: varMovie in C:\wamp64\www\form\myform2.php on line 88 Call Stack #TimeMemoryFunctionLocation 10.0007248808{main}()...\myform2.php:0

誰でも私を助けることができますか?私はPHPコードを貼り付けています:

<?php 
    if (isset($_POST['formSubmit']) && $_POST['formSubmit'] == 'Submit') 
    { 
     $errorMessage = ""; 

     if(empty($_POST['formMovie'])) 
     { 
      $errorMessage .= "<li>You forgot to enter a movie!</li>"; 
     } 
     if(empty($_POST['formName'])) 
     { 
      $errorMessage .= "<li>You forgot to enter a name!</li>"; 
     } 
     if(empty($_POST['formGender'])) 
     { 
      $errorMessage .= "<li>You forgot to select your Gender!</li>"; 
     } 

     $varMovie = $_POST['formMovie']; 
     $varName = $_POST['formName']; 
     $varGender = $_POST['formGender']; 

     if(empty($errorMessage)) 
     { 
      $db = mysql_connect("loclhost","root","admin"); 
      if(!$db) die("Error connecting to MySQL database."); 
      mysql_select_db("my_db" ,$db); 

      $sql = "INSERT INTO movieformdata (moviename, yourname, Gender) VALUES (". 
          PrepSQL($varMovie) . ", " . 
          PrepSQL($varName) . ", " . 
          PrepSQL($varGender) . ")"; 
      mysql_query($sql); 

      header("Location: thankyou.html"); 
      exit(); 
     } 
    } 

    // function: PrepSQL() 
    // use stripslashes and mysql_real_escape_string PHP functions 
    // to sanitize a string for use in an SQL query 
    // 
    // also puts single quotes around the string 
    // 
    function PrepSQL($value) 
    { 
     // Stripslashes 
     if(get_magic_quotes_gpc()) 
     { 
      $value = stripslashes($value); 
     } 

     // Quote 
     $value = "'" . mysql_real_escape_string($value) . "'"; 

     return($value); 
    } 
?> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<title>PHP Form processing example</title> 
<!-- define some style elements--> 
<style> 
label, a { 
    font-family : Arial, Helvetica, sans-serif; 
    font-size : 12px; 
} 
</style> 
</head> 

<body> 
<?php 
      if(!empty($errorMessage)) 
      { 
       echo("<p>There was an error with your form:</p>\n"); 
       echo("<ul>" . $errorMessage . "</ul>\n"); 
      } 
     ?> 
<form action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" method="post"> 
    <p> 
    <label for='formMovie'>Which is your favorite movie?</label> 
    <br/> 
    <input type="text" name="formMovie" maxlength="50" value="<?=$varMovie;?>" /> 
    </p> 
    <p> 
    <label for='formName'>What is your name?</label> 
    <br/> 
    <input type="text" name="formName" maxlength="50" value="<?=$varName;?>" /> 
    </p> 
    <p> 
    <label for='formGender'>What is your Gender?</label> 
    <br/> 
    <select name="formGender"> 
     <option value="">Select...</option> 
     <option value="M"<? if($varGender=="M") echo(" selected=\"selected\"");?>>Male</option> 
     <option value="F"<? if($varGender=="F") echo(" selected=\"selected\"");?>>Female</option> 
    </select> 
    </p> 
    <input type="submit" name="formSubmit" value="Submit" /> 
</form> 
<p> <a href='http://www.html-form-guide.com/php-form/php-form-processing.html' 
>'PHP form processing' article page</a> </p> 
</body> 
</html> 
+0

localhostとprodサーバーの両方のPHPバージョンは同じですか? –

+0

はい。 PHP 5.5で動く – Malik

+0

両方のロードされた拡張機能はどうですか?両方で 'phpinfo()'をチェックしますか? prodサーバーでエラーを有効にすることができますか? –

答えて

0

データベースサーバとしてlocalhostに接続しています。コードを別のサーバーに移動すると、別のデータベースに接続することになります。他のサーバーにデータベースがない可能性があります。

また、mysql_real_escape_stringの代わりにmysqlibind_paramを使用してください。ハッカーグループAnonymousは、a foreign languageで一重引用符を送信することにより、mysql_real_escape_stringの周りに方法を見つけました。

+0

まず、mysql_ *関数の使用を勧めないでください。 –

関連する問題

 関連する問題