[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: тема о недописаном коде РНР
YVSIK
вот код и он работает
Свернутый текст
 <?[SPAN=darling]php[/SPAN]   include 'db.php';
$loginl = !empty($_POST['loginl']) ? $_POST['loginl'] : NULL;
/*проверка на существование пользователя с таким же логином*/
$result = mysql_query("SELECT `id` FROM `reg_li_ag` WHERE `loginl` = '$loginl'", $db);
$myrow = mysql_fetch_assoc($result);
if(empty($myrow['id']))
{
unset($loginl);
include'menugg2.php';
}
else
{
$_SESSION['loginl']= "$loginl";
/* провеку пробелы, чтобы теги и скрипты не работали
удаляем лишние пробелы*/

$loginl = stripslashes($loginl);
$loginl = htmlspecialchars($loginl);
$loginl = trim($login);
echo 'Привет, '. $_SESSION['loginl'] .'<br>';
}
?>

всё сессия есть и даже работает вот только тут не работает как мне-бы хотелось
не хватает какого-то условия и никак не соображу какого чтоб
после аторизации опять не выбрасывало форму (в смысле опять аторизоваться)
а так и оставалось авторизованным и выдавало Привет,жирафФФ
есль код формы; вот

Свернутый текст
<table width="209" border="0" cellpadding="0" cellspacing="0" bordercolor="#FF0000" bgcolor="#CCFFFF"
>
<tbody>
<tr>
<td
height="23" align="center" ><?[SPAN=darling]php[/SPAN] include'menugg.php';?></td>
</tr>
<tr>
<td
width="205" height="23" align="center" ><strong><a href="/yvsik/index1.php">ГЛАВНАЯ</a></strong></td>
</tr>
<tr >
<td
width="205" height="23" align="center" ><strong>ПРЕДЛОЖЕНИЕ</strong></td>
</tr>
<tr>
<td
width="205" height="23" align="center" ><strong><a href="/yvsik/agent.php">АГЕНСТВ</a></strong></td>
</tr>
<tr>
<td
width="205" height="23" align="center" ><strong><a href="/yvsik/pred.php">ПРЕДПРИЯТИЙ</a></strong></td>
</tr>
<tr>
<td
width="205" height="23" align="center" ><strong><a href="/yvsik/vakan.php">ВАКАНСИЙ</a></strong></td>
</tr>
<tr>
<td
width="205" height="23" align="center" ><strong><a href="/yvsik/gorod.php">В ДРУГИХ ГОРОДАХ</a></strong></td>
</tr>
<tr>
<td
width="205" height="23" align="center" ><strong><a href="/yvsik/adres.php">АДРЕСА</a></strong></td>
</tr>
<tr>
<td
width="205" height="23" align="center" ><strong>ОБУЧЕНИЕ</strong></td>
</tr>
<tr>
<td
width="205" height="23" align="center" ><strong><a href="/yvsik/lizen.php">ЛИЦЕНЗИЯ</a></strong></td>
</tr>
<tr>
<td
width="205" height="23" align="center" ><strong><a href="/yvsik/regpol.php">РЕГИСТРАЦИЯ</a></strong></td>
</tr>
<tr
align="right">
<td
width="205" height="22"align="center" ></td>
</tr>
<tr>
<td
height="23" align="center" ><strong>ЗАКОНЫ</strong></td>
</tr>
<tr>
<td
width="205" height="23" align="center" ><strong>ОТЗЫВ</strong></td>
</tr>
</tbody>
</table>





Спустя 7 минут, 5 секунд (15.02.2011 - 22:53) Dron19 написал(а):
вместо сессий можешь использовать куки или совместно их использовать, например если откл куки у пользователя, то используешь сессии...

Спустя 3 минуты, 6 секунд (15.02.2011 - 22:56) T1grOK написал(а):
Идея в общем случае такая:

if ($_SESSION['loginl']){
страница которую видят только зарегистрированные
}else{
форма авторизации
}

Спустя 1 минута, 27 секунд (15.02.2011 - 22:58) Dron19 написал(а):
ага, а вот если он закроет браузер и снова запустит, то уже придется заново авторизовываться

Спустя 31 секунда (15.02.2011 - 22:58) Dron19 написал(а):
а вот если проверять на существование куки, то все тип-топ

Спустя 2 минуты, 40 секунд (15.02.2011 - 23:01) YVSIK написал(а):
так))))))))))))Dron19
это вопрос или ответ такой СПС!
в начале надо разобраться с сессиями потом приступим к кукам
а использовать буду конечно( как на душу придётся )
и то и другое

Спустя 1 минута, 40 секунд (15.02.2011 - 23:03) YVSIK написал(а):
T1grOK а что код по другому выглядит чё-ль

Спустя 27 секунд (15.02.2011 - 23:03) Snus написал(а):
Писать в куки md5 логин + пароль, при запуске, если сессия сдохла, дергаем из кукисов логпас, сверяем с мускулом и пишем сессию.

Спустя 47 секунд (15.02.2011 - 23:04) T1grOK написал(а):
Dron19 - ну тут уже каждый выбирает кому как удобней. Вопрос автора темы состоит в том как различать авторизированных и неавторизированных пользователей. Так что по теме я ответил. Остальное уже усовершенствования.

YVSIK
Еще. Более правильно будет сделать вот эту часть:

$myrow = mysql_fetch_assoc($result);
if(empty($myrow['id']))

вот так:

if(mysql_num_rows($result) > 0)

Спустя 2 минуты, 30 секунд (15.02.2011 - 23:06) Dron19 написал(а):
T1grOK, куки и сессии не одно и тоже...

Спустя 50 секунд (15.02.2011 - 23:07) Dron19 написал(а):
он же попросил помочь, что бы после авторизации опять не выдавало форму... А это куки

Спустя 4 минуты, 11 секунд (15.02.2011 - 23:11) T1grOK написал(а):
При использовании сессий с авторизацией все нормально, но как ты уже отметил при закрытии браузера все "слетает". Как по мне это даже плюс, забыл выйти и нормально, а с куками забыл выйти - кто-то другой каку сделал).

Спустя 1 минута, 44 секунды (15.02.2011 - 23:13) Snus написал(а):
T1grOK
Цитата
YVSIK
Еще. Более правильно будет сделать вот эту часть:


$myrow = mysql_fetch_assoc($result);
if(empty($myrow['id']))


вот так:


if(mysql_num_rows($result) > 0)

Это почему еще?

Спустя 5 минут, 19 секунд (15.02.2011 - 23:19) YVSIK написал(а):
понял так что без кук я этого уже не сделаю?
а елсе у клиента куки вырублены А?
так будь форма вылетать
мне надо чтоб на данном этапе не валетала форма
ваторизовался и привет ЖИРАФ
ещё раз с куками потом
сейчас сессии

Спустя 1 минута, 38 секунд (15.02.2011 - 23:20) Snus написал(а):
YVSIK
Если куки выключил клиент - то пускай каждый раз вводит пароль собака biggrin.gif

Спустя 4 минуты, 5 секунд (15.02.2011 - 23:24) T1grOK написал(а):
YVSIK
Принято так, использование данной функции является предпочтительным.
К тому же ты извлекаешь массив результата, чтобы проверить есть ли что нибудь, а при использовании mysql_num_rows() сначала проверяешь, а потом извлекаешь.
То есть в некоторых случаях экономятся(хоть и ничтожно) ресурсы.

Спустя 4 минуты, 19 секунд (15.02.2011 - 23:29) T1grOK написал(а):
 
<?php include 'db.php';

if(!$_SESSION['loginl']){

$loginl = !empty($_POST['loginl']) ? $_POST['loginl'] : NULL;
/*проверка на существование пользователя с таким же логином*/
$result = mysql_query("SELECT `id` FROM `reg_li_ag` WHERE `loginl` = '$loginl'", $db);

if(mysql_num_rows($result))
{
unset($loginl);
include'menugg2.php';
}
else
{

$_SESSION['loginl']= "$loginl";
/* провеку пробелы, чтобы теги и скрипты не работали
удаляем лишние пробелы*/

$loginl = stripslashes($loginl);
$loginl = htmlspecialchars($loginl);
$loginl = trim($login);

header("Location...")//редирект на самого себя, если используется одна точка входа

}

}
else{
//тут вставляешь то что надо показать авторизированному пользователю
}
?>

Спустя 1 минута, 42 секунды (15.02.2011 - 23:30) YVSIK написал(а):
все об чём туточки мы говори это понятно но вопрос был про сессии и про то какое условие добавить чтоб опять форма не предлогала авторизоваться
все-гото А ТО СЕЙЧАс ЗАОРУ


T1grOK это уже по теме шас надо пробовать

Спустя 13 минут, 43 секунды (15.02.2011 - 23:44) Dron19 написал(а):
Если выключены, выследишь это и попросишь включить куки, иначе скажешь ему, что бы вводил постоянно данные.

Спустя 1 час, 43 минуты, 13 секунд (16.02.2011 - 01:27) sergeiss написал(а):
Давай еще раз, кратко и по порядку. Что ты хочешь, как это делаешь и что получается на самом деле.

Спустя 2 минуты, 9 секунд (16.02.2011 - 01:29) YVSIK написал(а):
вот готовый как надо и должно по моему работать

Свернутый текст
<?php   include 'db.php';

if(!$_SESSION['loginl'])
{
$loginl = !empty($_POST['loginl']) ? $_POST['loginl'] : NULL;
/*проверка на существование пользователя с таким же логином*/
$result = mysql_query("SELECT `id` FROM `reg_li_ag` WHERE `loginl` = '$loginl'", $db);

if(mysql_num_rows($result))
{
unset($loginl);
include'menugg2.php';
}
else
{
$_SESSION['loginl']= "$loginl";
/* провеку пробелы, чтобы теги и скрипты не работали
удаляем лишние пробелы*/

$loginl = stripslashes($loginl);
$loginl = htmlspecialchars($loginl);
$loginl = trim($login);
header("Location: index1.php ");

}

}

else
{echo 'Привет, '. $_SESSION['loginl'] .'<br>';
//тут вставляешь то что надо показать авторизированному пользователю
}
?>

Спустя 2 минуты, 7 секунд (16.02.2011 - 01:31) sergeiss написал(а):
Это ты написал, что ты сделал smile.gif А какой алгоритм работы ты ХОТЕЛ получить и что получилось на самом деле, ты не описал. Словами, без кода.

И еще - а где у тебя начало сессии? Его что-то не видать.

Спустя 2 минуты, 31 секунда (16.02.2011 - 01:34) YVSIK написал(а):
не хватает какого-то условия и никак не соображу какого чтоб
после аторизации опять не выбрасывало форму (в смысле опять аторизоваться)
а так и оставалось авторизованным и выдавало Привет,жирафФФ

Спустя 1 минута, 21 секунда (16.02.2011 - 01:35) sergeiss написал(а):
На еще один вопрос ты не ответил: где у тебя начало сессии??? Где session_start()?

Спустя 2 минуты, 58 секунд (16.02.2011 - 01:38) YVSIK написал(а):
всё правильно человек подсказал но я не знаю как это редирект тут
на самого себя то есть аторизовался и больше нет формы аторизации

так сессион стар находиться на самой странице
куда подключаю этот обработчик и этот обработчик вставлен в меню
с формой
с чего всё начало это надо в первом посте смотреть

Спустя 12 минут, 38 секунд (16.02.2011 - 01:51) sergeiss написал(а):
Цитата (YVSIK @ 16.02.2011 - 02:29)
$_SESSION['loginl']="$loginl";
/* провеку пробелы, чтобы теги и скрипты не работали
  удаляем лишние пробелы*/
   $loginl = stripslashes($loginl);
   $loginl = htmlspecialchars($loginl);
   $loginl = trim($login);
header("Location: index1.php ");


Вот эту часть не понял... Во-первых, двойные кавычки тут не нужны: = "$loginl" - пиши это без кавычек.
А во-вторых... Зачем ты делаешь 3 действия надо переменной, если потому тут же идет переход на другую страницу? Эта переменная теряется.

Далее. Перед строкой if(!$_SESSION['loginl']) напиши что-нибудь типа
var_dump( $_SESSION['loginl'] );

чтобы убедиться, что переменная сессии была передана.

А header замени (на время отладки) на
header("Refresh: 30, index1.php ");
exit();

тогда редирект будет сделан только через 30 секунд и ты успеешь спокойно прочитать, что было написано до редиректа. И еще. Сразу же после редиректа пиши exit(), чтобы дальнейшая часть скрипта не обрабатывалась.

Спустя 2 часа, 3 минуты, 57 секунд (16.02.2011 - 03:55) YVSIK написал(а):
ВсЁ ВсЁёёёёёёёёёёёёёёёЁЁЁЁЁЁЁЁЁЁЁЁЁЁЁЁЁЁЁ))
никакого редиректа
специально для T1grOK респект полное внимание
ну полная благодарность в правильном направлении вы мен отправили НЕТ СЛОВ !!
для sergeiss так-же бла-го-да-рю

вот такой код; все надо тольк найти отличие
ну это для истории уже важно
<?php   include 'db.php';

if(!$_SESSION['loginl'])
{
$loginl = !empty($_POST['loginl']) ? $_POST['loginl'] : NULL;

$result = mysql_query("SELECT `id` FROM `reg_li_ag` WHERE `loginl` = '$loginl'", $db);
if(mysql_num_rows($result))

{
$_SESSION['loginl'] = $loginl;
echo 'Привет, '. $_SESSION['loginl'] .'<br>';
}
else
{
unset($loginl);
include'menugg2.php';
}
}

else
{
echo 'Привет, '. $_SESSION['loginl'] .'<br>';
}
?>

смысл такой
есль нет сессии аторизуйся;
есль нет логина регистрируйся а потом логинься;
а есль есть и то и другое Привет ЖираФФФ!
простота она всегда мать таланта ПОНИМАЕШЬ!!!
конечно-же ещё надобно доработать скажем так
безопасность добавить; но это уже детали


_____________
«Гнусное свойство карликовых умов приписывать
________________!свое духовное убожество другим!»
___
О) как-же он прав=>__________________ © Оноре де Бальзак.

отличный хост(рекомендую !! )
My MVC-CMV
Быстрый ответ:

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