2011-12-14 120 views
0

我在我的數據庫逐字從教程運行此PHP腳本,但我得到第27行(與if ($_REQUEST['action'] == "add") {啓動位)一個未定義的索引錯誤......我剛學的MySQL所以任何幫助會巖!本教程腳本中導致mysql undefined index錯誤的原因是什麼?

<?php 
/** 
* Copyright 2011 Robert Turrall - robertturrall.com 
* 
* Part of the video2brain course: Facebook Application Development: Learn by Video 
* 
* 
*/ 

$dbhost  = 'localhost';  // This is the hostname/address for your database. Usually 127.0.0.1 for local testing, or 'localhost' is good 
$dbuser  = 'root';  // Login name to your database - anonymous is default for localhost MySQL 
$dbpass  = '';    // Login password to your database - default for local MySQL is no password 
$data  = 'test';   // Database name 

$db = mysql_connect($dbhost, $dbuser, $dbpass); 

if (mysql_errno() > 0) { 
    if (mysql_errno() == 1203) { 
     // 1203 == ER_TOO_MANY_USER_CONNECTIONS (mysqld_error.h) 
     die("DB error"); 
    } else { 
     // other error 
     die("DB error"); 
    } 
} 

if ($_REQUEST['action'] == "add") { 
    mysql_select_db($data, $db); 
    $Insert = "INSERT INTO FB_birthdays (UID, birthday) VALUES ('".$_REQUEST['uid']."', '".$_REQUEST['birthday']."')"; 
    $res = mysql_query($Insert, $db) or die ("Save error"); 
    mysql_close($db); 
    echo "Added to DB!"; 
} 

?> 


<form action="savedb.php" method="post"> 
       <input type="hidden" name="request" value="add"> 
       <input type="hidden" name="uid" value="<?php echo $user; ?>"> 
       <input type="hidden" name="birthday" value="<?php echo $birthday; ?>">  
       <input name="Submit" type="submit" value="Add me!"> 
      </form> 

回答

1

Undefined index在該行意味着數組$_REQUEST沒有密鑰'action'

你會想是這樣的:

if (isset($_REQUEST['action']) && $_REQUEST['action'] == 'add') { 

顯然,這意味着你的代碼將無法運行的休息,所以事情還是錯無論是發送請求。

+0

這個生龍活虎錯誤起來好聽,但像你提到的,它仍然沒有工作。而不是預期的「添加到數據庫」行,我得到一個空白的屏幕,並沒有添加數據庫條目...我在上面的php代碼下面添加了本教程中使用的表單代碼。 – brunam 2011-12-14 04:41:47

+0

您是通過GET參數還是POST設置操作?如果它是GET,那麼它應該很清楚,但對於表單,我不確定,你需要弄清楚。我建議選擇一個,然後不使用$ _REQUEST,而使用$ _GET或$ _POST。 – loganfsmyth 2011-12-14 04:44:08

0

,你可以,如果你使用的是POST方法或$_GET["action"]GET使用$_POST["action"]

0

使用try

if(isset($_REQUEST['action']) && $_REQUEST['action'] == "add") 
相關問題