PHP.SU

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

Страниц (59): « 1 2 [3] 4 5 6 7 8 9 ... » В конец

> Найдено сообщений: 881
Vladimir Kheifets Отправлено: 14 Августа, 2022 - 21:03:06 • Тема: Как разбить текстовый файл на страницы? • Форум: Напишите за меня, пожалуйста

Ответов: 22
Просмотров: 2908
Irina88 пишет:
Владимир!
Ну не знаю. Я добавила кавычки, и страница загрузилась. Хотите сказать, что на сервере была "пятерка"?

Ирина!
Версия PHP, на которой я видел, что это работает была 5.4.
И в $_POST и $_GET это тоже проходило.
Для Вас вожно понять то, что ошибка 500, происходит из-за того,
что возникает фотальная ошибка PHP, а erro_reporting отключён.
Поэтому HTML-request, хотябы с сообщением об ошибке браузер не получает.
Vladimir Kheifets Отправлено: 13 Августа, 2022 - 22:38:10 • Тема: Скрипт голосования • Форум: Напишите за меня, пожалуйста

Ответов: 6
Просмотров: 1031
Irina88 пишет:
После смены версии пхп, перестал работать скрипт голосования:

CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php
  2. // получаем файлы по определенному голосованию
  3. $id =  (int) $_GET[id];
  4. $vote = (int) $_GET[vote];
  5.  
  6. if (file_exists("$id.dat")) {
  7.  
  8. $ip= $_SERVER['REMOTE_ADDR'];
  9. $ip_file = file_get_contents("ip$id.dat");
  10. $ip_abbr = explode(",", $ip_file);
  11. $data = file("$id.dat");
  12.  
  13. // если это не просто просмотр результатов
  14. if ($vote) {
  15.  
  16. foreach($ip_abbr as $value)
  17. if ($ip == $value) {echo "<p><b><font color=red> Вы уже голосовали! </font></b></p>";
  18. }
  19. // выводим благодарность
  20. echo "<p><b><font color=green> Спасибо! </font></b><br /><i>*Показаны результаты до Вашего голосования:</i><p>";
  21. }
  22. // выводим заголовок голосования - 1я строка файла
  23. echo "<table border=0 style='text-align:left' ><th colspan=3 style='text-align:center'><b>$data[0]</b></th>";
  24. // печатаем список ответов и результатов - остальные строки
  25. for ($i=1;$i<count($data);$i++) {
  26.  $votes = explode("~", $data[$i]); // значение~ответ
  27.  $graf = 100*$votes[0]/(count($ip_abbr)-1);
  28.  echo "<tr><td>$votes[1]</td><td style='text-align: center'><b>$votes[0]</b></td><td> <span style='font-size: small'>".round($graf, 3)."%</span><div style='background: red; height:5px; width:".round($graf, 0)."px'></div></td></tr>";
  29. }
  30. echo "<tr><td>Всего<b></b></td><td>".(count($ip_abbr)-1)."</td><td>&nbsp;</td></tr></table>";
  31. // если это не просмотр результатов, а голосование,
  32. // производим необходимые действия для учета голоса
  33. if ($vote) {
  34.  $f = fopen("$id.dat","w");
  35.  flock($f,LOCK_EX);
  36.  fputs($f, "$data[0]");
  37.  for ($i=1;$i<count($data);$i++) {
  38.    $votes = explode("~", $data[$i]);
  39.    if ($i==$vote) $votes[0]++;
  40.    fputs($f,"$votes[0]~$votes[1]");
  41.         fflush($f);
  42. flock($f,LOCK_UN);
  43.  }
  44.  fclose($f);
  45.  
  46.  $ip_adr = fopen("ip$id.dat","a++");
  47.         flock($ip_adr,LOCK_EX);
  48. fputs($ip_adr, "$ip".",");
  49. fflush($ip_adr);
  50.         flock($ip_adr,LOCK_UN);
  51. fclose($ip_adr);
  52.  }
  53.  
  54.  } else {
  55.     echo "Такого голосования не существует.";
  56.         exit;
  57. }
  58. ?>


ERROR 500


Добрый день, Ирина!
См.:
https://www.php.net/manual/ru/function.count.php
Цитата:
8.0.0 count() теперь выбрасывает TypeError, если передан недопустимый исчисляемый тип в параметр value.


https://www.php.net/manual/ru/co...ures.foreach.php
Цитата:
Конструкция foreach предоставляет простой способ перебора массивов. foreach работает только с массивами и объектами, и будет генерировать ошибку при попытке использования с переменными других типов или неинициализированными переменными.
Лекарство:
PHP:
скопировать код в буфер обмена
  1.  
  2. for($i=1;$i<count((array) $data);$i++) {
  3. ...
  4. foreach((array) $ip_abbr as $value){
  5. ...

Удачи!
Vladimir Kheifets Отправлено: 13 Августа, 2022 - 22:12:53 • Тема: Как разбить текстовый файл на страницы? • Форум: Напишите за меня, пожалуйста

Ответов: 22
Просмотров: 2908
Irina88 пишет:
Владимир!

Цитата:
Ваша проблема не в смене версии PHP на сервере.


Какраз там и проблема. В коде по ошибке было написано



На "семерке" этот номер проходил. А на "восьмерке" - не катит. Надо



Ирина!
В Вашем коде $today = date(Y); Вы не показали,
но это работало где-то на "пятерки", а на "семёрке" это выдает:
Warning: Use of undefined constant Y - assumed 'Y' (this will throw an Error in a future version of PHP) in ...
Однако Вы написали про "HTML Error 500", а это наврядли с этим связано.
Vladimir Kheifets Отправлено: 13 Августа, 2022 - 06:45:48 • Тема: Как разбить текстовый файл на страницы? • Форум: Напишите за меня, пожалуйста

Ответов: 22
Просмотров: 2908
Ирина!
В Вашем коде была фотальная ошибка PHP
Parse error: Invalid body indentation level (expecting an indentation level of at least 7) in ........... on line 23
из-за того, что в
<<<HTML
в начале строк были символы таб и пробелы
HTML;

<body> тоже подправил
Здесь рабочий код
Спойлер (Отобразить)
Удачи!
Vladimir Kheifets Отправлено: 12 Августа, 2022 - 21:26:43 • Тема: Как разбить текстовый файл на страницы? • Форум: Напишите за меня, пожалуйста

Ответов: 22
Просмотров: 2908
Irina88 пишет:
Vladimir Kheifets, Ваш скрипт работает. Но когда добавляю "шапку" и "ноги", выдает ERROR 500

Вот код страницы:

CODE (htmlphp):
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. include "./settings.php";
  4.  
  5.    $StartLine = 0;
  6.    $nLines = 10;
  7.    $title = "IPTV-плейлисты m3u";
  8.  
  9.    function ReadLinesFromFile($StartLine, $nLines, $file){
  10.            $EndLine=$StartLine+$nLines;
  11.            $line = $StartLine;
  12.            $news=[];
  13.            while ($line < $EndLine ) {
  14.                    $file->seek($line-1);
  15.                    $news[]=$file->current();
  16.                    $line++;
  17.            }
  18.            return $news;
  19.    }
  20.    echo <<<HTML
  21.    <html>
  22.    <head>
  23. <meta name='description' content='IPTV-плейлисты m3u'>
  24. <meta name='description' content='IPTV-плейлисты m3u Украина'>
  25. <META NAME='TITLE' CONTENT='IPTV-плейлисты m3u Украина'>  <META NAME='DESCRIPTION' CONTENT='IPTV-плейлисты m3u Украина.'>
  26.    <title> $title </title>
  27.    </head>
  28.    <body>
  29. <img src='iptv.jpg' width='100%' height='300' alt=''><br>
  30.    HTML;
  31.    $file = new SplFileObject('enter.txt');
  32.    $file->seek(PHP_INT_MAX);
  33.    $linesTotal = $file->key()+1;
  34.    $LineInPage=10;
  35.    $Pages = ceil(($linesTotal)/$LineInPage);
  36.    $page=isset($_GET['page'])?$_GET['page']:1;
  37.  
  38.    $StartLine=($page-1)*$LineInPage+1;
  39.    $news = ReadLinesFromFile($StartLine, $LineInPage, $file);
  40.    foreach ((Array)$news as $line) echo "$line<br>";
  41.    echo "<hr>";
  42.  
  43.    $previewPage=$page-1;
  44.    $nextPage=$page+1;
  45.    if($previewPage>0)
  46.    echo "<a href='?page=$previewPage'><<<</a> ";
  47.    echo " <select></select> ";
  48.    if($nextPage<=$Pages)
  49.    echo " <a href='?page=$nextPage'>>>></a>";
  50.    echo <<<HTML
  51.    </body>
  52.    <script>
  53.    page = '$page';
  54.    Pages = '$Pages';
  55.    select = document.getElementsByTagName('select')[0];
  56.    if(Pages>1)
  57.    {
  58.    optArr=Array.from({length: Pages}, (v, k) => k+1);
  59.    optArr.splice(page-1, 1);
  60.    for(i in optArr)
  61.    {
  62.            opt = document.createElement('option');
  63.            opt.innerHTML = optArr[i];
  64.            select.appendChild(opt);
  65.    }
  66.    select.addEventListener("change", function (e){
  67.            window.location.href="?page="+e.target.value;
  68.    });
  69.    }
  70.    else
  71.    select.style.display="none";
  72.    </script>
  73.  
  74. <br>
  75. <img src='iptvplayerlogo.png' alt=''>&nbsp;
  76. <a href='load.php'>СКАЧАТЬ IP-TV_player</a><br>
  77.  
  78. <img src='gbooklogo.png' alt=''>&nbsp;
  79. <a href='gbook/' target='_blank'>Гостевая книга</a><br>
  80.  
  81.  
  82. <hr>
  83. Рекомендуем:<br>
  84. <img src='radiologo.jpg' alt=''>
  85. <a href='http://radio.ho.ua'>Радио online</a><br>
  86. <hr>
  87.  
  88.  
  89. <a href='https://katstat.ru/in/1686' title='KatStat.ru - Топ рейтинг сайтов'><img src='https://katstat.ru/counter/big/1686' alt='KatStat.ru - Топ рейтинг сайтов'/></a><br>
  90.  
  91. &copy;2021-$today
  92.    </html>
  93.    HTML;
  94.    ?>

Ирина!
Вы уверены в том, что в PHP выдаются сообщения об ошибках?
На всякий случай вставьте в первой строке error_reporting(E_ALL);
В Вашем коде в 51 строке закрывается </body>, затем вставлен<script>....</script> и затем опять нтмл-тэги до </html>. это не правильно.
Ваша проблема не в смене версии PHP на сервере.
Vladimir Kheifets Отправлено: 12 Августа, 2022 - 13:47:04 • Тема: Как разбить текстовый файл на страницы? • Форум: Напишите за меня, пожалуйста

Ответов: 22
Просмотров: 2908
Irina88 пишет:
В связи с обновлением версии PHP на сервере ho.ua, перестал работать данный скрипт. Недовольство, огорчение Помогите адаптировать его под PHP 8.0.

Добрый день!
Проверил на PHP 8.0. У меня работает.
Тестовый файл:
Спойлер (Отобразить)

Скрипт
Спойлер (Отобразить)
Покажите, пожалуйста, что не работает - сообщение об ошибке.
Удачи!
Vladimir Kheifets Отправлено: 03 Августа, 2022 - 16:30:37 • Тема: Редактор MySQL таблиц • Форум: Вопросы новичков

Ответов: 1
Просмотров: 1199
mistik77777 пишет:
Здравствуйте Гуру PHP. очень надеюсь на вашу помощь, ситуация следующая, есть Редактор MySQL таблиц и две таблицы (код ниже), по отдельности они в нем редактируются без ошибок, но когда я хочу их объеденить в один редактор то редактируется только первая таблица, при редактировании второй появляется ошибка - ERROR: Failed to find specified row in database, помогите решить данную проблему, благодарю за ваши ответы.
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php
  2.  
  3. require_once('TableEditor.php');
  4.  
  5. header('Access-Control-Allow-Origin: *');
  6.  
  7. $db = mysqli_connect("localhost","root","HdYVjPPPGyv1","radiotema") or die(mysql_error());
  8. mysqli_query($db,'SET NAMES "utf8"');
  9. /////начало первой таблицы//////////
  10.  
  11. $editor = new TableEditor($db, 'products_setting');
  12. $editor->setConfig('perPage', 50);
  13. $editor->setDisplayNames(array('disabled' => 'Отключить голосование', ));
  14. $editor->display();
  15.  
  16. ////конец первой и начало второй таблицы////
  17.  
  18. $editor = new TableEditor($db, 'products');
  19. $editor->setConfig('perPage', 50);
  20. $editor->setDisplayNames(array(
  21. 'Name' => 'Имя',
  22. 'num' => '№ песни',
  23. 'song' => 'название песни'
  24. ));
  25. $editor->display();
  26. ?>


Добрый день!

Про таблицы нельзя ничего сказать не посмотрев TableEditor.php,
а в строке ниже ошибка or die(mysql_error()) т.к. mysqli_connect с mysql функциями не работает.
PHP:
скопировать код в буфер обмена
  1. $db = mysqli_connect("localhost","root","HdYVjPPPGyv1","radiotema") or die(mysql_error());


д.б.
PHP:
скопировать код в буфер обмена
  1. $db = mysqli_connect("localhost","root","HdYVjPPPGyv1","radiotema");
  2.   exit;
  3. }
  4. else
  5. {
  6.   //Ваш код
  7. }
  8.  
Удачи!
Vladimir Kheifets Отправлено: 09 Июня, 2022 - 06:48:09 • Тема: Как реализовать метод array_flip иным способом • Форум: Вопросы новичков

Ответов: 3
Просмотров: 952
Строитель пишет:
Автору топика скорее всего нужно написать "свой" array_flip(). То есть, написать пользовательскую функцию, выполняющую то же, что и array_flip(), но без его использования.


Добрый день!
Возможно Вы правы.
Спойлер (Отобразить)
Возможно и другое толкование: нужно реализовать класс с методом array_flip ...
Тогда можно сделать так:
Спойлер (Отобразить)
Vladimir Kheifets Отправлено: 07 Июня, 2022 - 16:07:50 • Тема: Как реализовать метод array_flip иным способом • Форум: Вопросы новичков

Ответов: 3
Просмотров: 952
maxiiLYY пишет:
помощь в реализации метода array_flip встроенными методами


Добрый день!
array_flip это не метод, а функция PHP.
Уточните, пожалуйста, что Вы хотите реализоаать и что подразумевается под "встроенными методами".
Vladimir Kheifets Отправлено: 31 Мая, 2022 - 13:59:16 • Тема: Требуется php программист • Форум: Работа

Ответов: 2
Просмотров: 2344
Misha23 пишет:
Хенаро пишет:
Здравствуйте) Занимаюсь веб-программированием 5 лет. Как раз ищу работу. Умею создавать сайты с нуля и писать нужные скрипты. В телеграмм вас что-то не находит. Пишите мне https://t.me/harekrishnaradherama


Еще актуально?

Судя по тому, что мне ничего не ответили после публикации объявлению, это не было актуально уже тогда.
Здесь обсуждалась тема : "Обязан ли работодатель отвечать на заявление?"
https://www.finanzfrage.net/g/frage/ist-man-als-arbeitgeber-verpflichtet-auf-eine-bewerbung-zu-antworten
Цитата:
Работодатель должен иметь порядочность
1. подтверждать получение заявления заявителя
2. уведомлять заявителя, если он/она не был принят.
Vladimir Kheifets Отправлено: 29 Мая, 2022 - 10:42:27 • Тема: Циклы для вывода в таблицу • Форум: Хранение данных, их вывод и обработка

Ответов: 3
Просмотров: 1869
Thomas_Bergersen пишет:
Спойлер (Отобразить)


Добрый день!
Код, который Вы показали совсем не по теме "Вывод html таблицы расписания приёмных часов".
Однако, раз уж Вы его опубликовали, обратите внимание на следущее:
1. Нет необходимости применять функцию isset ко всем POST переменным.
2. Если необходимо применить (int) к $_POST['birinshi_san'] и $_POST['ekinshi_san'],
то лучше было бы вычислить значения integer один раз, а потом их использовать в расчетах $plus, $minus, $proiz, $div
3. Для вычисления интервала между двумя датами, в вашем случае возраста $age, лучше применять методы diff и format класса DateTime
4. Ваш код можно записать так:
Спойлер (Отобразить)
Удачи!
Vladimir Kheifets Отправлено: 27 Мая, 2022 - 13:04:50 • Тема: Все ли буквы в строке - прописные? • Форум: Регулярные выражения

Ответов: 4
Просмотров: 1659
Хенаро пишет:
PHP:
скопировать код в буфер обмена
  1.  
  2. $umsg = "ААААА";
  3. echo mb_strlen($umsg); // выдаёт 10
  4. if(preg_match("/^[А-ЯЁA-Z]{5}$/u", $umsg) || preg_match("/[^\w]/usi", $umsg) || preg_match("/.{6,}/usi", $umsg)) {
  5.   echo "NO";
  6. }
  7.  

Попробуй так)

Добрый день!
Видимо Вы не обратили внимание на то, что ответили на вопрос от 09 Декабря, 2021
Может и правильно. Форум что-то затих...
Попробуйте так
PHP:
скопировать код в буфер обмена
  1. function checkUperCaseStr($str, $maxUperCaseCh){
  2.   if(preg_match('/^\p{Lu}+$/u', $str)) //в строке только прописные буквы
  3.     return 1;
  4.   else
  5.   {
  6.     preg_match_all('/\p{Lu}/u', $str, $matches);
  7.     $kUperCaseCh = count($matches[0]); //кол-во прописных букв
  8.     //кол-во прописных букв не больше $maxUperCaseCh и есть цыфры или строчные буквы
  9.     if($kUperCaseCh <= $maxUperCaseCh AND preg_match('/(\d|\p{Ll})/u', $str))
  10.       return 0;
  11.     else
  12.       return 2;
  13.   }
  14. }
  15.  
  16. $TestStr = [
  17.   "MЬNCHEN", //здесь U-умляут, не Ь
  18.   "Октоберфест в Мюнхене",
  19.   "МОСКВА",
  20.   "Москва",
  21.   "СРЕДА 25 мая",
  22.   "СРЕДА 25 Mая",
  23.   "1 мая",
  24.   "FREITAG 27.05.2022"
  25. ];
  26. $maxUperCaseCh=5;
  27. foreach($TestStr as $str)
  28. {
  29.   echo "$str : ". checkUperCaseStr($str, $maxUperCaseCh)."<br>";
  30. }
  31.  
  32. /*
  33. MЬNCHEN : 1
  34. Октобефест в Мюнхене : 0
  35. МОСКВА : 1
  36. Москва : 0
  37. СРЕДА 25 мая : 0
  38. СРЕДА 25 Mая : 2
  39. 1 мая : 0
  40. FREITAG 27.05.2022 : 2
  41. */
  42. ?>
Удачи!
Vladimir Kheifets Отправлено: 26 Мая, 2022 - 10:39:21 • Тема: Точка пересечения отрезка и прямой • Форум: Напишите за меня, пожалуйста

Ответов: 3
Просмотров: 1290
Thomas Bergersen пишет:
ht.tps://habr.com/ru/post/523440./ почитай эту статью


Добрый день!

Посмотри демо: https://www[dot]alto-booking[dot]com/dev[dot][dot][dot]rosspoint/?la=ru
Обрати внимание на то, что есть возможность итерактивно задавать отрезки и результат расчёта отображается на графике.
Исходной код открытый. Если есть желание, погугли и замени методы расчета и убедись в их работоспособности.
Я проверял. К сожалению, многие из опубликованных методов при визуализации показывают неверно местоположение точки пересечения.

Посмотри исходный HTML код
Спойлер (Отобразить)
и код CompactDOM скрипта
Спойлер (Отобразить)
Удачи!
Vladimir Kheifets Отправлено: 24 Мая, 2022 - 07:11:01 • Тема: Сохраняет в XML файл одной строкой • Форум: Вопросы новичков

Ответов: 2
Просмотров: 364
Хенаро пишет:
Здравствуйте, не могу никак решить проблему. Сделал регистрацию и авторизацию с сохранением данных в XML файл. Искал в гугле два часа как красиво сохранять в XML, так и не получилось у меня это сделать, так что вся надежда на добрую душу которая поможет Улыбка

PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3.                 $file = simplexml_load_file("users.xml");
  4.                 $users= $file->user;
  5.                 foreach($users as $user){
  6.                         $tellog = $user->tellog[0];
  7.                         if($tellog == $tellog1){
  8.                                 exit("Такой пользователь уже зарегистрирован");
  9.                         }
  10.                 }
  11.                 $user = $file->addChild('user');
  12.                 $user->addChild('tellog', $tellog1);
  13.                 $user->addChild('name', $name);
  14.                 $user->addChild('pass', $pass);
  15.                 $file->saveXML("users.xml");
  16.                 exit("Вы успешно зарегистрировались!");
  17.  
  18.  


Добрый день!
См. "PHP simpleXML, как сохранить файл в отформатированном виде?"
на https://overcoder[dot]net/

Советую Вам подумать о том, что может лучше сохранять данные не в файле "users.xml", а таблице "users" БД.
Удачи!
Vladimir Kheifets Отправлено: 22 Мая, 2022 - 13:58:15 • Тема: Обращение к методам из другого класса • Форум: Объектно-ориентированное программирование

Ответов: 1
Просмотров: 1428
yuqxye пишет:
Здравствуйте форумчане!

Есть метод в классе A, в котором исходя из значения в переменных нужно обращаться к методам других классах из других файлов. Например

Есть файл classa.php

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.  
  4. require 'classb.php';
  5. require 'classc.php';
  6.  
  7. class classa
  8. {
  9.  
  10. public function index()
  11. {
  12.  
  13. # значения этих переменных может меняться, поэтому обращаться нужно к любому классу и любому методу из этих классов
  14. $class = 'classb';
  15.  
  16. $peremen = 'methodB';
  17.  
  18. // ЗДЕСЬ ДОЛЖЕН БЫТЬ ОТВЕТ НА МОЙ ВОПРОС - КАК ОБРАЩАТЬСЯ К НУЖНОМУ МЕТОДУ В НУЖНОМ КЛАССЕ?
  19.  
  20. }
  21.  
  22. }


Есть файл classb.php
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.  
  4. class classb
  5. {
  6.  
  7. public function methodB()
  8. {
  9.  
  10. return 'classb';
  11. }
  12.  
  13. }



И допустим, есть такой же файл classc - (3 файл) с любым методом...

1) Как мне обращаться к этим методам в других классах?
2) Важно то, что переменные $class и $peremen задают названия нужного класса и метода

Возможно нужна АВТОЗАГРУЗКА и сделать СТАТИЧЕСКИЕ методы, чтобы обращаться к таким? Но пока я сделал через require загрузку файлов с классами, для налядности. Но хочу узнать от вас грамотное решение. Я давно не программировал, поэтому в голове есть некоторые воспоминания и догадки, но не могу найти правильного ответа, как это делать правильно.

Добрый день!

М.б. примерно так:
Спойлер (Отобразить)
Удачи!

Страниц (59): « 1 2 [3] 4 5 6 7 8 9 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB