2017-07-29 46 views
2
Notice: Undefined index: tombol in C:\xampp\htdocs\pw-liana\submitcomment.php on line 2 
Notice: Undefined index: nama in C:\xampp\htdocs\pw-liana\submitcomment.php on line 25 

而且與非農產品市場準入相同的通知(第25行),電子郵件(25行),網站(25行),komentar(25行),art_id(第26行),art_url(第26行)。 但最後通知是了錯誤消息從XAMPP 「通知:未定義指數」 HTML

Notice: Undefined variable: art_url in C:\xampp\htdocs\pw-liana\submitcomment.php on line 31 

我的PHP代碼

<?php 
if ($_POST["tombol"]=="Kirim") 
{ 
$nama=$_POST["nama"]; 
$email=$_POST["email"]; 
$website=$_POST["website"]; 
$komentar=$_POST["komentar"]; 
$art_id=$_POST["art_id"]; 
$art_url=$_POST["art_url"]; 
if(empty($nama)) 
$_POST["nama"]='anonymous'; 
if(empty($komentar)){ 
echo "<meta http-equiv='refresh' content='2; url=$art_url'>"; 
die("komentar harus diisi");} 
} 
//connect database 
$con=mysql_connect("localhost", "root", ""); 
if(!$con) 
die("Tidak dapat melakukan koneksi ke server MySQL"); 
//Menampilkan data 
mysql_select_db("db_web", $con); 
$sql="INSERT INTO comment (nama, email, website, komentar, art_id, art_url, 
date) 
VALUES 
('$_POST[nama]','$_POST[email]','$_POST[website]', '$_POST[komentar]', 
'$_POST[art_id]', '$_POST[art_url]', NOW())"; 
if (!mysql_query($sql,$con)) 
{ 
die('Error: ' . mysql_error()); 
} 
echo "<meta http-equiv='refresh' content='0; url=$art_url'>"; 
//Memutuskan koneksi 
mysql_close($con); 
?> 

而且我的HTML代碼

<div id="publishcomment"> 
 
\t \t \t \t \t \t <?php include("publishcomment.php"); getcomment("1"); 
 
\t \t \t \t \t \t $actual_link = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; 
 

 
\t \t \t \t \t \t ?></div> 
 
\t \t \t \t \t \t <div> 
 
\t \t \t \t \t \t <form name="submitcomment" method="post" action="submitcomment.php">Nama:<br> 
 
\t \t \t \t \t \t <input name="nama" type="text"><br> 
 
\t \t \t \t \t \t Email(optional):<br><input name="email" type="email"><br> 
 
\t \t \t \t \t \t Website(optional):<br><input name="website" type="text"><br> 
 
\t \t \t \t \t \t Komentar:<br><textarea name="komentar" rows="6" cols="50"></textarea><br> 
 
\t \t \t \t \t \t <input name="art_id" value="1" type="hidden"> 
 
\t \t \t \t \t \t <input name="art_url" value="" type="hidden"><br> 
 
\t \t \t \t \t \t <input name="tombol" value="Kirim" type="submit"> 
 
\t \t \t \t \t \t <input value="Reset" type="Reset"> 
 
\t \t \t \t \t \t </form></div> 
 
\t \t \t \t \t \t \t </article> 
 

 
\t \t \t \t \t </div>

我得到的錯誤,當我點擊提交按鈕

+0

您必須停止使用mysql_ *擴展,它的棄用,從PHP7刪除,你可以使用[mysqli的(http://php.net/mysqli)或[PDO](HTTP:// PHP。淨/ pdo)而不是 – hassan

回答

0

問題是,「全局」數組$ _POST沒有tombol的索引。在第一步中,您應該檢查索引是否已設置。然後檢查該值是否是您所期望的值。

另外我會使用mysqli而不是mysql。 MySQL(不包括我)已棄用。

我已經更新了你的代碼

編輯:代碼沒有進行測試!

此外,我會盡力讓所有的事情都在PHP中完成,而不必一直重定向。如果無法使用PHP函數頭('Location:URL');而不是

EDIT2:這是一個更新的代碼。試試這個。還沒有經過測試,只是Dreamweaver檢查語法錯誤。

<?php 
if (isset($_POST["tombol"])) 
{ 
    if($_POST["tombol"] == "Kirim") 
    { 

     $nama =  (isset($_POST["nama"]))  ? $_POST["nama"]  : 'anonymous'; 
     $email = (isset($_POST["email"])) ? $_POST["email"]  : '' ; 
     $website = (isset($_POST["website"])) ? $_POST["website"]  : '' ; 
     $komentar = (isset($_POST["komentar"])) ? $_POST["komentar"] : '' ; 
     $art_id = (isset($_POST["art_id"])) ? $_POST["art_id"]  : '' ; 
     $art_url = (isset($_POST["art_url"])) ? $_POST["art_url"]  : '' ; 

     if(empty($komentar)) 
     { 
      echo '<div class="error">Comment is empty</div>'; 
     } 
     else 
     { 
      //connect database 
      $con = mysqli_connect("localhost", "root", "", "db_web"); 
      if(!$con) 
      { 
       echo '<div class="error">SQL connection Error</div>'; 
      } 
      else 
      { 
       //Menampilkan data 
       $sql = 'INSERT INTO comment (nama, email, website, komentar, art_id, art_url, date) 
       VALUES 
       ("'.mysqli_real_escape_string($con,$nama).'","'.mysqli_real_escape_string($con,$email).'","'.mysqli_real_escape_string($con,$website).'", "'.mysqli_real_escape_string($con,$komentar).'", '.$art_id.', "'.mysqli_real_escape_string($con,$art_url).'", NOW())'; 
       if (!mysqli_query($con,$sql)) 
       { 
        echo '<div class="error">Error: ' . mysqli_error($con).'</div>'; 
       } 

       //Memutuskan koneksi 
       mysqli_close($con); 
      } 
     } 
    } 
    else 
    { 
     echo '<div class="error">The comment is not "Kirim"</div>'; 
    } 
} 
?> 
<div id="publishcomment"> 
    <?php include("publishcomment.php"); getcomment("1"); 
    $actual_link = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; 
    ?> 
</div> 
<div> 
    <form name="submitcomment" method="post" action="<?php echo $actual_link; ?>">Nama:<br> 
     <input name="nama" type="text"><br> 
     Email(optional):<br><input name="email" type="email"><br> 
     Website(optional):<br><input name="website" type="text"><br> 
     Komentar:<br><textarea name="komentar" rows="6" cols="50"></textarea><br> 
     <input name="art_id" value="1" type="hidden"> 
     <input name="art_url" value="" type="hidden"><br> 
     <input name="tombol" value="Kirim" type="submit"> 
     <input value="Reset" type="Reset"> 
    </form> 
</div> 
</div> 
+0

仍然錯誤。當我用你的代碼更新我的PHP,我得到了這個錯誤消息「解析錯誤:語法錯誤,意外'}'在第41行C:\ xampp \ htdocs \ pw-liana \ submitcomment.php」 –

+0

新代碼應該工作。我已經更新了一些,所以你不需要die()函數,也不需要重定向。 –