<?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
Я вытаскиваю свои волосы, пытаясь понять смысл этих проблем и исправить их, и, к сожалению, не видел решений. Может ли кто-нибудь помочь?
Или POST не содержит переменных, о которых идет речь, или вы не выполняете POST в первую очередь.
пытаться:
$count = mysql_numrows($data);
он говорит, что вы передаете массив mysql_numrows, когда он ожидает ресурс.
Он говорит вам, что значения $ _POST, на которые вы ссылаетесь, не существуют. Вы отправляете форму на эту страницу? Если это так, убедитесь, что вы проверяете имена полей формы. Если нет – этот скрипт нуждается в форме, отправляемой ему.
Эти строки вызывают предупреждения «неопределенного индекса».
$username = $_POST['user_name']; $password = $_POST['password']; $type = $_POST['user_type'];
Когда вы отправляете форму в этот скрипт, $_POST
представляет собой массив, содержащий все элементы формы. В вашем случае элементы формы user_type
, password
и user_type
не существовали или вы не отправляли форму. Таким образом, элементы массива не существуют. Когда вы пытаетесь прочитать из неэксентирующего элемента массива, вы получаете уведомление «Undefined Index».
Другое предупреждение вызвано этой строкой:
$count = mysql_numrows($info);
Вы передаете $info
, массив, в mysql_numrows
. Вы должны передать ему ресурс результата из mysql_query. Вы должны передавать $data
в mysql_numrows
.