2010-11-01 2 views
-1

Можно создать дубликат:
what is this notice referring to

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

Notice: Undefined index: username in C:\wamp\www\espn.com\login.php on line 16 

Notice: Undefined index: password in C:\wamp\www\espn.com\login.php on line 17 

1<?php 
2 
3//Database Information 
4 
5 $dbhost = "localhost"; 
6 $dbname = "users"; 
7 $dbuser = "root"; 
8 $dbpass = "*****"; 
9 
10 //Connect to database 
11 
12 mysql_connect ($dbhost, $dbuser, $dbpass)or die("Could not connect: ".mysql_error()); 
13 mysql_select_db($dbname) or die(mysql_error()); 
14 
15 session_start(); 
****16 $username = $_POST['username']; 
17 $password = md5($_POST['password']);**** 
18 
19 $query = sprintf('SELECT * FROM users WHERE username="%s" AND password="%s"', 
20 ($username), ($password)); 
21 
22 $result = mysql_query($query); 
23 
if (mysql_num_rows($result) != 0) { 
$error = "Bad Login"; 
    include "login.html"; 

} else { 
    $_SESSION['username'] = "$username" ; 
    include "memberspage.php"; 
} 
+1

чем вопрос? – Yahel

+2

Пожалуйста, не публикуйте дубликаты ваших собственных вопросов ([это упоминание об этом упоминании] (http://stackoverflow.com/questions/4065978/what-is-this-notice-referring-to)), если у вас есть новую или дополнительную информацию, относящуюся к одному и тому же вопросу, отредактируйте исходный вопрос и добавьте новую/дополнительную информацию. –

+0

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

ответ

2

Несомненно. Представленная форма не имеет тега имени. Пожалуйста исправить HTML часть следующим образом:

<input **name="username"**/> 

Так что вы можете легко использовать $ _POST [ «имя пользователя»], чтобы восстановить значение из формы. Фактически каждый раз, когда вы видите «неопределенный индекс», это означает, что отсутствует ключ массива. Это как:

$a = array('zero', 'one', 'two'); 

и вы звоните:

$a[3]; 

В этом случае $ _POST глобальный массив, который отсутствует ключ «имя пользователя» и «пароль».

0

При отправке страницы данные (пользовательский ввод/форма dat a) отправляется как массив, к которому вы можете получить доступ через $_POST.

Теперь, когда вы обращаетесь к $_POST[somename], PHP-движок пытается получить значение для ключа «somename» в массиве $_POST.

В вашей программе (в частности, строки 16 & 17) ключ для массива не существует.

Таким образом, это лучше вы делаете чек, как это:

$username = isset($_POST['username'])?$_POST['username']:null; 
Смежные вопросы