Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: cookie и работа с ним
Форумы портала PHP.SU » » Вопросы новичков » cookie и работа с ним

Страниц (2): [1] 2 »
 

1. postal - 04 Мая, 2012 - 22:43:15 - перейти к сообщению
На сайте хочу сделать Админку для добавление данных в БД , вот возникла проблема :

CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php
  2. if($_COOKIE['user'] == "admin" && $_COOKIE['pass']=="12345")
  3. //и если данные правильны то дальше отображается блок
  4.  
  5. ?>

для формы
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php
  2.         if($_POST['login'] == "admin" && $_POST['pass'] =="12345")
  3.         {
  4.                 setcookie ('user','admin');
  5.                setcookie ('pass','12345');
  6.         }
  7. ?>
  8.  

Выводит такую ошибку:
Warning: Cannot modify header information - headers already sent by ....

Ошибка возникает в строках где функция setcookie
2. caballero - 04 Мая, 2012 - 22:44:34 - перейти к сообщению
какая проблема (кроме той что ты пароль админа пытаешся в куках оставить)
3. avtor.fox - 04 Мая, 2012 - 22:46:53 - перейти к сообщению
Ошибка раз. Проверка у Вас - или логин равен... или пароль равен. Нужно ставить "и".
Ошибка два. Не храните пароль от админки в явном виде. Тем более в куках. Пароль = хешь + соль. Используйте сессии.
4. postal - 04 Мая, 2012 - 22:51:33 - перейти к сообщению
Просто не дописал и нажал Ctrl + Enter )))
Вот собственно ошибка
Warning: Cannot modify header information - headers already sent by
5. avtor.fox - 04 Мая, 2012 - 23:07:06 - перейти к сообщению
Спойлер (Отобразить)

У Вас заголовки отправляются после вывода контента.
6. postal - 04 Мая, 2012 - 23:09:52 - перейти к сообщению
avtor.fox пишет:
Спойлер (Отобразить)

У Вас заголовки отправляются после вывода контента.

У меня там ещё форма , через POST , вот почему то записываться в куки файл не хочет , пробовал просто так даже

CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php
  2. setcookie ('a','dasda');
  3. echo ($_COOKIE['a']);
  4. ?>

та же ошибка выдается , в google искал , пробовал , не че не помогло . Кодировка файла и charset cp1251
7. avtor.fox - 04 Мая, 2012 - 23:17:20 - перейти к сообщению
попробуйте преобразовать файл в utf8 без BOM.
А код вот такой -

PHP:
скопировать код в буфер обмена
  1. if(!$_COOKIE['test']){
  2. setcookie('test', 'texttexttext', time()+3600);
  3. }
  4. else{
  5. echo $_COOKIE['test'];
  6. }


Без всякого пост и прочего. Чистый файл в UTF8
8. postal - 04 Мая, 2012 - 23:22:59 - перейти к сообщению
avtor.fox пишет:
попробуйте преобразовать файл в utf8 без BOM.
А код вот такой -

PHP:
скопировать код в буфер обмена
  1. if(!$_COOKIE['test']){
  2. setcookie('test', 'texttexttext', time()+3600);
  3. }
  4. else{
  5. echo $_COOKIE['test'];
  6. }


Без всякого пост и прочего. Чистый файл в UTF8

Да так работает , просто post там потому что несколько блоков , один из них вход на сайт
9. avtor.fox - 04 Мая, 2012 - 23:32:52 - перейти к сообщению
мде. код в студию.
10. postal - 04 Мая, 2012 - 23:36:03 - перейти к сообщению
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2.         <div id="objavlenie_main"><!--Главный блок объявлений -->
  3.                 <h1>Объявления</h1><!--заголовок объявлений -->
  4.                 <div id="objavlenie_block">
  5.                 <ul class="glochka">
  6.                 <?php
  7.                         $connect = mysql_connect('localhost','user','1111') or die ('Невожможно подключиться '.mysql_error());
  8.                         mysql_select_db('dbase');
  9.                         $select = mysql_query("SELECT * FROM news ORDER BY ID DESC");
  10.                         $fselect = mysql_fetch_assoc($select);
  11.                         $i = 0;
  12.                         while($fselect && $i < 7)
  13.                         {
  14.                                         echo ('<li>'.$fselect['zagolovok'].'</li>');
  15.                                         $fselect = mysql_fetch_assoc($select);
  16.                                         $i++;
  17.                         }
  18.                         mysql_close($connect);
  19.                         ?>
  20.                 </ul>
  21.                 </div>
  22.                
  23.                 <!--Блок входа на сайт-->
  24.                 <h1>Вход на сайт</h1>
  25.                 <div align="center" id="objavlenie_block">
  26.                 <form action="" method=post class="form_style">
  27.             Логин<br/>
  28.             <input type="text" name="login" size="22">
  29.             <br/>Пароль<br/>
  30.             <input type="password" name="pass" size="22">
  31.             <br/><input type="submit" value="Вход" name="open">
  32.                         <br/>
  33.                 </form>
  34.                 </div>
  35.                
  36.                 <?php
  37.                 if($_POST['login'] == "admin" && $_POST['pass'] =="01234") //Запись в файл cookie
  38.                 {
  39.                         setcookie ("kapriz_login",$_POST['login']);
  40.                         setcookie ("kapriz_pass",$_POST['pass']);
  41.                 }
  42.         </div>
  43.  

user это для блока новостей, carset тут не указан и вообще не чего из <head> так как файл инклюдится
11. avtor.fox - 04 Мая, 2012 - 23:39:49 - перейти к сообщению
Код пожалуйста начинающийся с первой строки и заканчивающийся тегом
12. postal - 04 Мая, 2012 - 23:40:49 - перейти к сообщению
avtor.fox пишет:
Код пожалуйста начинающийся с первой строки и заканчивающийся тегом

этот файл инклюдится к другим страницам , там все прописано
13. avtor.fox - 04 Мая, 2012 - 23:45:00 - перейти к сообщению
Тогда не морочьте голову. У Вас в этом файле нет заголовков. И вообще. В ошибке же сказано какой файл пытается отправить заголовки после вывода контента (и даже какая строка). О как Однако
14. postal - 04 Мая, 2012 - 23:47:47 - перейти к сообщению
avtor.fox пишет:
Тогда не морочьте голову. У Вас в этом файле нет заголовков. И вообще. В ошибке же сказано какой файл пытается отправить заголовки после вывода контента (и даже какая строка). О как Однако

Я сейчас попробую что нибудь придумать , кое что уже прояснилось спасибо за ответы , если что напишу ) что и как сделал
15. Wol_fi - 05 Мая, 2012 - 00:06:26 - перейти к сообщению
postal пишет:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2.         <div id="objavlenie_main"><!--Главный блок объявлений -->
  3.                 <h1>Объявления</h1><!--заголовок объявлений -->
  4.                 <div id="objavlenie_block">
  5.                 <ul class="glochka">
  6.                 <?php
  7.                         $connect = mysql_connect('localhost','user','1111') or die ('Невожможно подключиться '.mysql_error());
  8.                         mysql_select_db('dbase');
  9.                         $select = mysql_query("SELECT * FROM news ORDER BY ID DESC");
  10.                         $fselect = mysql_fetch_assoc($select);
  11.                         $i = 0;
  12.                         while($fselect && $i < 7)
  13.                         {
  14.                                         echo ('<li>'.$fselect['zagolovok'].'</li>');
  15.                                         $fselect = mysql_fetch_assoc($select);
  16.                                         $i++;
  17.                         }
  18.                         mysql_close($connect);
  19.                         ?>
  20.                 </ul>
  21.                 </div>
  22.                
  23.                 <!--Блок входа на сайт-->
  24.                 <h1>Вход на сайт</h1>
  25.                 <div align="center" id="objavlenie_block">
  26.                 <form action="" method=post class="form_style">
  27.             Логин<br/>
  28.             <input type="text" name="login" size="22">
  29.             <br/>Пароль<br/>
  30.             <input type="password" name="pass" size="22">
  31.             <br/><input type="submit" value="Вход" name="open">
  32.                         <br/>
  33.                 </form>
  34.                 </div>
  35.                
  36.                 <?php
  37.                 if($_POST['login'] == "admin" && $_POST['pass'] =="01234") //Запись в файл cookie
  38.                 {
  39.                         setcookie ("kapriz_login",$_POST['login']);
  40.                         setcookie ("kapriz_pass",$_POST['pass']);
  41.                 }
  42.         </div>
  43.  

user это для блока новостей, carset тут не указан и вообще не чего из <head> так как файл инклюдится


У вас уже тело ответа выводится, а вы тут пытаетесь заголовки вывести, так нельзя, с куками нужно работать до вывода какого-либо кода, и желательно до первого закрытия тега ?> так как даже один пробел может быть воспринят как тело ответа. То есть сначала файла, без пробела
PHP:
скопировать код в буфер обмена
  1. <?PHP /*тут работа с куками и любыми другими заголовками*/ ?> а тут уже всё что угодно

 

Powered by ExBB FM 1.0 RC1