Всем доброго времени суток, хотел бы проконсультироваться с более опытными кодерами, по поводу моего кодового недрозумения, хотелось бы получить совет, что делаю так, а что не так, вот код
<?php
if(isset($_SESSION['email']) and isset($_SESSION['password'])){
echo"Регистрация была уже пройдена Вами ранее";
}
else{
if(isset($_POST['registration'])){
if(empty($_POST['email']) and empty($_POST['password'])){
echo"Емэйл и пароль не были введены";
}
else{
if(empty($_POST['email'])){
echo"Емэйл не введён";
}
elseif(empty($_POST['password'])){
echo"Пароль не введён";
}
else{
if(!preg_match("/^[\w\d]+\@[\w\d]+\.[\w\d]+$/", $_POST['email']) and !preg_match("/^[\w\d]+$/", $_POST['password'])){
echo"Емэйл может иметь следующий вид: a@a.aa; а так же может состоять, как и пароль, только из букв латинского алфавита и цифр";
}
else{
if(!preg_match("/^[\w\d]+\@[\w\d]+\.[\w\d]+$/", $_POST['email'])){
echo"Емэйл может иметь следующий вид: a@a.aa; а так же может состоять, только из букв латинского алфавита и цифр";
}
elseif(!preg_match("/^[\w\d]+$/", $_POST['password'])){
echo"Пароль может состоять только из букв латинского алфавита и цифр";
}
else{
$email=mb_strlen($_POST['email']);
$password=mb_strlen($_POST['password']);
if($email<6 and $password<5){
echo"Емэйл может состоять как минимум из 6 символов, а пароль из 5";
}
else{
if($email<6){
echo"Емэйл может состоять как минимум из 6 символов";
}
elseif($password<5){
echo"Пароль может состоять как минимум из 5 символов";
}
else{
if($email>255 and $password>255){
echo"Емэйл и пароль могут состоять максимум из 255 символов";
}
else{
if($email>255){
echo"Емэйл может состоять максимум из 255 символов";
}
elseif($password>255){
echo"Пароль может состоять максимум из 255 символов";
}
else{
if(mysql_num_rows(mysql_query("SELECT * FROM `login` WHERE `email`='".mysql_real_escape_string($_POST['email'])."' LIMIT 1"))){
echo"Емэйл уже зарегистрированн";
}
else{
if(mysql_query("INSERT INTO `login`(`email`, `password`) VALUES('".mysql_real_escape_string($_POST['email'])."', '".mysql_real_escape_string($_POST['password'])."')")){
echo"Вы успешно зарегистрированны";
}
else{
echo mysql_error();
}
}
}
}
}
}
}
}
}
}
}
else{
echo"<form method='POST'>Email<br><input name='email'><br>Password<br><input name='password'><br><input type='submit' name='registration'></form>";
}
}
?>
Как минимум вот это бред:
if(isset($_SESSION['email']) and isset($_SESSION['password'])){
echo"Регистрация была уже пройдена Вами ранее";
}
sirious, ох да надо было лучше header("location:/index.php"); вставить вместо echo"";
Ну подскажите что не так тогда
thesuperhamster, он про СЕССИЮ, вытащи данные из БД и проверяй.
СЕССИЯ долго не сохраняется
if(!isset($_POST['ok']))
{
echo '<form action="?" method ="post"">
Your login:<br/>
<input type="text" name="login"/><br/>
<input type="text" name="password"><br/>
<input type="submit" value="Окей" name="ok"/>
';
}
else
{
$login=htmlspecialchars($_POST['login']);
$password=htmlspecialchars($_POST['password']);
//Сначала фильтруй- самое главное
Дальше уже проверяешь коротким переменным $bla , а не $_POST['bla'];
Дальше уже пускай другой кодер объяснит)
}
IceJOKER,
if(mysql_query("SELECT * FROM `login` WHERE `email`='".$_SESSION['email']."' AND `password`='".$_SESSION['password']."' LIMIT 1")){
echo"Авторизован";
}
Так чтоли?
IceJOKER, да сколько уже можно учить то, практики нет вообще, напиши кодом пожалуйста что ты имел ввиду
03 Окт 2011, 14:21thesuperhamster, в твоем коде много ифов и элсов, что и влияет на работу скрипта.
первый пост можно осуществить более легким способом, чтобы работа скрипта не влияла на генерацию страницы.
во-первых будет лучше, если страница регистрации и страница авторизации будет разная.
далее для начала в странице реги сделай условие и этим условием раздели форму регистрации от ввода данных в БД.
как сделаешь столько, перейдем к вводам данных в БД.
P.S. С формой думаю сам разберешься.