За последние 24 часа нас посетили 76057 программистов и 2995 роботов. Сейчас ищут 1415 программистов ...

Перестал работать древний скрипт

Тема в разделе "PHP для новичков", создана пользователем solovey, 10 авг 2020.

  1. solovey

    solovey Новичок

    С нами с:
    10 авг 2020
    Сообщения:
    14
    Симпатии:
    0
    Вылизываю скрипт свой заработавший как кот свои фаберже, хочу цифры трафика отделить по 3 опострафами для лучшего восприятия. делаю как в старом скрипте:
    Код (Text):
    1.                 $row[ip_in]=strrev( wordwrap(strrev($row[ip_in]),3,'`',1));
    2.                 print "<td align=right>$row[ip_in]</td>";
    3.                 $row[ip_out]=strrev( wordwrap(strrev($row[ip_out]),3,'`',1));
    4.                 print "<td align=right>$row[ip_out]</td>";
    и оно даже работает, но валит предупреждения что в след версиях PHP может и не заработать, я конечно может не доживу до след смены, но все равно начинаю чесаться. см скрин с экрана. Можно и предупрездения отключить но как то это не спортивно ИМХО
     

    Вложения:

    • warning.PNG
      warning.PNG
      Размер файла:
      13,3 КБ
      Просмотров:
      4
  2. Artur_hopf

    Artur_hopf Старожил

    С нами с:
    7 май 2018
    Сообщения:
    2.264
    Симпатии:
    405
    @solovey вылизать не получится, знаний мало:
    PHP:
    1. $table = ""; // твоя заполненная до этого верстка таблицы
    2.  
    3. $row['ip_in'] = strrev( wordwrap(strrev($row['ip_in']),3,'`',1));
    4. $row['ip_out'] = strrev( wordwrap(strrev($row[ip_out]),3,'`',1));
    5.  
    6. $table .= "<td align='right'>{$row['ip_in']}</td>
    7.    <td align='right'>{$row['ip_out']}</td>";
    8.  
    9. echo $table;
    --- Добавлено ---
    Делить надо , получение данных и верстку. Просто пример:

    PHP:
    1. $mysqli = new mysqli("localhost", "my_user", "my_password", "world");
    2. if ($mysqli->connect_errno) {
    3.     printf("Не удалось подключиться: %s\n", $mysqli->connect_error);
    4.     exit();
    5. }
    6. $sql = "SELECT oob_prefix, ip_in, ip_out FROM trafik";
    7. if ($result = $mysqli->query( $sql )) {
    8.  
    9.     $array = [];
    10.  
    11.     while ($row = $result->fetch_assoc()) {
    12.  
    13.         $array[] = $row;
    14.  
    15.     }
    16.  
    17.     echo create_table( $array );
    18.  
    19.     $result->close();
    20. }
    21. $mysqli->close();
    22.  
    23.  
    24. function create_table( $array )
    25. {
    26.     $table = '<table class="table table-bordered">
    27.    <thead class="thead-dark">
    28.      <tr>
    29.        <th>id</th>
    30.        <th>ФИО</th>
    31.        <th>год рождения</th>
    32.        <th>место проживания</th>
    33.        <th>ФИО представителя</th>
    34.        <th>электронная почта</th>
    35.        <th>номер телефона</th>
    36.        <th>выбранный тип оплаты</th>
    37.        <th>дата добавления записи</th>
    38.      </tr>
    39.    </thead>
    40.    <tbody>';
    41.  
    42.  
    43.     foreach( $array as $item )
    44.     {
    45.         $table .= "<tr>
    46.            <td>{$item['id']}</td>
    47.            <td>{$item['main_fio']}</td>
    48.            <td>{$item['year']}</td>
    49.            <td>{$item['address']}</td>
    50.            <td>{$item['rep_fio']}</td>
    51.            <td>{$item['email']}</td>
    52.            <td>{$item['phone']}</td>
    53.            <td>{$item['pay']}</td>
    54.            <td>{$item['create_date']}</td>
    55.        </tr>";
    56.     }
    57.  
    58.     return $table;
    59. }
     
  3. solovey

    solovey Новичок

    С нами с:
    10 авг 2020
    Сообщения:
    14
    Симпатии:
    0
    Это понятно, можно сказать, что их нет совсем. ладно тогда переморщусь пока так отключив предупреждения, если перестанет работать когда то. уберу опострофы совсем
     
  4. amberson

    amberson Активный пользователь

    С нами с:
    23 июл 2020
    Сообщения:
    65
    Симпатии:
    16
    Оберните все вхождения ip_in, ip_out в кавычки. Текст ошибки об этом прямо говорит. PHP воспринимает их не как строки-ключи массива, а как константы которых не существует, так как они нигде не определены.
    PHP:
    1. $row['ip_in'];
    2. $row['ip_out'];
     
  5. solovey

    solovey Новичок

    С нами с:
    10 авг 2020
    Сообщения:
    14
    Симпатии:
    0
    @amberson Текст ошибки да, именно об этом и говорит, но я не понял.... как так была переменная и вдруг стала неопределена.

    СПАСИБО.