Помогите пожалуйсто, уже не понимаю изз а чего выдает "Ошибка! Вы не зарегистрированы.", если все данные ввожу правильно Хотел нормально сделать регу на сайт, и видимо проблема тут:
<?php
if (isset($_POST['name'])) { $name = $_POST['name']; if ($name == '') { unset($name);} }
if (isset($_POST['email'])) { $email = $_POST['email']; if ($email == '') { unset($email);} }
if (isset($_POST['famil'])) { $famil = $_POST['famil']; if ($famil == '') { unset($famil);} }
if (isset($_POST['icq_skype'])) { $icq_skype = $_POST['icq_skype']; if ($icq_skype == '') { unset($icq_skype);} }
if (isset($_POST['login'])) { $login = $_POST['login']; if ($login == '') { unset($login);} }
if (isset($_POST['password'])) { $password=$_POST['password']; if ($password =='') { unset($password);} }
if (empty($login) or empty($password) or empty($email) or empty($name) or empty($famil))
{
exit ("Вы ввели не всю информацию, вернитесь назад и заполните все поля!");
}
$login = stripslashes($login);
$login = htmlspecialchars($login);
$password = stripslashes($password);
$password = htmlspecialchars($password);
$name = stripslashes($name);
$name = htmlspecialchars($name);
$email = stripslashes($email);
$email = htmlspecialchars($email);
$famil = stripslashes($famil);
$famil = htmlspecialchars($famil);
$icq_skype = stripslashes($icq_skype);
$icq_skype = htmlspecialchars($icq_skype);
$login = trim($login);
$password = trim($password);
$email = trim($email);
$famil = trim($famil);
$name = trim($name);
$icq_skype = trim($icq_skype);
include ("db.php");
$result = mysql_query("SELECT id FROM users WHERE login='$login'",$db);
$result_email = mysql_query("SELECT id FROM users WHERE email='$email'",$db);
$myrow = mysql_fetch_array($result);
$myrow2 = mysql_fetch_array($result_email);
if (!empty($myrow['id']) or !empty($myrow2['id'])) {
exit ("Извините, введённый вами логин уже зарегистрирован. Введите другой логин.");
}
$result = mysql_query ("INSERT INTO users (login,password,name,famil,email,icq/skype) VALUES('$login','$password','$name','$famil','$email','$icq_skype')");
// Проверяем, есть ли ошибки
if ($result)
{
echo "Вы успешно зарегистрированы! Теперь вы можете зайти на сайт. <a href='index.php'>Главная страница</a>";
}
else {
echo "Ошибка! Вы не зарегистрированы.";
}
?>
А разве mysql_query возвращает параметр 'TRUE' ???
по этому лучше сделать как
if ($result)
{
echo "Вы успешно зарегистрированы! Теперь вы можете зайти на сайт. <a href='index.php'>Главная страница</a>";
}
else {
echo "Ошибка! Вы не зарегистрированы.";
}
это во-первых.
Во-вторых, вот это
result = mysql_query("SELECT id FROM users WHERE login='$login'",$db);
$result_email = mysql_query("SELECT id FROM users WHERE email='$email'",$db);
$myrow = mysql_fetch_array($result);
$myrow2 = mysql_fetch_array($result_email);
if (!empty($myrow['id']) or !empty($myrow2['id']))
....
можно написать как
$result = mysql_query("SELECT id FROM users WHERE login='$login' OR email='$email'",$db);
а вот эту проверку:
if (!empty($myrow['id']) or !empty($myrow2['id']))
заменить на
if(mysql_num_rows($resul) > 0)
exit ("Извините, введённый вами логин уже зарегистрирован. Введите другой логин.");