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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Сессии

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
miraliko
Отправлено: 12 Января, 2017 - 20:53:55
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Янв. 2017  


Помог: 0 раз(а)




Здравствуйте ув. форумчане , я новичек . Строго не судите. Вкладываю файл страницы , меня просто бесит одна и та же ошибка:
Notice: Undefined index: login in /blist.php on line 137
я это скрываю с помощю error_reporting(0); но знаю , надо раз и навсегда исправить это.
Вот сам файл.

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.  
  4.         //dobavlyaem v chorniy spisok
  5.         if (isset($_POST['submit_add'])) {
  6.  
  7.                 $errors = array();
  8.  
  9.                 $path = "img/blacklist/".basename($_FILES['image']['name']);
  10.  
  11.                 $image = $_FILES['image']['name'];
  12.                 $text = $_POST['text'];
  13.                 $julik = $_POST['julik'];              
  14.                 $login = $_SESSION['login'];
  15.  
  16.  
  17.                 if (trim($login) == "") {
  18.                         $errors[] = "Забыли ник нарушителя!";
  19.                 }
  20.                 if (trim($text) == "") {
  21.                         $errors[] = "Забыли написать описание!";
  22.                 }              
  23.  
  24.                 if (empty($errors)) {
  25.  
  26.                         $query = "INSERT INTO `blacklist` (`avtor`, `julik`, `text`, `image`) VALUES ('$login','$julik', '$text', '$image')";
  27.                         mysqli_query($link, $query);
  28.  
  29.                         if (move_uploaded_file($_FILES['image']['tmp_name'], $path)) {
  30.                                 $errors[] = "Запись успешно добавлен!";
  31.                         } else {
  32.                                 $errors[] = "Возникла проблема!";
  33.                         }
  34.                 }
  35.       }
  36.        
  37.  
  38.                     if (isset($_POST['delete'])) {
  39.                 $id = (int) $_POST['id'];
  40.                 $del = "DELETE FROM blacklist WHERE id = '" . $id . "'";
  41.                 mysqli_query($link, $del);
  42.                 header('Location: /blacklist.php');
  43.                 exit;
  44.             }
  45.  
  46.  
  47.  
  48. ?>
  49.  
  50. <script>
  51. $(document).ready(function() {
  52.   $('#slide_click2').show();
  53.   $('#slide2').hide();
  54.  
  55.   $('#slide_click2').click(function(event) {
  56.     event.preventDefault(); // Для того чтобы при нажатии на ссылку не кидало вверх
  57.     $('#slide2').slideToggle();
  58.   });
  59. });
  60.  
  61. /* textarea ограничение по символу */
  62. $(document).ready(function(){
  63.     var maxCount = 175;
  64.  
  65.     $("#counter").html(maxCount);
  66.  
  67.     $("#review-text").keyup(function() {
  68.     var revText = this.value.length;
  69.  
  70.         if (this.value.length > maxCount)
  71.             {
  72.             this.value = this.value.substr(0, maxCount);
  73.             }
  74.         var cnt = (maxCount - revText);
  75.         if(cnt <= 0){$("#counter").html('0');}
  76.         else {$("#counter").html(cnt);}
  77.  
  78.     });
  79. });
  80.  
  81. /* input Login ограничение по символу */
  82. $(document).ready(function(){
  83.     var maxCount = 17;
  84.  
  85.     $("#counter_l").html(maxCount);
  86.  
  87.     $("#review-text_l").keyup(function() {
  88.     var revText = this.value.length;
  89.  
  90.         if (this.value.length > maxCount)
  91.             {
  92.             this.value = this.value.substr(0, maxCount);
  93.             }
  94.         var cnt = (maxCount - revText);
  95.         if(cnt <= 0){$("#counter_l").html('0');}
  96.         else {$("#counter_l").html(cnt);}
  97.  
  98.     });
  99. });
  100. </script>
  101. <div id="black_karkas">
  102.         <fieldset>
  103.         <legend><strong>Добавление в Черный Список</strong></legend>
  104.         <div id="add">
  105.        
  106.         <?PHP if (isset($_SESSION['login']) && ($_SESSION['login'])) { ?>
  107.  
  108.                 <input type='button' value='Заполнить форму' class="btn" id="slide_click2">
  109.  
  110.                 <?PHP } else {
  111.                         echo "<strong style='color: red;'>Без регистрации</strong><img src='http://img.anticombats.com/i/smile/nono.gif'>";
  112.                         } ?>
  113.                         <div id="slide2">
  114.                                 <fieldset class="black_form">
  115.                                 <legend><strong>Что натворил нарушитель?!</strong></legend>
  116.                                 <form method="POST" enctype="multipart/form-data">
  117.                                         <input type="text" name="julik" class="inp" placeholder="Логин нарушителя" id="review-text_l" value="<?PHP echo @$_POST['julik']; ?>">Осталось символов: <span id="counter"></span>                                     <textarea name="text" class="inp" id="review-text" placeholder="Описания" rows="10" cols="45" value="<?PHP echo @$_POST['text']; ?>"></textarea>                                        <input type="file" name="image" class="inp">                                    <button type="submit" name="submit_add" class="btn" class="knopka">Добавить в ЧС!</button>
  118.                                 </form>
  119.                                 </fieldset>
  120.                         </div>         
  121.         </div>
  122.         </fieldset>    
  123.         <fieldset>
  124.         <legend><strong>Черный Список</strong></legend>
  125.         <div id="pokaz">
  126.                 <?PHP
  127.                 //pokazivaem spisok
  128.                         $query = "SELECT * FROM `blacklist` ORDER BY id DESC";
  129.                         $result = mysqli_query($link, $query);
  130.                         while ($row = mysqli_fetch_array($result)) {
  131.                                 $row['text'] = "<pre>".$row['text']."</pre>";
  132.                                 echo "<div class='ramka'><div id='img_div'><fieldset class='blborder'><legend>***</legend>";
  133.                                 if (isset($_SESSION['login']) && ($_SESSION['login'])) {
  134.                                 echo "Автор:<strong>&nbsp;".$row['avtor']."</strong><br>"; ?>
  135.                                 <? } if ($_SESSION['login'] == 'art99') {
  136.                                 echo "<form method='POST'><input type='hidden' name='id' value='" . $row['id'] . "'><button type='submit' name='delete' class='btn'>Удалить</button></form><br>";
  137.                                 }
  138.                                 echo "Имя нарушителя:<strong>&nbsp;".$row['julik']."</strong>&nbsp;&nbsp;<br>";
  139.                                 echo "Краткое описание:<strong>&nbsp;".$row['text']."</strong>";
  140.                                 if (!$row['image'] == "") {
  141.                                 echo "<a href='/img/blacklist/".$row['image']."' target='_blank'><button class='btn'>Алиби</button></a>";
  142.                                 }
  143.                                 echo "</fieldset></div></div>";
  144.                         }
  145.                 ?>     
  146.         </div>
  147.         </fieldset>    
  148. </div>
  149.  


И , если написать вместо этого:

PHP:
скопировать код в буфер обмена
  1. if ($_SESSION['login'] == 'art99')


Это:

PHP:
скопировать код в буфер обмена
  1. if (isset($_SESSION['login']) == 'art99')


Тогда проблема исчезнет но кнопку Удалить смогут нажать все пользователи а не только тот у кого логин art99.

Да и по мимо этого очень часто мешает именно ошибки с индексом. как ее раз и навсегда решить чтобы в дальнейшем спокойной использовать $_SESSION['login'] или $_SESSION['id'] в любых файлах.
 
 Top
Строитель Модератор
Отправлено: 12 Января, 2017 - 21:35:45
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 73 раз(а)




Условие запишите так:
PHP:
скопировать код в буфер обмена
  1. if (!empty($_SESSION['login']) && $_SESSION['login'] == 'art99')
miraliko пишет:
Да и по мимо этого очень часто мешает именно ошибки с индексом. как ее раз и навсегда решить чтобы в дальнейшем спокойной использовать $_SESSION['login'] или $_SESSION['id'] в любых файлах.
А чтобы не было этих уведомлений, объявляйте выши сессионные переменные внутри условий. Как - то так:
PHP:
скопировать код в буфер обмена
  1. !empty($_SESSION['login']) ?: $_SESSION['login'] = 'что-то по умолчанию';
 
 Top
miraliko
Отправлено: 12 Января, 2017 - 23:37:35
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Янв. 2017  


Помог: 0 раз(а)




Сори , но Эту часть я не понял , можешь поподробней пожалуйста.

PHP:
скопировать код в буфер обмена
  1. !empty($_SESSION['login']) ?: $_SESSION['login'] = 'что-то по умолчанию';
 
 Top
teleoperator27
Отправлено: 13 Января, 2017 - 00:42:55
Post Id



Посетитель


Покинул форум
Сообщений всего: 265
Дата рег-ции: Янв. 2017  


Помог: 21 раз(а)




miraliko пишет:
Сори , но Эту часть я не понял , можешь поподробней пожалуйста.

PHP:
скопировать код в буфер обмена
  1. !empty($_SESSION['login']) ?: $_SESSION['login'] = 'что-то по умолчанию';

Это компактная форма if else

Обычная форма записи условного оператора:

CODE (htmlphp):
скопировать код в буфер обмена
  1. if ($number < 0) {
  2. echo 'отрицательное';
  3. }else{
  4. echo 'положительное';
  5. };
  6.  


аналог

CODE (htmlphp):
скопировать код в буфер обмена
  1. $number < 0 ? 'отрицательное' : 'положительное';


условие ? если условые выполняется : иначе ;

То есть, это
PHP:
скопировать код в буфер обмена
  1. !empty($_SESSION['login']) ?: $_SESSION['login'] = 'что-то по умолчанию';

означает: ЕСЛИ $_SESSION['login'] не пустая, то ничего с ней не делаем, ИНАЧЕ задаем ей значение $_SESSION['login'] = 'что-то по умолчанию'

(Отредактировано автором: 13 Января, 2017 - 00:45:51)

 
My status
 Top
miraliko
Отправлено: 13 Января, 2017 - 01:37:17
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Янв. 2017  


Помог: 0 раз(а)




спасибо , ясно все.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB