|
|
|
| Думаю что ошибка у меня где то в приведенном участке кода. Проблема в том что как только входишь под своим логином/паролем сначала происходит редирект на пустую страницу и только после того как обновляю страницу выводятся данные о пользователе. Тоже самое происходит когда хочу отлогиниться.
<?php
session_start();
//Поключаю конфиг
require("config.inc.php");
echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Авторизация</title>
<style>
.input{
margin:15px;
font-family:Verdana, Arial, Helvetica, sans-serif;
float:left;
left:50px;
top:50px;
border:none;
}
input{ text-align:right;
margin:3px;
font-size:12px;
font-weight:200
}
img { float:left;
}
.link {
margin:3px;
color: #666666;
font-family:Verdana, Arial, Helvetica, sans-serif;
text-decoration:none;
border-bottom:1px black dashed;
font-size:9px}
.link:hover { background: #CCCCCC;}
.link2 {
color: #666666;
font-family:Verdana, Arial, Helvetica, sans-serif;
text-decoration:none;
border-bottom:1px black dashed;
font-size:9px}
p{color: #666666;
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size:9px;
margin:3px;}
</style>
</head>
<body>';
//подключаюсь к БД
$link = mysql_connect($DBSERVER, $DBUSER, $DBPASS)
or die("Не могу подключиться" );
// сделать $DB текущей базой данных
mysql_select_db($DB, $link) or die ('Не могу выбрать БД');
//Если нет сессий
if(md5(crypt($_SESSION['user'],$_SESSION['password'])) != $_SESSION['SID']) {
//Если кнопка не нажата, отображаем форму
if(!$_POST['do']){
echo '<div class="input">
<form action="" method="post">
<input name="login" type="text" value="login" size="20" maxlength="15" /><br/>
<input name="password" type="password" size="20" maxlength="15" /><br/>
<input name="do" type="submit" value="войти »" />
</form>
<a class="link" href="registration.php" title="Регистрация">регистрация</a>
</div>';
}
//Если кнопка нажата
if($_POST['do']) {
//Проверяем данные
$login = trim(addslashes(htmlentities(strip_tags(strtolower($_POST['login'])))));
$upass = trim(addslashes(htmlentities(strip_tags($_POST['password']))));
if($login !='' OR $upass !='') {
//Создаем запрос
$q1=mysql_query("SELECT * FROM users WHERE nick='".$login."' AND password='".md5($upass)."' AND status=1");
//Проверяем существует ли хоть одна запись
if(mysql_num_rows($q1)==1) {
//Если есть, то создаем сессии и перенаправляем на эту страницу
$r=mysql_fetch_array($q1);
$_SESSION['user'] = $r['nick'];
$_SESSION['password'] = $r['password'];
$_SESSION['SID'] = md5(crypt($r['nick'],$r['password']));
@Header("Location: index.php");
}
else {echo 'Неверный логин/пароль';}
}
}
}
else {
$user=trim(addslashes(htmlentities(strip_tags($_SESSION['user']))));
$password=trim(addslashes(htmlentities(strip_tags($_SESSION['password']))));
$q2 = @mysql_query("SELECT * FROM users WHERE nick='".$user."' AND password='".$password."' AND status=1");
if(mysql_num_rows($q2)==1){
$r2 = mysql_fetch_array($q2);
echo '<div class="input">
<p>Вы : '.ucwords($r2['nick']).' <br/>
Последний визит: '.$r2['last_date'].'<br/>
Дата регистрации: '.$r2['date'].'</p>
<a class="link" href="index.php?exit=1" title="Выход">выход</a>
</div>';
if($_GET['page'] !='') {
@include("tpl".trim(addslashes(htmlentities(strip_tags($_GET['page'])))).".php");
}
else { @include("tpl/default.php");}
}
}
if($_GET['exit']) {@session_destroy(); unset($_GET['exit']); mysql_close($link); @Header("Location: index.php");}
echo '</body>
</html>';
?>
|
| |
|
|
|
|
|
|
|
для: AlexDF
(13.11.2008 в 02:39)
| | ничего не понятно... опишите несколько поподробнее. откуда данные поступают, какие данные это. что вы ожидаете от скрипта. что именно вы думаете является ошибкой? | |
|
|
|
|
|
|
|
для: mikesvb
(13.11.2008 в 06:36)
| | Это как вы уже наверно поняли, это процедура авторизации пользователя, тоесть все как обычно,-пользователь вводит в форму данные авторизации, которые затем используются для нахождении в базе связки логин-пароль и статус =1(акуант активирован).Так вот, как только пользователь введет правильние данные и нажмет "Вход", происходит редирект на эту же страницу, только вместо формы авторизации выводились бы данные о пользователе, часть из которых выводилась бы с помощью:
<p>Вы : '.ucwords($r2['nick']).' <br/>
Последний визит: '.$r2['last_date'].'<br/>
Дата регистрации: '.$r2['date'].'</p>
<a class="link" href="index.php?exit=1" title="Выход">выход</a>
|
А остальные подгружались из файла default.php
А теперь о проблеме, как только жму "Вход" - происходит редирект на пустую страницу,-данные выводятся только после обновления этой пустой страницы. | |
|
|
|
|
|
|
|
для: AlexDF
(13.11.2008 в 02:39)
| | Вы лучше собак некчемных уберите из кода своего, обязательно получите ошибку. У вас перед пердачей заголовка есть вывод в браузер, а значит ваш хидер не будет работать. | |
|
|
|
|
|
|
|
для: sim5
(13.11.2008 в 06:42)
| | Немного не понимаю про каких собак вы говорите? | |
|
|
|
|
|
|
|
для: AlexDF
(14.11.2008 в 23:29)
| | про каких собак вы говорите?
про никчёмных....
| |
|
|
|
|
|
|
|
для: Valick
(15.11.2008 в 00:36)
| | Без них выдает предупреждение что: типа не может модифицировать информацию заголовка т.к заголовки уже посылали! | |
|
|
|
|
|
|
|
для: AlexDF
(15.11.2008 в 01:15)
| | Ну и? вы считаете это нормальным? Этого быть не должно.... сначала заголовки, а потом всё осталное и никак иначе.
А по поводу собак на ум приходит анекдот:
Петька и Василий Иванович нажрались водки в сарае...
- Василий Иванович, белые наступают!
- Пей, Петька.
- Василий Иванович, белые уже в хату вошли...
- Пей, Петька.
- Василий Иванович, белые в сарай ломятся...
- Петька, ты меня видишь???
- Нет, Василий Иванович...
- И я тебя не вижу.... @.....нно спрятались..... | |
|
|
|