[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Подключеный файл по разному открываеться
Shkiper
Всем здравствуйте!!!! У меня есть главная страница. К ней при инклюден файл в котором можно войти в аккаунт(ну там если сессия есть то выводим данные а если нет то форму) так вот на гл странице все работает. Так вот я зашел на гл страницу в аккаунт не зашел захожу на другую страницу там где аккаунт ваше имя такое короче выводит какбудто я зашел только где пишут при входе привет,Deert nы вошел пшет также только имени нет тоесть получаеться произходит авторизация без логина и пароля а возвращяусь на гл страницу обратно форма для фхода вылазит че зв фигня(простите за выражение)????



Спустя 11 минут, 52 секунды (9.01.2012 - 13:22) alex12060 написал(а):
Deert

код в студию

Спустя 16 минут, 1 секунда (9.01.2012 - 13:38) alexbel2404 написал(а):
3 раза прочитал - ничего не понял smile.gif

Спустя 2 часа, 53 минуты (9.01.2012 - 16:31) Shkiper написал(а):
<?php
// вся процедура работает на сессиях. Именно в ней хранятся данные пользователя, пока он находится на сайте. Очень важно запустить их в самом начале странички!!!

include ("system/data/db.php");// файл bd.php должен быть в той же папке, что и все остальные, если это не так, то просто измените путь
include ("system/data/config.php");

if (isset($_COOKIE['auto']) and isset($_COOKIE['login']) and isset($_COOKIE['password']) and isset($_COOKIE['group']))
{//если есть необходимые переменные
if ($_COOKIE['auto'] == 'yes') { // если пользователь желает входить автоматически, то запускаем сессии
$_SESSION['password']=strrev(md5($_COOKIE['password']))."b3p6f"; //в куках пароль был не зашифрованный, а в сессиях обычно храним зашифрованный
$_SESSION['login']=$_COOKIE['login'];//сессия с логином
$_SESSION['id']=$_COOKIE['id'];//идентификатор пользователя
$_SESSION['group']=$_COOKIE['group'];
}
}


if (!empty($_SESSION['login']) and !empty($_SESSION['password']))
{
//если существет логин и пароль в сессиях, то проверяем их и извлекаем аватар
$login = $_SESSION['login'];
$password = $_SESSION['password'];
$result = mysql_query("SELECT id,avatar FROM users WHERE login='$login' AND password='$password' AND activation='1'",$db);
$myrow = mysql_fetch_array($result);
//извлекаем нужные данные о пользователе
}
?>


<?php

if (!isset($myrow['avatar']) or $myrow['avatar']=='') {
//проверяем, не извлечены ли данные пользователя из базы. Если нет, то он не вошел, либо пароль в сессии неверный. Выводим окно для входа. Но мы не будем его выводить для вошедших, им оно уже не нужно.
print <<<HERE
<form action="http://localhost/phpsite/?do=cache_reg" method="post">
<!-- testreg.php - это адрес обработчика. То есть, после нажатия на кнопку "Войти", данные из полей отправятся на страничку testreg.php методом "post" -->
<p>
<label>Ваш логин:<br></label>
<input name="login" type="text" size="15" maxlength="15"

HERE;


if (isset($_COOKIE['login'])) //есть ли переменная с логином в COOKIE. Должна быть, если пользователь при предыдущем входе нажал на чекбокс "Запомнить меня"
{
//если да, то вставляем в форму ее значение. При этом пользователю отображается, что его логин уже вписан в нужную графу
echo ' value="'.$_COOKIE['login'].'">';
}


print <<<HERE
</p>
<!-- В текстовое поле (name="login" type="text") пользователь вводит свой логин -->
<p>
<label>Ваш пароль:<br></label>
<input name="password" type="password" size="15" maxlength="15"

HERE;


if (isset($_COOKIE['password']))//есть ли переменная с паролем в в COOKIE. Должна быть, если пользователь при предыдущем входе нажал на чекбокс "Запомнить меня"
{
//если да, то вставляем в форму ее значение. При этом пользователю отображается, что его пароль уже вписан в нужную графу
echo ' value="'.$_COOKIE['password'].'">';
}

print <<<HERE
</p>
<!-- В поле для паролей (name="password" type="password") пользователь вводит свой пароль -->
<p>
<input name="save" type="checkbox" value='1'> Запомнить меня.
</p>
<p>
<input name="autovhod" type="checkbox" value='1'> Автоматический вход.
</p>

<p>
<input type="submit" name="submit" value="Войти">
<!-- Кнопочка (type="submit") отправляет данные на страничку testreg.php -->
<br>
<!-- ссылка на регистрацию, ведь как-то же должны гости туда попадать -->
<a href="/?do=registration">Зарегистрироваться</a>

<br>
<!-- ссылка на восстановление пароля -->
<a href="send_pass.php">Забыли пароль?</a>

</p></form>
<br>


HERE;
}

else
{
//при удачном входе пользователю выдается все, что расположено ниже между звездочками.
//************************************************************************************



echo "<div align='top'>";

print <<<HERE
<a href='$config[base_url]?do=page_profile&id=$_SESSION[id]'>Моя страница</a><br><a href='/?do=userlist'>Список пользователей</a><br><a href='http://localhost/phpsite/?do=exit'>Выход</a><br><br>

<!-- Между оператором "print <<<HERE" выводится html код с нужными переменными из php -->
Вы вошли на сайт, как <span class="color">
$_SESSION[login]</span><br>
Вы находитесь в группе <div>
$_SESSION[group]</div><br>
<!-- выше ссылка на выход из аккаунта -->
<b>Ваш аватар:</b></br>
<img alt='
$_SESSION[login]' src='$myrow[avatar]'>
<!-- Выше отображается аватар. Его адрес содержит переменная
$myrow[avatar] -->

<!-- Именно здесь можно добавлять формы для отправки комментариев и прочего... -->
</div>

HERE;


//************************************************************************************
//при удачном входе пользователю выдается все, что расположено ВЫШЕ между звездочками.

}

?>

на комментарии не обращяй внимания они неправильные

Спустя 5 минут, 19 секунд (9.01.2012 - 16:36) Michael написал(а):
session_start() забыл

Спустя 6 минут, 21 секунда (9.01.2012 - 16:42) Shkiper написал(а):
да не на той странице есть куда подключаю

Спустя 1 час, 49 минут, 9 секунд (9.01.2012 - 18:32) Shkiper написал(а):
ну так что такое твариться????

Спустя 1 день, 19 часов, 15 минут, 57 секунд (11.01.2012 - 13:48) Shkiper написал(а):
кто мне поможет??????

Спустя 7 минут, 48 секунд (11.01.2012 - 13:55) Invis1ble написал(а):
Deert
Цитата
// вся процедура работает на сессиях. Именно в ней хранятся данные пользователя, пока он находится на сайте. Очень важно запустить их в самом начале странички!!!

- комментарий из твоего же кода.

Цитата
session_start() забыл

комментарий эксперта, который ты проигнорировал

Спустя 13 минут, 16 секунд (11.01.2012 - 14:09) Shkiper написал(а):
вообщето я это не проигнорировал
Цитата
да не на той странице есть куда подключаю

так-что это не решает проблему

Спустя 4 минуты, 24 секунды (11.01.2012 - 14:13) Invis1ble написал(а):
в коде, который ты привел нет session_start()

Спустя 13 минут, 11 секунд (11.01.2012 - 14:26) Shkiper написал(а):
но в файле к которому я подключаю этот файл есть!!! user posted image

Спустя 1 час, 14 минут, 4 секунды (11.01.2012 - 15:40) nugle написал(а):
Deert
Вот ты прикидываешься? тебе еще раз говорят поставь session_start()

Спустя 4 часа, 39 минут, 12 секунд (11.01.2012 - 20:19) Shkiper написал(а):
nuqle это ты прикалываеся я уже 2 поста пишу что session_start() я ставлю в начале страници к которой подключаю этот файл!!!

Спустя 1 час, 39 минут, 15 секунд (11.01.2012 - 21:59) inpost написал(а):
Deert
Когда ты просишь помощь, человек смотрит ТОЛЬКО на тот код, который ты выложил. Тебе кажется, что у тебя есть, а нам необходимо это видеть.
1. Сделай вывод ошибок
2. print <<<HERE - обсурд, противоречащий друг другу. Закрывай ?> И тут нормально выводи HTML код, а где надо снова откроешь: <?php ...
3. СТИЛИ? Ну сколько раз надо тыкать? Мне кажется, что мой котик уже бы понял, что в этом месте не надо писать, если бы я его столько раз тыкал в этот участок!!!
4. isset, если проверяешь несколько переменных, их достаточно через запятую писать.
5. Ты за кодом следишь? В одном месте: $var['text'], в уже СОСЕДНЕМ: $var[text]... кавычки во втором случае где потерял?
6. Инклюд не требует скобок.
7. Попросили же, нормально изложи суть проблемы.
8. Для кого пишешь комментарии, особенно когда они неправильные? В файле bd.php у нас коннект... отлично, но такого файла не сущесвтует...
9. mysql_fetch_assoc.
10. ГДЕ or DIE ? У меня на язык одни маты... в соседней теме написал: OR DIE, в личку написал OR DIE... Сложно запомнить несколько стандартных вещей?!
11. $login = $_SESSION['login']; - Это делать не надо, если ты сразу используешь $_SESSION['login']!!!! Лишняя переменная тут не нужна.
12. В запросе обрабатываешь текстовые записи через trim и mysql_real_escape_string.
13. Свойства аттрибутов тегов пишутся ДВОЙНЫМИ кавычками, а не одинарными.
14. В случаях отсутствия КУКИ, разве не нужно закрывать этот тег:
<input name="password" type="password" size="15" maxlength="15"

Спустя 19 часов, 20 минут, 4 секунды (12.01.2012 - 17:19) Shkiper написал(а):
попробуем!!! на счет стилей и кода!!! Все писал это когда попова изучал вот и получилась я люблю булочки и стили я тогда незнад просто я теперь в стилях все оформляю что пишу заново я потом все исправлю спс!!!
Быстрый ответ:

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