<?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
Всегда при работе с базами данных и данными из вне, приводите к безопасному виду. Почитайте про 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 в опервых используй тот код который я тебе дал. Во вторых про переменные. Вот начало твоего кода:
Тут если пользователь емаил ввел ты его в $email заносишь. Теперь перейдем к твоему запросу который не работает:
Ты там в поле email заносишь $mail - так???? а теперь скажи откуда ты взял $mail, ведь ты в самом начале создавал не $mail а $email. поменяй название переменной в запросе на $email и заработает
//.......
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 для чего ? код есть выше , исправление ошибки тоже выше написано
Спустя 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 что где ? если вы про ошибку то вот
тут была переменная $mail , а должна была быть $email
$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 все работает , только вот скрипты попова говорят не надежны , надо будет постипенно переписывать