[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: при регистрации не заноситься E-mail адрес в БД
Денис777

<?php
if (isset($_POST['login'])) { $login = $_POST['login']; if ($login == '') { unset($login);} }
if (isset($_POST['password'])) { $password=$_POST['password']; if ($password =='') { unset($password);} }
if (isset($_POST['email'])) { $email = $_POST['email']; if ($email == '') { unset($email);} }
if (empty($login) or empty($password) or empty($email))

{
exit ("Вы ввели не всю информацию, вернитесь назад и заполните все поля!");
}

$login = stripslashes($login);
$login = htmlspecialchars($login);
$password = stripslashes($password);
$password = htmlspecialchars($password);

$login = trim($login);
$password = trim($password);

if (strlen($login) < 3 or strlen($login) > 15) {

exit ("Логин должен состоять не менее чем из 3 символов и не более чем из 15.");
}
if (strlen($password) < 3 or strlen($password) > 15) {

exit ("Пароль должен состоять не менее чем из 3 символов и не более чем из 15.");
}

$password = md5($password);

if (!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $email))
{exit ("Неверно введен е-mail!");}

include './bd.php';
$result = mysql_query("SELECT id FROM users WHERE login='$login'",$db);
$myrow = mysql_fetch_array($result);
if (!empty($myrow['id']))
{

exit ("Извините, введённый вами логин уже зарегистрирован. Введите другой логин.");
}



$result2 = mysql_query ("INSERT INTO `users` (`login`,`password`,`reg_date`,`email`,`reg_ip`) VALUES('".$login."','".$password."','".date("Y-m-d")."','".$mail."','".$_SERVER['REMOTE_ADDR']."')") or die(mysql_error());
if ($result2=='TRUE')
{

echo "Вы успешно зарегистрированы! Теперь вы можете зайти на портал. <a href='vhod.php'>online games</a>";

}
else {

echo "Ошибка! Вы не зарегистрированы.";
}
?>




Спустя 6 минут, 47 секунд (7.07.2012 - 14:23) DarkLynx написал(а):
Об ошибках.
Всегда при работе с базами данных и данными из вне, приводите к безопасному виду. Почитайте про mysql_real_escape_string().

Какой тип поля email

Спустя 11 минут, 4 секунды (7.07.2012 - 14:34) Денис777 написал(а):
DarkLynx почитал , только не совсем понял , сейчас расмотрю все внимательно , это что получаеться , БД можно легко взломать?

Спустя 2 минуты, 36 секунд (7.07.2012 - 14:37) DarkLynx написал(а):
Ну для кого легко для кого сложно это вопрос второстепенный, но то что можно залить sql-inj это да.

Как конкретно я не вкурсе, не практиковал, но то что можно это факт. Проверено на личном опыте.

Спустя 1 час, 23 минуты, 13 секунд (7.07.2012 - 16:00) Shkiper написал(а):
Денис777 ты опять пишешь кучу ошибок в коде, хотя я тебе ранее давал более адекватный вид данного кода( ранее мой ник был DosiyaJkeeee может помнишь). Хотя некоторое ты взял из моего кода. На счет ошибки. Ты в заносе в базу записываешь в поле значение переменной $mail хотя в самом начале кода ты делаешь проверку если существует емайл то записываешь в переменную $email. чувствуешь разницу

Спустя 12 минут, 31 секунда (7.07.2012 - 16:13) Денис777 написал(а):
Shkiper Помню , какие ошибки смог с вашей помощью исправил

Спустя 44 секунды (7.07.2012 - 16:13) Денис777 написал(а):
DarkLynx сейчас убрал из скрипта


$login = trim($login);
$password = trim($password);

Спустя 1 минута, 43 секунды (7.07.2012 - 16:15) Денис777 написал(а):
DarkLynx А про переменные что то не уловил смысл

Спустя 5 минут, 41 секунда (7.07.2012 - 16:21) Shkiper написал(а):
Денис777 в опервых используй тот код который я тебе дал. Во вторых про переменные. Вот начало твоего кода:

//.......
if (isset($_POST['email'])) { $email = $_POST['email']; if ($email == '') { unset($email);} }
//.......

Тут если пользователь емаил ввел ты его в $email заносишь. Теперь перейдем к твоему запросу который не работает:
$result2 = mysql_query ("INSERT INTO `users` (`login`,`password`,`reg_date`,`email`,`reg_ip`) VALUES('".$login."','".$password."','".date("Y-m-d")."','".$mail."','".$_SERVER['REMOTE_ADDR']."')") or die(mysql_error());


Ты там в поле email заносишь $mail - так???? а теперь скажи откуда ты взял $mail, ведь ты в самом начале создавал не $mail а $email. поменяй название переменной в запросе на $email и заработает

Спустя 5 минут, 11 секунд (7.07.2012 - 16:26) Денис777 написал(а):
Shkiper да уж , глупая ошибка .

Спустя 22 минуты, 39 секунд (7.07.2012 - 16:48) Денис777 написал(а):
Shkiper вот нашел ваш скрипт




<?php

$login = trim($login);

if (strlen($login) < 3 or strlen($login) > 15) {

exit "Логин должен состоять не менее чем из 3 символов и не более чем из 15.";
}
if (strlen($password) < 3 or strlen($password) > 15) {



exit "Пароль должен состоять не менее чем из 3 символов и не более чем из 15.";
}

if(!isset($_POST['email']) or empty($_POST['email']))
{
exit "Вы не ввели email";
}else if (!preg_match('|([a-z0-9_\.\-]{1,20})@([a-z0-9\.\-]{1,20})\.([a-z]{2,4})|is', $_POST['email']))
{
echo "Вы ввели не верный email";
}else
{
$mail = $_POST['email'];
}

$password = md5($password);
require './bd.php';

$result = mysql_query("SELECT `id` FROM `users` WHERE `login`='".$login."'",$db) or die(mysql_error());

if(mysql_num_rows($result) > 0)
{

exit "Извините, введённый вами логин уже зарегистрирован. Введите другой логин.";
}


$result2 = mysql_query ("INSERT INTO `users` (`login`,`password`,`reg_date`,`email`,`reg_ip`) VALUES('".$login."','".$password."','".date("Y-m-d")."','".$mail."','".$_SERVER['REMOTE_ADDR']."')") or die(mysql_error());

if ($result2 == true)
{

echo "Вы успешно зарегистрированы! Теперь вы можете зайти на сайт. <a href='index.php'></a>";

}
else {

echo "Ошибка! Вы не зарегистрированы.";
}





а вот тут выдаеться ошибка




if (strlen($login) < 3 or strlen($login) > 15)

{

exit "Логин должен состоять не менее чем из 3 символов и не более чем из 15.";
}


Спустя 29 минут, 15 секунд (7.07.2012 - 17:18) inpost написал(а):
Ты лучше скажи, откуда берётся $mail ? Ещё раз задаю вопрос не спроста, откуда берётся $mail ?

Спустя 9 минут, 20 секунд (7.07.2012 - 17:27) Денис777 написал(а):
inpost уже исправил эту ошибку в своем скрипте , выше же написанно

Спустя 36 минут, 11 секунд (7.07.2012 - 18:03) inpost написал(а):
Ну так выстави новый код, укажи ошибки, что не так.

Спустя 1 минута, 37 секунд (7.07.2012 - 18:05) Денис777 написал(а):
inpost для чего ? huh.gif код есть выше , исправление ошибки тоже выше написано

Спустя 13 минут, 18 секунд (7.07.2012 - 18:18) inpost написал(а):
твоя фраза, что "я исправил" ещё не означает, что в финальной версии ошибка всё же исправлена.

Спустя 10 минут, 56 секунд (7.07.2012 - 18:29) Денис777 написал(а):
inpost не понимаю о чем вы


вот скрипт



<?php
if (isset($_POST['login'])) { $login = $_POST['login']; if ($login == '') { unset($login);} }
if (isset($_POST['password'])) { $password=$_POST['password']; if ($password =='') { unset($password);} }
if (isset($_POST['email'])) { $email = $_POST['email']; if ($email == '') { unset($email);} }
if (empty($login) or empty($password) or empty($email))

{
exit ("Вы ввели не всю информацию, вернитесь назад и заполните все поля!");
}

$login = stripslashes($login);
$login = htmlspecialchars($login);
$password = stripslashes($password);
$password = htmlspecialchars($password);

if (strlen($login) < 3 or strlen($login) > 15) {

exit ("Логин должен состоять не менее чем из 3 символов и не более чем из 15.");
}
if (strlen($password) < 3 or strlen($password) > 15) {

exit ("Пароль должен состоять не менее чем из 3 символов и не более чем из 15.");
}

$password = md5($password);

if (!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $email))
{exit ("Неверно введен е-mail!");}

include './bd.php';
$result = mysql_query("SELECT id FROM users WHERE login='$login'",$db);
$myrow = mysql_fetch_array($result);
if (!empty($myrow['id']))
{

exit ("Извините, введённый вами логин уже зарегистрирован. Введите другой логин.");
}



$result2 = mysql_query ("INSERT INTO `users` (`login`,`password`,`reg_date`,`email`,`reg_ip`) VALUES('".$login."','".$password."','".date("Y-m-d")."','".$email."','".$_SERVER['REMOTE_ADDR']."')") or die(mysql_error());
if ($result2=='TRUE')
{

echo "Вы успешно зарегистрированы! Теперь вы можете зайти на портал. <a href='vhod.php'>online games</a>";

}
else {

echo "Ошибка! Вы не зарегистрированы.";
}
?>

Спустя 34 минуты, 50 секунд (7.07.2012 - 19:04) inpost написал(а):
Ну дальше, вопрос где?

Спустя 41 минута, 21 секунда (7.07.2012 - 19:45) Денис777 написал(а):
inpost что где ? если вы про ошибку то вот


$result2 = mysql_query ("INSERT INTO `users` (`login`,`password`,`reg_date`,`email`,`reg_ip`) VALUES('".$login."','".$password."','".date("Y-m-d")."','".$email."','".$_SERVER['REMOTE_ADDR']."')") or die(mysql_error());
if ($result2=='TRUE')


тут была переменная $mail , а должна была быть $email

Спустя 43 минуты, 14 секунд (7.07.2012 - 20:29) inpost написал(а):
Денис777
Всё? Проблем нет, тема закрыта?

Спустя 39 минут, 1 секунда (7.07.2012 - 21:08) Денис777 написал(а):
inpost все работает , только вот скрипты попова говорят не надежны , надо будет постипенно переписывать unsure.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.