Bars
Новичок
Это скрипт регистрации. На 41-й строке мы проверяем, есть ли уже принятый e-mail ($login) в базе данных. Если нету - нам надо занести его в базу данных, а если есть - закрыть соединение с базой, выдать ошибку и остановить выполнение скрипта.
Если e-mail есть в системе, всё хорошо, просто надо выдать пользователю ошибку о занятости e-mail'а. Но если пользователь не зарегистрирован (т.е. его e-mail'а нет в базе), то появляется
Ошибка:
db.php:
Если e-mail есть в системе, всё хорошо, просто надо выдать пользователю ошибку о занятости e-mail'а. Но если пользователь не зарегистрирован (т.е. его e-mail'а нет в базе), то появляется
Ошибка:
reg.php:Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 7 in R:\home\w2.by\www\inc\reg.php on line 39
Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 8 in R:\home\w2.by\www\inc\reg.php on line 48
Warning: Cannot modify header information - headers already sent by (output started at R:\home\w2.by\www\inc\reg.php:39) in R:\home\w2.by\www\inc\reg.php on line 57
PHP:
<?php
session_start();
$login = mysql_real_escape_string(trim(strtolower($_POST['login'])));
$pass = mysql_real_escape_string(trim($_POST['pass']));
$pass1 = mysql_real_escape_string(trim($_POST['pass1']));
$wmr = mysql_real_escape_string(trim($_POST['wmr']));
$code = mysql_real_escape_string(trim((int)$_POST['code']));
$ip = $_SERVER["REMOTE_ADDR"];
$ref = '0';
if (!preg_match('#^[A-Za-z0-9@._-]+$#i', $login)){
header("Location: /register/?error=1");
exit;
} else if (strlen($login) > 40 || strlen($login) < 8){
header("Location: /register/?error=2");
exit;
} else if ($pass <> $pass1){
header("Location: /register/?error=3");
exit;
} else if (!preg_match('#^[A-Za-z0-9-_]+$#i', $pass) || !preg_match('#^[A-Za-z0-9-_]+$#i', $pass1)){
header("Location: /register/?error=4");
exit;
} else if (strlen($pass) > 32 || strlen($pass) < 8){
header("Location: /register/?error=5");
exit;
} else if (strlen($wmr) <> 13 || !preg_match('#^[R0-9]+$#i', $wmr)){
header("Location: /register/?error=6");
exit;
} else if ($code <> $_SESSION['code']){
header("Location: /register/?error=7");
exit;
}
$md5 = md5(md5($pass));
include 'db.php';
$remail = mysql_query("SELECT `email` FROM `users` WHERE `email`='$login'");
$realemail = mysql_result($remail, 0);
if ($login == $realemail){
mysql_close();
header("Location: /register/?error=8");
exit;
}
$rewmr = mysql_query("SELECT `wmr` FROM `users` WHERE `wmr`='$wmr'");
$realwmr = mysql_result($rewmr, 0);
if ($wmr == $realwmr){
mysql_close();
header("Location: /register/?error=9");
exit;
}
mysql_query("INSERT INTO `users` (`email`, `pass`, `wmr`, `ref`, `reg_date`, `reg_ip`) VALUES ('$login', '$md5', '$wmr', $ref, NOW(), '$ip')") or die('Ошибка запроса к базе данных');
mysql_close();
header("Location: /register/?success");
?>
PHP:
<?php
$host = 'localhost'; // Хост БД
$user = 'root'; // Пользователь БД
$pass = ''; // Пароль ДБ
$name = 'w2'; // Имя БД
mysql_connect($host, $user, $pass) or die('Не удалось соединиться с базой данных');
mysql_select_db($name);
?>