Что вызывает ошибку неопределенного индекса mysql с этим учебным сценарием? - PullRequest
0 голосов
/ 14 декабря 2011

Я запускаю этот php-скрипт в своей базе данных дословно из учебника, но я получаю неопределенную ошибку индекса в строке 27 (бит, начинающийся с if ($_REQUEST['action'] == "add") {) ... Я просто изучаю mysql так любая помощь потрясет!

<?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>

Ответы [ 3 ]

1 голос
/ 14 декабря 2011

Undefined index в этой строке означает, что массив $_REQUEST не имеет ключа 'action'.

Вы хотите что-то вроде этого:

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

Очевидно, это означает, что остальная часть вашего кода не будет работать, поэтому что-то не так с отправкой запроса.

0 голосов
/ 14 декабря 2011

Попробуйте использовать

if(isset($_REQUEST['action']) && $_REQUEST['action'] == "add")
0 голосов
/ 14 декабря 2011

Вы можете использовать $_POST["action"], если используете метод POST или $_GET["action"] для GET .

...