Примечание. Неопределенный индекс: имя в C: \ wamp \ www \ espn.com \ registration.php в строке 12
Примечание. Неопределенный индекс: имя пользователя в C: \ wamp \ www \ espn.com \ registration.php в строке 13
Примечание. Неопределенный индекс: пароль в C: \ wamp \ www \ espn.com \ registration.php в строке 14 Извините, но указанное вами имя пользователя уже выполнено. Выберите другой.
кодирование
<html> <body> <?php $dbhost = "localhost"; $dbname = "users"; $dbuser = "root"; $dbpass = "*******"; mysql_connect ($dbhost,$dbuser,$dbpass)or die("Could not connect: ".mysql_error()); mysql_select_db($dbname) or die(mysql_error()); $name = $_POST['name']; $username = $_POST['username']; $password = md5($_POST['password']); $checkuser = mysql_query("SELECT username FROM users WHERE username='$username'"); $username_exist = mysql_num_rows($checkuser); if($username_exist > 1){ echo "I'm sorry but the username you specified has already been taken. Please pick another one."; unset($username); include 'registration.html'; exit(); } $query = "INSERT INTO users (name,username, password) VALUES('$name','$username', '$password')"; mysql_query($query) or die(mysql_error()); mysql_close(); echo "You have successfully registered"; ?> </body> </html>
Это означает $ _POST ['name'], $ _POST ['username'] и $ _POST ['password'] не существует. Ваша форма, скорее всего, не была отправлена при доступе к registration.php (или имена полей неверны).
В PHP вы должны убедиться, что каждое поле, которое вы будете использовать, будет установлено до его использования. Вы можете использовать! Empty или isset.
Кроме того, ваш скрипт уязвим для SQL-инъекций, взгляните на функцию mysql_real_escape_string. И ваше условие неверно: если вы хотите узнать, существует ли имя пользователя, вы должны проверить, больше ли оно, а не 1. Вы также можете использовать запрос COUNT (*) вместо выбора строки.
В основном глобальные переменные $ _POST ['name'], $ _POST ['username'] и $ _POST ['password'] не существуют. Я предлагаю вам проверить, что каждый ввод формы представлен как имя, которое может быть объявлено следующим образом:
<input name="username"/>
Чтобы вы могли получить доступ к значению этого ввода с помощью $ _POST ['username']. После этого строка, которую выводит скрипт (извините, но имя пользователя, которое вы указали, уже было выполнено. Выберите другой). Эхо эхо, потому что ваш запрос sql выглядит так:
SELECT username FROM users WHERE username=''
который будет возвращать каждому пользователю пустые ('') имя пользователя. Также, как уже было сказано, исправьте скрипт как можно скорее.