Четверг, 21 Ноября 2024, 16:37

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Ошибка в скрипте регистрации на php
dima9595Дата: Пятница, 30 Ноября 2012, 20:35 | Сообщение # 1
почти ветеран
Сейчас нет на сайте
Всем доброго времени суток! Недавно начал изучать PHP и столкнулся со следующей проблеммой:

Написал код регистрации для пользователей...а после загрузки на хостинг - а файл вообще не читается. Я так понял дело в коде. Кому не трудно пожалуйста посмотрите:



Заранее спс. Кто поможет + в репу получит=)




Сообщение отредактировал dima9595 - Пятница, 30 Ноября 2012, 20:48
LunarPixelДата: Пятница, 30 Ноября 2012, 20:40 | Сообщение # 2
старожил
Сейчас нет на сайте
После echo точка с запятой, после if точку с запятой не надо. smile

dima9595Дата: Пятница, 30 Ноября 2012, 21:19 | Сообщение # 3
почти ветеран
Сейчас нет на сайте
Всё равно не получается...(((

Добавлено (30.11.2012, 21:19)
---------------------------------------------
Есть ещё советы?


aallaДата: Воскресенье, 02 Декабря 2012, 12:24 | Сообщение # 4
постоянный участник
Сейчас нет на сайте
эта строка не правильная true в апострофах не нуждается так как это булев тип, а не строка
Code
if ($result2 == 'TRUE')

да и вообще проще написать вот так
Code
if ($result2)

так как если эта переменная не пустая она все равно вернет true


Сообщение отредактировал aalla - Воскресенье, 02 Декабря 2012, 12:31
dima9595Дата: Воскресенье, 02 Декабря 2012, 18:06 | Сообщение # 5
почти ветеран
Сейчас нет на сайте
большое спасибо...позже проверю!

Добавлено (02.12.2012, 18:06)
---------------------------------------------
почему-то всё равно не работает(((


aallaДата: Воскресенье, 02 Декабря 2012, 19:42 | Сообщение # 6
постоянный участник
Сейчас нет на сайте
dima9595, ищи проблемы в своей базе данных, код полностью (не сказать что профи) рабочий, и следовало бы привести результат выполнения этого скрипта, а то не все экстрасенсы тут.
KamskiiДата: Воскресенье, 02 Декабря 2012, 20:16 | Сообщение # 7
Game ≠ Toy
Сейчас нет на сайте
Попробуй сохранить скрипт в кодировке UTF-8 без BOM.
dima9595Дата: Вторник, 04 Декабря 2012, 17:19 | Сообщение # 8
почти ветеран
Сейчас нет на сайте
aalla, на счёт БД...думаю с БД всё норм, так как я использовал другой, похожий скрипт - он работал. Но всё равно посмотрю ещё раз.
Kamskii, не помогло.

Добавлено (04.12.2012, 17:19)
---------------------------------------------
С БД всё в порядке(((


Stroy562Дата: Среда, 05 Декабря 2012, 09:06 | Сообщение # 9
частый гость
Сейчас нет на сайте
После строк кода
Code

if empty($login) or empty ($password)
{
echo "Вы не ввели логин или пароль";
}        

Сразу идет проверка на тэги , повторную регистрацию и т.д.. То есть Проверяются переменные, выводится ошибка (Вы не ввели логин или пароль) и скрипт продолжает работать дальше.
Нужно воспользоваться ELSE или при возникновении ошибки остановить выполнение дальнейшего скрипта EXIT();
Лично я поле выполнения услови IF (условие){действие;}; то же ставлю ";"
Еще можно проверить каким способом передаются переменные а лучше место POST поставить REQUEST.
Кстати первые две строки вообще можно убрать. Эти присвоения работают дальше после проверки наличия переданных переменных.

Еще можно проверить подключения к базе db.php. Скорее всего на локальном сервере и на хосте пользователь, пароль, имя базы разные

Можно попробывать изменить код:
Code

$myrow = mysql_fetch_array($result);
if (!empty($myrow['id']))
{
echo ("Пользователь с логином $login уже зарегистрировался.");
}

Тут Если пользователя нет в базе то на строке
Code
$myrow = mysql_fetch_array($result);

Может быть ошибка
По этому лучше будет написать
Code

if ($myrow = mysql_fetch_array($result)){
echo ("Пользователь с логином $login уже зарегистрировался.");
}else{//весь дальнейший код};

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

То же самое в отрезке
Code

$result2 = mysql_query ("INSERT INTO users (login,password) VALUES('$login','$password')");

//Если есть ошибки, то выводим, а если нет, выводим об успешной регистрации
if ($result2 == 'TRUE')
{
echo "Вы успешно зарегистрировались!";
}
else
{
echo "К сожалению вы не зарегистрировались. Возможно вы некорректно ввели логин или пароль.";
}    

Первая строка может дать ошибку избежать этого можно написав

Code

if ($result2 = mysql_query ("INSERT INTO users (login,password) VALUES('$login','$password')"))
{
echo "Вы успешно зарегистрировались!";
}
else
{
echo "К сожалению вы не зарегистрировались. Возможно вы некорректно ввели логин или пароль.";
} ;


Сообщение отредактировал Stroy562 - Среда, 05 Декабря 2012, 09:34
dima9595Дата: Среда, 05 Декабря 2012, 16:15 | Сообщение # 10
почти ветеран
Сейчас нет на сайте
Спасибо, попробую...

  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг