[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Авторизация
Гость_Newbie
Здравствуйте, на моем сайте как то не понятно работает авторизация с сессией, заходит, но не поддерживает сессию аккаунта пользователя, элементарно не выводит даже имя пользователя т.к. сайт мне выдали вчера вместе с заданием, а сдавать нужно сегодня, разобраться сам не могу:(
Задание заключается в том чтобы добавить на сайт блок опроса для зарегистрированных пользователей и чтоб один пользователь мог голосовать только один раз. Я плохо понимаю как оно должно работать, но сдать надо, подскажите пожалуйста чего не хватает.
Заранее спасибо.

login.php
__________________________
<?php
include("header.php")
?>
<form action="login.php" method="POST">
<
input name="login">
<
br>
<
input name="pass" type="password">
<
br>
<
input type="submit">
</
form>
<?php
$flag=1;

if(isset($_POST["login"])){
$log=$_POST["login"];
$password=$_POST["pass"];

if(!(strlen($log) && strlen($password))){
echo "Вы не заполнили форму входа";
}
else{

$sp=md5($password);

if($stmt=$mysqli->prepare("select id,pass from users where login=?")){
$stmt->bind_param("s", $log);
$stmt->execute();
$stmt->bind_result($id_user,$val);
$stmt->fetch();

if($sp==$val){
echo "Вы вошли".$fio.""; //тут должно отображаться имя пользователя, но его нет
$_SESSION["id_user"]=$id_user;
$flag=0;
}
else{
echo "Вы не вошли";
}
$stmt->close();
}
}
}

if($flag){
?>
<?php
} ?>

<?php

include("footer.php")
?>

________________________
header.php
_______________________
<?php
session_start();
$mysqli = new mysqli('localhost', 'root', '', 'kurs');
//проверка сессии
if (!isset($_SESSION['counter'])) $_SESSION['counter']=0;
echo "Вы обновили эту страницу ".$_SESSION['counter']++." раз.<br>
<a href="
.$_SERVER['PHP_SELF'].'?'.session_name().'='.session_id().">обновить </a>";
echo "Вы вошли как" .$fio; //тут должно отображаться имя пользователя, но его нет

?>
<html>
<
body>
<
table width="800" border="0" cellspacing="0" cellpadding="4">
<
tr align="center" bgcolor="#999999">
<
td colspan="2" > Заголовок</td>
</
tr>
<
tr>
<
td>
<
a href="login.php">Войти</a>
<
br>
<?php if($_SESSION["id_user"]){?>
<a href="write.php">Оставить сообщение</a>
<
br>
<?php } ?>
<a href="sign.php">Зарегистрироваться</a>
<
br>
<
a href="exit.php">EXIT</a>
<
br>
<?php
if(strcmp($_SERVER["REQUEST_URI"],"/kurs/index.php")){
echo "<a href=\"index.php\">На главную</a>";
}
?>
</td>
<
td>

______________________
footer.php
______________________
</td>
</
tr>
<
tr>
<
td colspan="2">© Т.Д.А.</td>
</
tr>
</
body>
</
html>
<?php
include("blog.html") //тут подключается сам блок опроса
?>
<?php

$mysqli->close();
?>




Спустя 39 минут, 37 секунд (27.03.2012 - 08:09) rooor написал(а):
Цитата
...на моем сайте как то не понятно работает авторизация...

Цитата
...сайт мне выдали вчера вместе с заданием...


huh.gif

Зачем брался, если не понимаешь?
За тебя сейчас всё сделают, а ты бабки получишь?)

Спустя 6 минут, 27 секунд (27.03.2012 - 08:15) Гость_Newbie написал(а):
Цитата (rooor @ 27.03.2012 - 05:09)
Цитата
...на моем сайте как то не понятно работает авторизация...

Цитата
...сайт мне выдали вчера вместе с заданием...


huh.gif

Зачем брался, если не понимаешь?
За тебя сейчас всё сделают, а ты бабки получишь?)

Нет) я студент, это мое задание чтобы сдать экзамен и получить "хорошо")
опросник у меня есть, только авторизация не работает в должной мере, поэтому я и не могу ограничить голосование только зарегистрированными пользователями.
Я прошу помочь мне разобраться с авторизацией, тут явно чего то не хватает, а чего не знаю и времени разобраться у меня мало(

Спустя 8 минут (27.03.2012 - 08:23) rooor написал(а):
Авторизация есть, надо просто чуть подправить)
Чтобы блок видели только зарегистрированные - добавить одно условие)

Сколько занятий прогулял, что даже такое задание не сможешь сделать?

Спустя 10 минут, 24 секунды (27.03.2012 - 08:33) Guest написал(а):
каюсь, не уделял этому дома достаточно времени поэтому сейчас не могу сходу понять что написано в коде...ну и одно занятие прогулял)
ткни пальцем где нужно подправить:)
а условие вида:
<?php if($_SESSION["id_user"])
{ //тут должен быть сам блок голосования
?>
да?

Спустя 1 час, 43 минуты, 36 секунд (27.03.2012 - 10:17) Гость_Newbie написал(а):
Пожалуйста помогите с авторизацией!! Я сделал простой опросник с запретом повторного голосования, осталась только она, но и времени осталось немного(
HELP!!!!!!!!

Спустя 2 часа, 14 минут, 9 секунд (27.03.2012 - 12:31) Ser18 написал(а):
Что вы тут из БД выбираете

$stmt=$mysqli->prepare("select id,pass from users where login=?")

Спустя 7 минут, 19 секунд (27.03.2012 - 12:39) Guest написал(а):
Цитата (Ser18 @ 27.03.2012 - 09:31)
Что вы тут из БД выбираете

$stmt=$mysqli->prepare("select id,pass from users where login=?")

Если я все правильно понимаю то это выборка номера и пароля пользователя по логину, зачем так не знаю ибо эту авторизацию мне дал препод

Спустя 5 минут, 6 секунд (27.03.2012 - 12:44) Ser18 написал(а):
Может лучше так?
$stmt=$mysqli->prepare("select id,pass from users where login='".$log."'")

Спустя 2 минуты, 13 секунд (27.03.2012 - 12:46) Ser18 написал(а):
Не, все правильно

Спустя 5 минут, 37 секунд (27.03.2012 - 12:51) Ser18 написал(а):
А какие колонки в БД?
Точнее как называется колонка с именем пользователя?

Спустя 8 минут, 9 секунд (27.03.2012 - 13:00) Ser18 написал(а):
Наверно так
$stmt=$mysqli->prepare("select id, login, pass from users where login=?")

$stmt->bind_result($id_user,$fio,$val);

Спустя 20 минут, 41 секунда (27.03.2012 - 13:20) Guest написал(а):
Цитата (Ser18 @ 27.03.2012 - 10:00)
Наверно так
$stmt=$mysqli->prepare("select id, login, pass from users where login=?")

$stmt->bind_result($id_user,$fio,$val);


ну вроде сессия зарегистрированного пользователя идет, понял это потому что открывает скрытый контент, но всеравно не отображает кто зашел, только в момент входа возвращает имя. Почему так?
И кстати спасибо:)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.