Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Помогите исправить код
 
 автор: AlexDF   (13.11.2008 в 02:39)   письмо автору
 
 

Думаю что ошибка у меня где то в приведенном участке кода. Проблема в том что как только входишь под своим логином/паролем сначала происходит редирект на пустую страницу и только после того как обновляю страницу выводятся данные о пользователе. Тоже самое происходит когда хочу отлогиниться.

<?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="&#1074;&#1086;&#1081;&#1090;&#1080; &raquo;" />
  </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>'
;
?>

  Ответить  
 
 автор: mikesvb   (13.11.2008 в 06:36)   письмо автору
 
   для: AlexDF   (13.11.2008 в 02:39)
 

ничего не понятно... опишите несколько поподробнее. откуда данные поступают, какие данные это. что вы ожидаете от скрипта. что именно вы думаете является ошибкой?

  Ответить  
 
 автор: AlexDF   (14.11.2008 в 23:28)   письмо автору
 
   для: 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
А теперь о проблеме, как только жму "Вход" - происходит редирект на пустую страницу,-данные выводятся только после обновления этой пустой страницы.

  Ответить  
 
 автор: sim5   (13.11.2008 в 06:42)   письмо автору
 
   для: AlexDF   (13.11.2008 в 02:39)
 

Вы лучше собак некчемных уберите из кода своего, обязательно получите ошибку. У вас перед пердачей заголовка есть вывод в браузер, а значит ваш хидер не будет работать.

  Ответить  
 
 автор: AlexDF   (14.11.2008 в 23:29)   письмо автору
 
   для: sim5   (13.11.2008 в 06:42)
 

Немного не понимаю про каких собак вы говорите?

  Ответить  
 
 автор: Valick   (15.11.2008 в 00:36)   письмо автору
 
   для: AlexDF   (14.11.2008 в 23:29)
 

про каких собак вы говорите?
про никчёмных....
@

  Ответить  
 
 автор: AlexDF   (15.11.2008 в 01:15)   письмо автору
 
   для: Valick   (15.11.2008 в 00:36)
 

Без них выдает предупреждение что: типа не может модифицировать информацию заголовка т.к заголовки уже посылали!

  Ответить  
 
 автор: Valick   (15.11.2008 в 01:38)   письмо автору
 
   для: AlexDF   (15.11.2008 в 01:15)
 

Ну и? вы считаете это нормальным? Этого быть не должно.... сначала заголовки, а потом всё осталное и никак иначе.
А по поводу собак на ум приходит анекдот:
Петька и Василий Иванович нажрались водки в сарае...
- Василий Иванович, белые наступают!
- Пей, Петька.
- Василий Иванович, белые уже в хату вошли...
- Пей, Петька.
- Василий Иванович, белые в сарай ломятся...
- Петька, ты меня видишь???
- Нет, Василий Иванович...
- И я тебя не вижу.... @.....нно спрятались.....

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования