Может кто-нибудь помочь мне понять, что не так с этим кодом? - PullRequest
1 голос
/ 29 апреля 2011
<?php
$con = mysql_connect("localhost", "root", '');

if (!$con)
{
    die('Cannot make a connection');
}


mysql_select_db('yumbox_table', $con) or die('Cannot make a connection');



$username = $_POST['user_name'];
$password = $_POST['password'];
$type = $_POST['user_type'];

$data = mysql_query("SELECT * from users ") or die(mysql_error());

$info = mysql_fetch_array($data);

$count = mysql_numrows($info);

if ($count==1)
{
    echo ("Success!!");
}
else 
{
    echo ("BIG FRIGGIN FAILURE!!");
}

mysql_close($con);
?>

Всякий раз, когда я пытаюсь запустить этот код, я получаю большие красивые сообщения об ошибках:

( ! ) Notice: Undefined index: user_name in C:\wamp\www\login.php on line 14
Call Stack
#   Time    Memory  Function    Location
1   0.0008  370104  {main}( )   ..\login.php:0

( ! ) Notice: Undefined index: password in C:\wamp\www\login.php on line 15
Call Stack
#   Time    Memory  Function    Location
1   0.0008  370104  {main}( )   ..\login.php:0

( ! ) Notice: Undefined index: user_type in C:\wamp\www\login.php on line 16
Call Stack
#   Time    Memory  Function    Location
1   0.0008  370104  {main}( )   ..\login.php:0

( ! ) Warning: mysql_numrows() expects parameter 1 to be resource, array given in C:\wamp\www\login.php on line 22
Call Stack
#   Time    Memory  Function    Location
1   0.0008  370104  {main}( )   ..\login.php:0
2   0.0157  380104  mysql_numrows ( )   ..\login.php:22

Я вырывал свои волосы, пытаясь выяснить смысл этих вещей и исправить их, и, к сожалению, не нашел решений. Может ли кто-нибудь там помочь?

Ответы [ 4 ]

4 голосов
/ 29 апреля 2011

Либо POST не содержит рассматриваемых переменных, либо вы вообще не выполняете POST.

1 голос
/ 29 апреля 2011

Это говорит о том, что значения $ _POST, на которые вы ссылаетесь, не существуют.Вы отправляете форму на эту страницу?Если это так, убедитесь, что вы проверили имена полей формы.Если нет - этот скрипт нуждается в отправке формы.

1 голос
/ 29 апреля 2011

try:

$count = mysql_numrows($data);

говорит, что вы передаете массив mysql_numrows, когда он ожидает ресурс.

0 голосов
/ 29 апреля 2011

Эти строки вызывают предупреждения «неопределенный индекс».

$username = $_POST['user_name'];
$password = $_POST['password'];
$type = $_POST['user_type'];

Когда вы отправляете форму в этот скрипт, $_POST - это массив, содержащий все элементы формы.В вашем случае элементы формы user_name, password и user_type не существовали, или вы не отправили форму.Таким образом, элементы массива не существуют.Когда вы пытаетесь читать из несуществующего элемента массива, вы получаете уведомление «Неопределенный индекс».

Другое предупреждение вызвано этой строкой:

$count = mysql_numrows($info);

Вы передаете $info, массив, в mysql_numrows.Вы должны передать ему ресурс результата из mysql_query.Вы должны передать $data на mysql_numrows.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...