imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Веб-мастеру > Веб-программирование
Опции темы
Старый 20.07.2005, 10:42     # 101
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
Слушай, нак, у тебя же следующий код обрабатывает все
PHP код:
if (isset($id)&&$id!=''&&is_file('_text/'.$id.'.txt.php')) 
@include_once(
'_text/'.$id.'.txt.php'); else  @include_once('_text/phones.txt.php'); 
? Ты вообще понимаешь что там написано и как работает??? Там же вообще никак не учитывается вторая переменная $loc и директория из которой нужно брать файлы тоже прописана жестко. Советую тебе разобраться нормально хотябы с этими 3 строчками!!!

Только сразу предостерегаю - не вздумай просто передавать параметром путь к файлу для включения напрямую - это даже в случае кучи проверок очень небезопастно - так делать НЕ надо. То на что ты пытаешься равняться - неверно.
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума  
Старый 21.07.2005, 10:53     # 102
нак
Member
 
Аватар для нак
 
Регистрация: 12.02.2003
Адрес: сочи
Сообщения: 370

нак Известность не заставит себя ждатьнак Известность не заставит себя ждать
А как дописать код, чтобы обрабатывал $loc для захода в папки с файлами?
нак вне форума  
Старый 21.07.2005, 18:24     # 103
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
Цитата:
нак:
А как дописать код, чтобы обрабатывал $loc для захода в папки с файлами?
Тогда так чтобы в нем передавался лишь идентификатор, по кторому потом можно будет определить директорию (из БД ли, из файла ли), и обязательно полюбому к этому дописывать еще постоянную часть пути - иначе это будут открытые ворота для злоумышленников, как и писалось выше.

Вообще не советую так делать.
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума  
Старый 21.07.2005, 18:34     # 104
нак
Member
 
Аватар для нак
 
Регистрация: 12.02.2003
Адрес: сочи
Сообщения: 370

нак Известность не заставит себя ждатьнак Известность не заставит себя ждать
Мне из файла нужно определять путь к директории. С базой я пока не научился пользоваться.
нак вне форума  
Старый 13.09.2005, 11:16     # 105
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
Цитата:
нак:
Мне из файла нужно определять путь к директории.
Тоесть еще и идентификатор директории передавать чтоли хочешь?
Цитата:
нак:
С базой я пока не научился пользоваться.
Зря.

Цитата:
нак:
Я и создаю директорию press_other в директории _txt и помещаю туда файл. Ставлю сылку в файле articles.txt.php index.s.php?id=articles&loc=press_other/pts_gro.php. Но все равно ответ как будто нет такой директорнии и файла. Остается та же страница
А вообще это может выглядеть приблизительно так:
это в конфиг куда-то:
Код:
$pathsDirs = array(
    'articles' => 'articles_dir',
    'news' => 'news_dir'
#.... и так далее
            );

$locationFiles = array(
    'pts_gro' => 'pts_gro.php',
    'other' => 'other_file.php'
#.... и так далее
                );
А это соответственно новая обработка переменных $id и $loc:
PHP код:
if (@$id and array_key_exists($id$pathsDirs) and @$loc and array_key_exists($loc$locationFiles) and is_file($pathsDirs[$id].'/'.$locationFiles[$loc]))
    include_once(
$pathsDirs[$id].'/'.$locationFiles[$loc]);
    else @include_once(
'_text/phones.txt.php');#Что-то поумолчанию 
Ну или что-то подобное. Как говорится "Истина где-то рядом" (почти нуародное уже)
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума  
Старый 20.09.2005, 18:55     # 106
нак
Member
 
Аватар для нак
 
Регистрация: 12.02.2003
Адрес: сочи
Сообщения: 370

нак Известность не заставит себя ждатьнак Известность не заставит себя ждать
Спасибо за код. У меня другой код работает, но и этот пойдет тоже.
И еще у меня другой вопрос:
Как мне написать код чтобы нижний файл с баннерами загружался с опозданием, после загрузки основной страницы не сылаясь на этот файл и торможение страницы.
нак вне форума  
Старый 21.09.2005, 11:13     # 107
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
Цитата:
нак:
Как мне написать код чтобы нижний файл с баннерами загружался с опозданием, после загрузки основной страницы не сылаясь на этот файл и торможение страницы.
Это можно будет сделать только на JavaScript - подгружать баннер нижний, когда страница уже загрузилась. Потому что сервер отдает страницу, и не знает когда там оно загрузилось, когда нет. Точнее можно конечно проверить что забрал/загрузил клиент уже, ожидая с выводом оставшейся части, но для одной страницы это будет неправильно делать - ведь страница будет не полной, поэтому может и интерпретироваться браузером не правильно. Да и геморно будет отслуживать и проверять для каждой страницы, скачались ли уже все связанные файлы (картинки например), если вообще это можно сделать точно (Помоему в Логах пишется только факт запроса чего-либо, но не результат отдачи, если прервана загрузка? Поправит кто-то?).
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума  
Старый 21.09.2005, 11:54     # 108
нак
Member
 
Аватар для нак
 
Регистрация: 12.02.2003
Адрес: сочи
Сообщения: 370

нак Известность не заставит себя ждатьнак Известность не заставит себя ждать
А как это написать, чтобы работало?
нак вне форума  
Старый 22.09.2005, 11:49     # 109
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
Цитата:
нак:
А как это написать, чтобы работало?
Просто на onload документа вешаете обработчик, и в нем, например в iframe, подгружаете нужный документ (меняете scr) с баннером. А первоначально там пустой документ пусть. Вот и все. Это если на JS, подругому даже думать лень, и связываться из-за такой мелочи с таким гемором...
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума  
Старый 26.01.2007, 16:24     # 110
нак
Member
 
Аватар для нак
 
Регистрация: 12.02.2003
Адрес: сочи
Сообщения: 370

нак Известность не заставит себя ждатьнак Известность не заставит себя ждать
Помогите мне доделать файл регистрации. Создал код заполнения формы по логину паролю и имя\отчество. Создал базу для прописки юзера.
Файл регистрации работает при отправке зарегистрированого пользователя в базу нормально. Все добавляется без проблем.
Потом решил добавить функцию проверки на свободность имя пользователя, чтобы если есть пользователь с таким именем то выдаст ошибку что есть такой пользователь и вернется обратно в форму. Вот на этом у меня заминка не могу нормально написать проверку. Помогите мне разобраться в этом.

Код формы регистрации с обработкой:

PHP код:
<?
include ("config.php");
$sm '<INPUT TYPE="button" VALUE="Вернуться" onClick="history.back()">';
if (
$_POST['sent']==1) {
$_POST['login'] = str_replace('~','',strip_tags(trim ($_POST['login'])));
$_POST['passw'] = str_replace('~','',strip_tags(trim ($_POST['passw'])));
$_POST['firstname'] = str_replace('~','',strip_tags(trim ($_POST['firstname'])));
if (!
$_POST['login']) { echo "<br>Пожалуйста введите логин<br>"; unset ($_POST['sent']); echo $sm; exit;}
if (!
$_POST['passw']) { echo "<br>Пожалуйста введите пароль<br>"; unset ($_POST['sent']); echo $sm; exit;}
if (!
$_POST['firstname']) { echo "<br>Пожалуйста введите имя и отчество<br>"; unset ($_POST['sent']); echo $sm; exit;}
if(
StrLen($_POST['passw'])<4) { echo "<br>Пароль должен содержать больше 4 символов</br>"; unset ($_POST['sent']); echo $sm; exit;}
//Выбор строк с таблицы с базы
$sql="select login from user where login = '$login'";
$result=mysql_query($sql,$db_conn);
// Проверка на свободность имя пользователя
if ($_POST['login']==$login)
{
$sql="insert into user (login, pass, firstname) values ('".$_POST[login]."','".$_POST[passw]."','".$_POST[firstname]."')";
$result=mysql_query($sql,$db_conn);
echo 
"Спасибо за регистрацию на сайте. Теперь Вы можете авторизоваться на сайте.<br>"
echo 
$sm;
}
else
{
echo 
"Извените но логин с таким именем $_POST[user]  уже существует в базе. Вернитесь обратно и выбирите другое имя.";
echo 
$sm;
}
}
else
{
?>
<center><form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input name="sent" type="hidden" value=1 />
<table width="53%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <th colspan="2" align="center" scope="col"><h3>Регистрация пользователя </h3></th>
  </tr>
  <tr>
    <td width="48%" align="center">&nbsp;</td>
    <td width="52%">&nbsp;</td>
  </tr>
  <tr>
    <td align="center"><strong>Ваш логин:</strong></td>
    <td><input name="login" maxlength="15" type="text" size="20" value="<? echo $_POST['login']; ?>" /></td>
  </tr>
  <tr>
    <td align="center">&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td align="center"><strong>Ваш пароль:</strong></td>
    <td><input name="passw" maxlength="10" type="password" size="20" value="<? echo $_POST['passw']; ?>" /></td>
  </tr>
  <tr>
    <td align="center">&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td align="center"><strong>Имя/Отчество:</strong></td>
    <td><input name="firstname" type="text" value="<? echo $_POST['firstname']; ?>" /></td>
  </tr>
  <tr>
    <td align="center">&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td align="center"><input type="submit" value="Зарегится" /></td>
    <td align="center"><input type="reset" value="Очистить" /></td>
  </tr>
</table>
</form></center>
<?
}
?>
База данных:

PHP код:
-- 
-- 
Структура таблицы `user`
-- 

CREATE TABLE `user` (
  `
idint(11NOT NULL auto_increment,
  `
loginvarchar(15NOT NULL,
  `
passvarchar(10NOT NULL,
  `
firstnamevarchar(126NOT NULL,
  
PRIMARY KEY  (`id`)
ENGINE=MyISAM  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=10 ;

-- 
-- 
Дамп данных таблицы `user`
-- 
нак вне форума  
Старый 26.01.2007, 23:01     # 111
EvroStandart
Full Member
 
Аватар для EvroStandart
 
Регистрация: 20.01.2004
Адрес: Таллинн
Пол: Male
Сообщения: 623

EvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собой
пишеш SELECT COUNT id AS number WHERE `login`='tvoj_login'
потом просто выполняеш и проверяеш. Если результат 0 - такого нет; если 1 - такой есть.
Дальше пишеш сообщение ошибки или соответственно добавляеш и пишеш "всё добавилось"
EvroStandart вне форума  
Старый 22.02.2007, 12:41     # 112
нак
Member
 
Аватар для нак
 
Регистрация: 12.02.2003
Адрес: сочи
Сообщения: 370

нак Известность не заставит себя ждатьнак Известность не заставит себя ждать
Спасибо решил проблемку. Все проверяет и работает, но осталась другая проблема, чтобы уже авторизованым меня не выкидывало с авторизации и не повторяться в авторизации. А то хожу по страницам и меня выкидывает и приходится повторно авторизовываться. Вот код авторизации повторяю:

PHP код:
<?
include ("config.php");
$sm '<INPUT TYPE="button" VALUE="Выйти" onClick="history.back()">';
if (
$_POST['session']==1) {
$_POST['login'] = str_replace('~','',strip_tags(trim ($_POST['login'])));
$_POST['passw'] = str_replace('~','',strip_tags(trim ($_POST['passw'])));
if (!
$_POST['login']) { echo "<center><br>Пожалуйста введите логин</center><br>"; unset ($_POST['sent']); echo $sm; exit;}
if (!
$_POST['passw']) { echo "<center><br>Пожалуйста введите пароль</center><br>"; unset ($_POST['sent']); echo $sm; exit;}
$sql="select login, pass, firstname, email from user where login = '$_POST[login]' and pass = '$_POST[passw]' limit 1";
$result=mysql_query($sql,$db_conn);
$row=mysql_fetch_array($result);
if (
$_POST['login']==$row[login] AND $_POST['passw']==$row[pass])
{
echo 
"Добро пожаловать $row[firstname] рад Вас видеть.";
echo 
$sm;
}
else
{
echo 
"Такого пользователя/пароля в базе нет. Повторите авторизацию<br>";
echo 
$sm;
}
}
else
{
?>
<center><form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input name="session" type="hidden" value=1 />
<table width="200" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <th colspan="2" scope="col">Авторизация</th>
  </tr>
  <tr>
    <th width="75" scope="col">&nbsp;</th>
    <th width="125" scope="col">&nbsp;</th>
  </tr>
  <tr>
    <th scope="col">Логин</th>
    <th scope="col"><input name="login" maxlength="15" type="login" size="20" value="<? echo $_POST['login']; ?>" /></th>
  </tr>
  <tr>
    <th scope="col">&nbsp;</th>
    <th scope="col">&nbsp;</th>
  </tr>
  <tr>
    <th scope="col">Пароль</th>
    <th scope="col"><input name="passw" maxlength="10" type="password" size="20" value="<? echo $_POST['passw']; ?>" /></th>
  </tr>
  <tr>
    <th scope="col">&nbsp;</th>
    <th scope="col">&nbsp;</th>
  </tr>
  <tr>
    <th scope="col"><input type="submit" value="Войти" /></th>
    <th scope="col"><a href="?id=register">Зарегиться</a></th>
  </tr>
  <tr>
    <th scope="col">&nbsp;</th>
    <th scope="col">&nbsp;</th>
  </tr>
</table>
</form></center>
<?
}
?>
Т. е. как применить в скрипте куки и сессию?

Последний раз редактировалось нак; 22.02.2007 в 13:02.
нак вне форума  
Старый 22.02.2007, 15:18     # 113
EvroStandart
Full Member
 
Аватар для EvroStandart
 
Регистрация: 20.01.2004
Адрес: Таллинн
Пол: Male
Сообщения: 623

EvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собой
Цитата:
Сообщение от нак Посмотреть сообщение
А то хожу по страницам и меня выкидывает и приходится повторно авторизовываться.
Ты каждый раз проверяеш $_POST - это то, что передавалось с формы. После перехода на другую страницу оттуда всё стирается и заполняется заново (если снова что-то передавал).
Используй сессии.

добавлено через 1 минуту
Цитата:
Сообщение от нак Посмотреть сообщение
как применить в скрипте куки и сессию
а не прогуляться ли тебе с этим вопросом на гугл?
EvroStandart вне форума  
Старый 22.02.2007, 15:38     # 114
Павел
Guest
 
Сообщения: n/a

1. В самом начале КАЖДОЙ страницы вызываешь ф-цию

Код:
session_start();

2. После проверки логина и пароля установи переменную сессии (имя переменной _access__ и ее содержимое может быть произвольным):

Код:
$_SESSION["_access__"] = "On";

3. Теперь тебе достаточно проверить переменную сессии для того, что бы определить авторизован ли уже этот пользователь:

Код:
if(isset($_SESSION["_access__"]))
 if($_SESSION["_access__"] == "On")
  {
   <Этот пользователь авторизован>
  }
 else
  {
   <А этого мы пошлем на хутор бабочек ловить...>
  }

4. И последнее. При выходе пользователя должен выполнится следующий скрипт:

Код:
if(isset($_SESSION["_access__"])) unset($_SESSION["_access__"]); 
session_destroy();
Сделай, например, ссылку "Выход" и пусть этот скрипт выполнится при переходе по ней.

Цитата:
Сообщение от EvroStandart Посмотреть сообщение
а не прогуляться ли тебе с этим вопросом на гугл?
Кстати, да...
 
Старый 22.02.2007, 16:00     # 115
нак
Member
 
Аватар для нак
 
Регистрация: 12.02.2003
Адрес: сочи
Сообщения: 370

нак Известность не заставит себя ждатьнак Известность не заставит себя ждать
Цитата:
Сообщение от Павел Посмотреть сообщение
1. В самом начале КАЖДОЙ страницы вызываешь ф-цию


Код:
session_start();
Что я спрашиваю потому что уже пробывал это и мне место работы выдавало ошибку что приходилось ставить перед знак @.
Спасибо попробую
нак вне форума  
Старый 22.02.2007, 19:04     # 116
нак
Member
 
Аватар для нак
 
Регистрация: 12.02.2003
Адрес: сочи
Сообщения: 370

нак Известность не заставит себя ждатьнак Известность не заставит себя ждать
Цитата:
Сообщение от Павел Посмотреть сообщение
4. И последнее. При выходе пользователя должен выполнится следующий скрипт:


Код:
if(isset($_SESSION["_access__"])) unset($_SESSION["_access__"]);
session_destroy();
Что то не работает выход из сайта.

PHP код:
<?
session_start
();
if (isset (
$_REQUEST['action'])=='logout')
{
if(isset(
$_SESSION['$_POST[login]'])) unset($_SESSION['$_POST[login]']); 
session_destroy();
session_unset();
}
include (
"config.php");
$sm '<INPUT TYPE="button" VALUE="Выйти" onClick="history.back()">';
$ext="<a href=?action=logout><input type=button value=Выйти></a>";
$_SESSION['$_POST[login]'] = "On";
if(isset(
$_SESSION['$_POST[login]']))
 if(
$_SESSION['$_POST[login]'] == "On")
  {
  
$sql="select login, pass, firstname, email from user where login = '$_POST[login]' and pass = '$_POST[passw]' limit 1";
$result1=mysql_query($sql,$db_conn);
$row=mysql_fetch_array($result1);
   echo 
"Добро пожаловать $row[firstname] ";
   echo 
$ext;
  }
 else
 {
if (
$_POST['session']==1) {
$_POST['login'] = str_replace('~','',strip_tags(trim ($_POST['login'])));
$_POST['passw'] = str_replace('~','',strip_tags(trim ($_POST['passw'])));
if (!
$_POST['login']) { echo "<center><br>Пожалуйста введите логин</center><br>"; unset ($_POST['sent']); echo $sm; exit;}
if (!
$_POST['passw']) { echo "<center><br>Пожалуйста введите пароль</center><br>"; unset ($_POST['sent']); echo $sm; exit;}
$sql="select login, pass, firstname, email from user where login = '$_POST[login]' and pass = '$_POST[passw]' limit 1";
$result=mysql_query($sql,$db_conn);
$row=mysql_fetch_array($result);
if (
$_POST['login']==$row[login] AND $_POST['passw']==$row[pass])
{
echo 
"Добро пожаловать $row[firstname] рад Вас видеть.";
echo 
$sm;
}
else
{
echo 
"Такого пользователя/пароля в базе нет. Повторите авторизацию<br>";
echo 
$sm;
}
}
else
{
?>
<center><form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input name="session" type="hidden" value=1 />
<table width="200" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <th colspan="2" scope="col">Авторизация</th>
  </tr>
  <tr>
    <th width="75" scope="col">&nbsp;</th>
    <th width="125" scope="col">&nbsp;</th>
  </tr>
  <tr>
    <th scope="col">Логин</th>
    <th scope="col"><input name="login" maxlength="15" type="login" size="20" value="<? echo $_POST['login']; ?>" /></th>
  </tr>
  <tr>
    <th scope="col">&nbsp;</th>
    <th scope="col">&nbsp;</th>
  </tr>
  <tr>
    <th scope="col">Пароль</th>
    <th scope="col"><input name="passw" maxlength="10" type="password" size="20" value="<? echo $_POST['passw']; ?>" /></th>
  </tr>
  <tr>
    <th scope="col">&nbsp;</th>
    <th scope="col">&nbsp;</th>
  </tr>
  <tr>
    <th scope="col"><input type="submit" value="Войти" /></th>
    <th scope="col"><a href="?id=register">Зарегиться</a></th>
  </tr>
  <tr>
    <th scope="col">&nbsp;</th>
    <th scope="col">&nbsp;</th>
  </tr>
</table>
</form></center>
<?
}
}
?>
нак вне форума  
Старый 23.02.2007, 14:22     # 117
Павел
Guest
 
Сообщения: n/a

То, что у тебя session_start() вызывает ошибку более чем странно. Покопайся в настройках. Я даю тебе проверенный тестовый пример авторизации с использованием session и cookies. Просто создай файлы с указанными именами и содержимым. Посмотри будет ли он работать на твоем хостинге.

Файл №1: index.php
PHP код:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>

<body>
<?php
session_start
();
if(isset(
$_SESSION["__access_"]))
 {
  if(
$_SESSION['__access_'] == "On"
  {
?>
   Вы авторизованы<p>
   <a href="page2.php">Страница 2</a><p><p>
   <a href="logout.php">Выход</a>
<?php
  
}
 }
 else 
 {
?>
  Вы не авторизованы<p>
  <a href="page2.php">Страница 2</a><p><p>
  <a href="auth.html">Вход</a>
<?php
 
}
?>
</body>
</html>
Файл №2: page2.php
PHP код:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>

<body>
<?php
session_start
();
if(isset(
$_SESSION["__access_"]))
 {
  if(
$_SESSION['__access_'] == "On"
  {
?>
   Вы авторизованы<p>
  <a href="index.php">Страница 1</a><p><p>
  <a href="logout.php">Выход</a>
<?php
  
}
 }
 else 
 {
?>
  Вы не авторизованы<p>
  <a href="index.php">Страница 1</a><p><p>
  <a href="auth.html">Вход</a>
<?php
 
}
?>
</body>
</html>

Файл №3: auth.html
PHP код:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<
html>


<
body>

<
form action="auth.php" method="post">
 
Имя: <input name="login" type="edit" /><br>
 
Пароль: <input name="pswd" type="edit" /><p>
 <
input type="submit" value="Войти" />
</
form>

</
body>
</
html

Файл №4: auth.php
PHP код:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>

<head>
<meta http-equiv="*******" content="0; URL=index.php">
</head>

<body>
<?php
session_start
();
echo  
$_POST['login']."  #  ".$_POST['pswd'];
if((
$_POST['login'] == "Name") && ($_POST['pswd'] == "1")) 
 
$_SESSION['__access_'] = "On";
?>

</body>
<html>

Файл №5: logout.php
PHP код:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>

<head>
<meta http-equiv="*******" content="0; URL=index.php">
</head>

<body>
<?php
session_start
();
if(isset(
$_SESSION["_access__"])) unset($_SESSION["_access__"]); 
session_destroy();
?>
</body>
<html>
 
Старый 23.02.2007, 16:13     # 118
EvroStandart
Full Member
 
Аватар для EvroStandart
 
Регистрация: 20.01.2004
Адрес: Таллинн
Пол: Male
Сообщения: 623

EvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собой
Цитата:
Сообщение от Павел Посмотреть сообщение
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>

<body>
<?php
session_start();
Ты этот код проверял? Если я правильно помню, до session_start() ничего броузеру передавать нельзя.
EvroStandart вне форума  
Старый 23.02.2007, 16:36     # 119
Павел
Guest
 
Сообщения: n/a

2 EvroStandart
Проверял. Передавать нельзя тело документа (документация PHP: you must call session_start() before anything is outputted to the browser.), а в указанном тобой фрагменте

Код HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>

<body>
<?php
определяется DTD.

2 нак
Насчет ошибки при вызове session_start(). Какой у тебя PHP? В документации нашел следующее примечание:

As of PHP 4.3.3, calling session_start() while the session has already been started will result in an error of level E_NOTICE. Also, the second session start will simply be ignored.
 
Старый 24.02.2007, 10:08     # 120
нак
Member
 
Аватар для нак
 
Регистрация: 12.02.2003
Адрес: сочи
Сообщения: 370

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


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 16:38.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.