本教程脚本中导致mysql undefined index错误的原因是什么?

问题描述:

我在我的数据库逐字从教程运行此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> 

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

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

使用try

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