Добро пожаловать, Гость!
Помощь по коду
PHP/MySQL | Помощь по коду
Chainsaw
:
Помагите пожалуйста нубу разобраться в коде.:-)
Ниже код, почему после авторизации я не могу переходить по разделам? . Выкидывает обратно на выход....
Например:
ввожу данные -> захожу на сайт -> при попытке зайти на форум или куда угодно обратно забрасывает на выход
Как это исправить?
#Вход
case 'auth':
#Если юзер авторизирован, то перекидываем его на главную страницу
if($user['id']){
header('Location: '.home.'/'); exit;
}
echo '<div class="menu2">Вход</div>';
if(isset($_GET['process'])){
$login = TextGuard($_POST['login']);
$password = TextGuard($_POST['password']);
if(empty($login)) $err[] = 'Вы не ввели логин';
if(empty($password)) $err[] = 'Вы не ввели пароль';
$dbinfo = mysql_fetch_array(mysql_query("SELECT `login`,`password` FROM `user` WHERE `login` = '".$login."' and `password`='".$password."' LIMIT 1"));
if(!empty($login) && !empty($password)) if($dbinfo==0) $err[] = 'Введенные данные не верны';
if(!$err){
setcookie('ulogin', $login, time()+86400*365, '/');
setcookie('upassword', $password, time()+86400*365, '/');
header('Location: /index.php');
}else{
echo '<div class="rega">';
foreach($err as $err_info){
echo $err_info.'<br>';
}
echo '</div>';
}}
echo '<div class="list1"><form action="?m=auth&process" method="post">
Логин:<br><input name="login" value="'.$login.'"/><br>Пароль [<a href="?m=password">Забыли пароль?</a>]:<br><input type="password" name="password" value="'.$password.'"/><br>
<input type="submit" value="Вход"/>
</form></div>';
echo '<div class="navg"><img src="/images/homepage.gif"/> <a href="/">На главную</a></div>';
break;
#Выход
case 'exit':
#Если юзер не авторизирован, то перекидываем его на главную страницу
if(!$user['id']){
header('Location: '.home.'/?m=auth'); exit;
}
setcookie('ulogin', $login, time()-86400*365, '/');
setcookie('upassword', $password, time()-86400*365, '/');
header('Location: '.home.'/');
break;
case 'registration':
#Если юзер авторизирован, то перекидываем его на главную страницу
if($user['id']){
header('Location: '.home.'/'); exit;
}
echo '<div class="menu2">Регистрация</div>';
if(isset($_GET['process'])){
$login = TextGuard($_POST['login']);
$password = TextGuard($_POST['password']);
$password2 = TextGuard($_POST['password2']);
$sex = TextGuard($_POST['sex']);
$secret_word = TextGuard($_POST['secret_word']);
if(empty($login)) $err[] = 'Вы не ввели логин';
if(!preg_match('|^[a-z0-9-]+$|i', $login)) $err[] = 'В логине присутствуют запрещенные символы';
if(strlen($login) <2 or strlen($login)>20) $err[] = 'Логин слишком длинный или короткий';
if(empty($password)) $err[] = 'Вы не ввели пароль';
if(!preg_match('|^[a-z0-9-]+$|i', $password)) $err[] = 'В пароле присутствуют запрещенные символы';
if(strlen($password) <2 or strlen($password)>50) $err[] = 'Пароль слишком длинный или короткий';
if(empty($password2)) $err[] = 'Вы не ввели повторный пароль';
if(empty($secret_word)) $err[] = 'Вы не ввели секретное слово';
if(!preg_match('|^[a-zа-Я0-9-]+$|i', $password)) $err[] = 'В секретном слове присутствуют запрещенные символы';
if(strlen($secret_word) <2 or strlen($secret_word)>50) $err[] = 'Секретное слово слишком длинное или короткое';
$dbinfo = mysql_fetch_array(mysql_query("SELECT `login` FROM `user` WHERE `login` = '".$login."' LIMIT 1"));
if(!empty($login))if($dbinfo!=0) $err[] = 'Такой логин уже существует';
if(!$err){
mysql_query("INSERT INTO `user`(
`login`,
`password`,
`registration`,
`secret_word`,
`rating`,
`ip`,
`ua`,
`sex`
)VALUES(
'".$login."',
'".$password."',
'".time()."',
'".$secret_word."',
'0',
'".$_SERVER['REMOTE_ADDR']."',
'".$_SERVER['HTTP_USER_AGENT']."',
'".$sex."'
)");
$reg_id = mysql_insert_id();
mysql_query("INSERT INTO `reg`(
`who`,
`ok`
)VALUES(
'".$reg_id."',
'0'
)");
setcookie('ulogin', $login, time()-86400*365, '/');
setcookie('upassword', $password, time()-86400*365, '/');
header('Location: '.home.'/');
}else{
echo '<div class="rega">';
foreach($err as $err_info){
echo $err_info.'<br>';
}
echo '</div>';
}}
echo '<div class="list1"><form action="?m=registration&process" method="post">
Логин:<br><input name="login" value="'.$login.'"/><br>
<small>В логине разрешено использовать только цифры и буквы латинского алфавита.</small><br>
Пароль:<br><input name="password" value="'.$password.'"/><br>
Повторить пароль:<br><input name="password2" value="'.$password2.'"/><br>
Пол:<br><select name="sex">
<option value="1">Мужской</option>
<option value="2">Женский</option>
</select><br>
Секретное слово:<br><input name="secret_word" value="'.$secret_word.'"/><br>
<small>Указывайте слово, которое вы запомните (понадобиться для смены пароля).</small><br><br>
<small>После окончания регистрации вы будете ограничены в доступе к сайту, пока вашу регистрацию не подтвердят администрация проекта.</small>
<br><br>
<input type="submit" value="Регистрация"/>
</form></div>';
echo '<div class="navg"><img src="/images/homepage.gif"/> <a href="/">На главную</a></div>';
break;
#Забыли пароль?
case 'password':
#Если юзер авторизирован, то перекидываем его на главную страницу
if($user['id']){
header('Location: '.home.'/'); exit;
}
echo '<div class="menu2">Забыли пароль?</div>';
if(isset($_GET['process'])){
$login = TextGuard($_POST['login']);
$secret_word = TextGuard($_POST['secret_word']);
if(empty($login)) $err[] = 'Вы не ввели логин';
if(empty($secret_word)) $err[] = 'Вы не ввели секретное слово';
$dbinfo = mysql_fetch_array(mysql_query("SELECT `login`,`secret_word`,`password` FROM `user` WHERE `login` = '".$login."' and `secret_word`='".$secret_word."' LIMIT 1"));
if(!empty($login) && !empty($secret_word)) if($dbinfo==0) $err[] = 'Введенные данные не верны';
if(!$err){
echo '<div class="okmenu"><u>Успешно</u><br>Ваш пароль: <u>'.$dbinfo['password'].'</u></div>';
}else{
echo '<div class="rega">';
foreach($err as $err_info){
echo $err_info.'<br>';
}
echo '</div>';
}}
echo '<div class="list1"><form action="?m=password&process" method="post">
Логин:<br><input name="login" value="'.$login.'"/><br>
Секретное слово:<br><input name="secret_word" value="'.$secret_word.'"/><br>
<input type="submit" value="Напомнить"/>
</form></div>';
echo '<div class="navg"><img src="/images/homepage.gif"/> <a href="/">На главную</a></div>';
break;
}
Помощь по коду
3 Ноября 2014Помагите пожалуйста нубу разобраться в коде.:-)
Ниже код, почему после авторизации я не могу переходить по разделам? . Выкидывает обратно на выход....
Например:
ввожу данные -> захожу на сайт -> при попытке зайти на форум или куда угодно обратно забрасывает на выход
Как это исправить?
#Вход
case 'auth':
#Если юзер авторизирован, то перекидываем его на главную страницу
if($user['id']){
header('Location: '.home.'/'); exit;
}
echo '<div class="menu2">Вход</div>';
if(isset($_GET['process'])){
$login = TextGuard($_POST['login']);
$password = TextGuard($_POST['password']);
if(empty($login)) $err[] = 'Вы не ввели логин';
if(empty($password)) $err[] = 'Вы не ввели пароль';
$dbinfo = mysql_fetch_array(mysql_query("SELECT `login`,`password` FROM `user` WHERE `login` = '".$login."' and `password`='".$password."' LIMIT 1"));
if(!empty($login) && !empty($password)) if($dbinfo==0) $err[] = 'Введенные данные не верны';
if(!$err){
setcookie('ulogin', $login, time()+86400*365, '/');
setcookie('upassword', $password, time()+86400*365, '/');
header('Location: /index.php');
}else{
echo '<div class="rega">';
foreach($err as $err_info){
echo $err_info.'<br>';
}
echo '</div>';
}}
echo '<div class="list1"><form action="?m=auth&process" method="post">
Логин:<br><input name="login" value="'.$login.'"/><br>Пароль [<a href="?m=password">Забыли пароль?</a>]:<br><input type="password" name="password" value="'.$password.'"/><br>
<input type="submit" value="Вход"/>
</form></div>';
echo '<div class="navg"><img src="/images/homepage.gif"/> <a href="/">На главную</a></div>';
break;
#Выход
case 'exit':
#Если юзер не авторизирован, то перекидываем его на главную страницу
if(!$user['id']){
header('Location: '.home.'/?m=auth'); exit;
}
setcookie('ulogin', $login, time()-86400*365, '/');
setcookie('upassword', $password, time()-86400*365, '/');
header('Location: '.home.'/');
break;
case 'registration':
#Если юзер авторизирован, то перекидываем его на главную страницу
if($user['id']){
header('Location: '.home.'/'); exit;
}
echo '<div class="menu2">Регистрация</div>';
if(isset($_GET['process'])){
$login = TextGuard($_POST['login']);
$password = TextGuard($_POST['password']);
$password2 = TextGuard($_POST['password2']);
$sex = TextGuard($_POST['sex']);
$secret_word = TextGuard($_POST['secret_word']);
if(empty($login)) $err[] = 'Вы не ввели логин';
if(!preg_match('|^[a-z0-9-]+$|i', $login)) $err[] = 'В логине присутствуют запрещенные символы';
if(strlen($login) <2 or strlen($login)>20) $err[] = 'Логин слишком длинный или короткий';
if(empty($password)) $err[] = 'Вы не ввели пароль';
if(!preg_match('|^[a-z0-9-]+$|i', $password)) $err[] = 'В пароле присутствуют запрещенные символы';
if(strlen($password) <2 or strlen($password)>50) $err[] = 'Пароль слишком длинный или короткий';
if(empty($password2)) $err[] = 'Вы не ввели повторный пароль';
if(empty($secret_word)) $err[] = 'Вы не ввели секретное слово';
if(!preg_match('|^[a-zа-Я0-9-]+$|i', $password)) $err[] = 'В секретном слове присутствуют запрещенные символы';
if(strlen($secret_word) <2 or strlen($secret_word)>50) $err[] = 'Секретное слово слишком длинное или короткое';
$dbinfo = mysql_fetch_array(mysql_query("SELECT `login` FROM `user` WHERE `login` = '".$login."' LIMIT 1"));
if(!empty($login))if($dbinfo!=0) $err[] = 'Такой логин уже существует';
if(!$err){
mysql_query("INSERT INTO `user`(
`login`,
`password`,
`registration`,
`secret_word`,
`rating`,
`ip`,
`ua`,
`sex`
)VALUES(
'".$login."',
'".$password."',
'".time()."',
'".$secret_word."',
'0',
'".$_SERVER['REMOTE_ADDR']."',
'".$_SERVER['HTTP_USER_AGENT']."',
'".$sex."'
)");
$reg_id = mysql_insert_id();
mysql_query("INSERT INTO `reg`(
`who`,
`ok`
)VALUES(
'".$reg_id."',
'0'
)");
setcookie('ulogin', $login, time()-86400*365, '/');
setcookie('upassword', $password, time()-86400*365, '/');
header('Location: '.home.'/');
}else{
echo '<div class="rega">';
foreach($err as $err_info){
echo $err_info.'<br>';
}
echo '</div>';
}}
echo '<div class="list1"><form action="?m=registration&process" method="post">
Логин:<br><input name="login" value="'.$login.'"/><br>
<small>В логине разрешено использовать только цифры и буквы латинского алфавита.</small><br>
Пароль:<br><input name="password" value="'.$password.'"/><br>
Повторить пароль:<br><input name="password2" value="'.$password2.'"/><br>
Пол:<br><select name="sex">
<option value="1">Мужской</option>
<option value="2">Женский</option>
</select><br>
Секретное слово:<br><input name="secret_word" value="'.$secret_word.'"/><br>
<small>Указывайте слово, которое вы запомните (понадобиться для смены пароля).</small><br><br>
<small>После окончания регистрации вы будете ограничены в доступе к сайту, пока вашу регистрацию не подтвердят администрация проекта.</small>
<br><br>
<input type="submit" value="Регистрация"/>
</form></div>';
echo '<div class="navg"><img src="/images/homepage.gif"/> <a href="/">На главную</a></div>';
break;
#Забыли пароль?
case 'password':
#Если юзер авторизирован, то перекидываем его на главную страницу
if($user['id']){
header('Location: '.home.'/'); exit;
}
echo '<div class="menu2">Забыли пароль?</div>';
if(isset($_GET['process'])){
$login = TextGuard($_POST['login']);
$secret_word = TextGuard($_POST['secret_word']);
if(empty($login)) $err[] = 'Вы не ввели логин';
if(empty($secret_word)) $err[] = 'Вы не ввели секретное слово';
$dbinfo = mysql_fetch_array(mysql_query("SELECT `login`,`secret_word`,`password` FROM `user` WHERE `login` = '".$login."' and `secret_word`='".$secret_word."' LIMIT 1"));
if(!empty($login) && !empty($secret_word)) if($dbinfo==0) $err[] = 'Введенные данные не верны';
if(!$err){
echo '<div class="okmenu"><u>Успешно</u><br>Ваш пароль: <u>'.$dbinfo['password'].'</u></div>';
}else{
echo '<div class="rega">';
foreach($err as $err_info){
echo $err_info.'<br>';
}
echo '</div>';
}}
echo '<div class="list1"><form action="?m=password&process" method="post">
Логин:<br><input name="login" value="'.$login.'"/><br>
Секретное слово:<br><input name="secret_word" value="'.$secret_word.'"/><br>
<input type="submit" value="Напомнить"/>
</form></div>';
echo '<div class="navg"><img src="/images/homepage.gif"/> <a href="/">На главную</a></div>';
break;
}
Комментарии: