PHP.SU

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

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

> Найдено сообщений: 39
VadiKO Отправлено: 03 Августа, 2016 - 22:16:38 • Тема: Ошибка в капче • Форум: Вопросы новичков

Ответов: 3
Просмотров: 326
В общем разобрался.

Параметр $path_fonts оставляем в изначальном виде:



а в самой папке fonts оставляем лишь один шрифт и тогда все работает как часики без каких либо ошибок. Улыбка
VadiKO Отправлено: 03 Августа, 2016 - 17:49:37 • Тема: Ошибка в капче • Форум: Вопросы новичков

Ответов: 3
Просмотров: 326
Viper спасибо (жаль кнопка еще не работает), очень дельный совет!!! На ряду с одной проблемой, вылезла еще парочка багов, исправил. Закатив глазки

В общем в логе ругается, что не может открыть шрифт в скрипте:

CODE (htmlphp):
скопировать код в буфер обмена
  1. PHP Warning:  opendir(fonts/verdana.ttf): failed to open dir: Not a directory


ну и дальше по коду полезло: строка - 19, 20, 27 и дальше 32, 41...

Папка fonts, шрифт verdana.ttf там лежит, что скрипту не нравится не понятно. Нахмурился

Примечательно, что при отключенном отображение ошибок все работает на ура )) но ведь это не дело!!!
VadiKO Отправлено: 03 Августа, 2016 - 15:36:27 • Тема: Ошибка в капче • Форум: Вопросы новичков

Ответов: 3
Просмотров: 326
Есть скрипт капчи, вроде бы работает, но с нюансами. В настройке выставлено отображать 5 символов, но бывает надо перезагрузить 5 а то и более раз что бы отобразились все 5 символов, до этого может отобразить 3 символа, 4 а то и 2...

Если включить в настройках PHP отображать ошибки, то картинка капчи вовсе перестает отображаться и браузер пишет - невозможно отобразить поскольку файл содержит ошибки. Огорчение

Собственно сам скрипт:

PHP:
скопировать код в буфер обмена
  1. <?PHP session_start();
  2.  
  3.  $width = 137;                  //Ширина изображения
  4.  $height = 40;                  //Высота изображения
  5.  $font_size = 14;                       //Размер шрифта
  6.  $let_amount = 5;               //Количество символов, которые нужно набрать
  7.  $fon_let_amount = 3;          //Количество символов, которые находятся на фоне
  8.  $path_fonts = 'fonts/';        //Путь к шрифтам
  9.  
  10.  
  11.  $letters = array('0','8','1','2','3','4','5','6','7','9');
  12.  $colors = array('10','30','50','70','90','110','130','150','170','190','210');
  13.  
  14.  $src = imagecreatetruecolor($width,$height);
  15.  $fon = imagecolorallocate($src,255,255,255);
  16.  imagefill($src,0,0,$fon);
  17.  
  18.  $fonts = array();
  19.  $dir=opendir($path_fonts);
  20.  while($fontName = readdir($dir))
  21.  {
  22.    if($fontName != "." && $fontName != "..")
  23.    {
  24.      $fonts[] = $fontName;
  25.    }
  26.  }
  27.  closedir($dir);
  28.  
  29.  for($i=0;$i<$fon_let_amount;$i++)
  30.  {
  31.    $color = imagecolorallocatealpha($src,rand(0,255),rand(0,255),rand(0,255),100);
  32.    $font = $path_fonts.$fonts[rand(0,sizeof($fonts)-1)];
  33.    $letter = $letters[rand(0,sizeof($letters)-1)];
  34.    $size = rand($font_size-2,$font_size+2);
  35.    imagettftext($src,$size,rand(0,45),rand($width*0.1,$width-$width*0.1),rand($height*0.2,$height),$color,$font,$letter);
  36.  }
  37.  
  38.  for($i=0;$i<$let_amount;$i++)
  39.  {
  40.    $color = imagecolorallocatealpha($src,$colors[rand(0,sizeof($colors)-1)],$colors[rand(0,sizeof($colors)-1)],$colors[rand(0,sizeof($colors)-1)],rand(20,40));
  41.    $font = $path_fonts.$fonts[rand(0,sizeof($fonts)-1)];
  42.    $letter = $letters[rand(0,sizeof($letters)-1)];
  43.    $size = rand($font_size*2.1-2,$font_size*2.1+2);
  44.    $x = ($i+1)*$font_size + rand(4,7);
  45.    $y = (($height*2)/3) + rand(0,5);
  46.    $cod[] = $letter;  
  47.    imagettftext($src,$size,rand(0,15),$x,$y,$color,$font,$letter);
  48.  }
  49.  
  50.  $_SESSION['secpic'] = implode('',$cod);
  51.  
  52.  header ("Content-type: image/gif");
  53.  imagegif($src);
  54. ?>


Помогите исправить ошибку пожалуйста. Не понял
(Добавление)
частично разобрался, в 8 строке дописал какой именно шрифт использовать:

PHP:
скопировать код в буфер обмена
  1. $path_fonts = 'fonts/verdana.ttf';


теперь каждый раз отображаются все символы, но вот при включение отображения ошибок РНР так и сталось - - невозможно отобразить поскольку файл содержит ошибки. А какие именно ошибки непонятно.
VadiKO Отправлено: 31 Июля, 2016 - 13:04:23 • Тема: Изменение контента сайта • Форум: Напишите за меня, пожалуйста

Ответов: 14
Просмотров: 178
Замена на

PHP:
скопировать код в буфер обмена
  1. $loc = Array('users'=>'users.php','admin'=>'admin.php','profile'=>'profile.php');


прошла на УРА, все работает как надо. Улыбка

Относительно обновления версии пхп полностью согласен, но к этому необходимо подготовится ) ибо не уверен, что код который как бы работал на ранних версиях пхп может начать некорректно работать на версии 7.

СПАСИБО за помощь!!! Язычок
VadiKO Отправлено: 31 Июля, 2016 - 12:53:27 • Тема: Изменение контента сайта • Форум: Напишите за меня, пожалуйста

Ответов: 14
Просмотров: 178
1. PHP Version 5.3.3
2. оно то должно, но из-за того, что здесь написано ересь:

PHP:
скопировать код в буфер обмена
  1.    $loc = ['users'=>'users.php','admin'=>'admin.php','profile'=>'profile.php'];


оно вообще ничего не выдает, кроме ошибки:

CODE (htmlphp):
скопировать код в буфер обмена
  1. Parse error: syntax error, unexpected


3. дело не в коде, но вновь таки если тебе станет легче, то будет достаточно банально простого кода файл index.php и его постое содержимое:

PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3.  
  4. echo 'test';
  5.  
  6. $loc = ['users'=>'users.php','admin'=>'admin.php','profile'=>'profile.php'];
  7. if(isset($_GET['location']))
  8. {
  9.     if(!empty($_GET['location']) AND array_key_exists($_GET['location'], $loc))
  10.     {
  11.          include_once('tti/'.$loc[$_GET['location']]);
  12.     }
  13. }
  14.        
  15. ?>
  16.  


4. я не говорил, то у меня мега знанию, я лишь сетую на то, что серверу строчка:

PHP:
скопировать код в буфер обмена
  1.    $loc = ['users'=>'users.php','admin'=>'admin.php','profile'=>'profile.php'];


непонятна. Однако
VadiKO Отправлено: 31 Июля, 2016 - 12:31:26 • Тема: Изменение контента сайта • Форум: Напишите за меня, пожалуйста

Ответов: 14
Просмотров: 178
Fart пишет:
ты не знаешь, что тебе отвечает сервер??? или ты не понимаешь, что тебе отвечают???


Ну если тебе от этого станет легче, то вот тебе ответ сервера:

CODE (htmlphp):
скопировать код в буфер обмена
  1. Parse error: syntax error, unexpected
VadiKO Отправлено: 31 Июля, 2016 - 12:03:32 • Тема: Изменение контента сайта • Форум: Напишите за меня, пожалуйста

Ответов: 14
Просмотров: 178
Фигня какая то написана:

PHP:
скопировать код в буфер обмена
  1. $loc = ['users'=>'users.php','admin'=>'admin.php','profile'=>'profile.php'];


Сервер не знает как это понимать. Не понял
VadiKO Отправлено: 31 Июля, 2016 - 00:46:23 • Тема: Изменение контента сайта • Форум: Напишите за меня, пожалуйста

Ответов: 14
Просмотров: 178
Делаю как пишет ugin_root

PHP:
скопировать код в буфер обмена
  1. if ($_GET["action"] == 'news') { include_once( 'mods/news.php' ); }


А мне выдает ошибку на это дело:

CODE (htmlphp):
скопировать код в буфер обмена
  1. Notice: Undefined index ...


Примечательно, что все работает и если отключить отображение ошибок, то работает без проблем, но почему возникает ошибка, как бы все правильно написано??? Не понял
VadiKO Отправлено: 29 Июня, 2016 - 21:14:12 • Тема: Как обьединить одинаковые результаты? • Форум: Вопросы новичков

Ответов: 2
Просмотров: 117
Спасибо (форум пока не дает нажать кнопка Огорчение ), все оказалась до банальности просто. Улыбка
VadiKO Отправлено: 29 Июня, 2016 - 20:32:37 • Тема: Как обьединить одинаковые результаты? • Форум: Вопросы новичков

Ответов: 2
Просмотров: 117
Есть простой вывод:

PHP:
скопировать код в буфер обмена
  1. $result = mysql_query("SELECT id FROM `hp` WHERE `userid` = '{$_SESSION['user_id']}'");
  2.        
  3. if (mysql_num_rows($resultpp) != 0) {
  4.                
  5. while($ss = mysql_fetch_array($result))
  6.                 {
  7.                 echo '<p>'.$ss['id'].'</p>';
  8.                 }
  9.  
  10. }


Все отлично работает, проблема в том, что в таблице может быть несколько одинаковых результатов и вывод получится:

2
3
2
2
1
5
6
2
...

Как сделать так что бы вывод с одинаковым значением вывелся только раз и получилось:

2
3
1
5
6
...


Не понял
VadiKO Отправлено: 29 Апреля, 2016 - 22:58:25 • Тема: потдомен или что это • Форум: Вопросы новичков

Ответов: 4
Просмотров: 194
Ну а вы сами подумайте, если надо выбирать город и потом меняется адрес сайта (на поддомен), то для чего это делается??? Я не думаю, что дело только в смене адресной строки.
VadiKO Отправлено: 29 Апреля, 2016 - 22:31:00 • Тема: Не очищается форма после редиректа • Форум: Вопросы новичков

Ответов: 2
Просмотров: 137
Хм, в принципе понятно, спасибо. Улыбка

Но возникает второй вопрос, как его реализовывают что бы работало?
Видел сайт (не могу сейчас найти), где в коде (с выводом сообщения) показывает именно:

CODE (html):
скопировать код в буфер обмена
  1. <meta http-equiv='refresh' content='4;  url=index.php'>


и после редиректа страница обновляется без проблем.

Скажет простой код файл index.php:


PHP:
скопировать код в буфер обмена
  1.         if(!isset($_SESSION['login']))
  2.         {
  3.  
  4.                 if(!isset($_POST['enter']))
  5.                 {
  6.  
  7.                    форма атворизации...
  8.  
  9.                 }
  10.  
  11.                 else {
  12.  
  13.                         //что то там...
  14.  
  15.                        echo '
  16.                               <meta http-equiv='refresh' content='4; url=index.php' />
  17.                                 </head>
  18.                                 <body>
  19.                                <p>&bull; Авторизация прошла успешно!</p>
  20.                                </body>
  21.                                 </html>';
  22.                        
  23.                         }
  24.  
  25.          }
  26.  
  27.          else {
  28.  
  29.                 echo 'Привет, $login';
  30.  
  31.                 }
VadiKO Отправлено: 29 Апреля, 2016 - 22:06:12 • Тема: Не очищается форма после редиректа • Форум: Вопросы новичков

Ответов: 2
Просмотров: 137
Всем привет!

Какая то непонятная штука, банально простой код авторизации, и если авторизация прошла успешно, то выводим сообщение и через 4 секунды редирект, ставлю редирект:

CODE (html):
скопировать код в буфер обмена
  1. <meta http-equiv='refresh' content='4;  url=index.php'>


все отлично работает, но если на странице после редиректа нажать F5 то выскакивает окошка и спрашивает отправить форму снова или нет??? Беда...

Заменил редирект скрптом:

CODE (javascript):
скопировать код в буфер обмена
  1. <script language='Javascript'>
  2. function reload() {location = \"\"}; setTimeout('reload()', 4000);
  3. </script>


таким образом тоже все работает как надо и при нажатие F5 страничка просто обновляется как надо.

В чем может быть трабла с meta http-equiv='refresh'??? Не понял
VadiKO Отправлено: 04 Апреля, 2016 - 22:32:21 • Тема: Запрет слова • Форум: Вопросы новичков

Ответов: 5
Просмотров: 307
По пробелам можно прочитать здесь - ссылка

А вот и по опусканию текста в нижний регистр - читать.

Там все просто. Подмигивание
VadiKO Отправлено: 18 Марта, 2016 - 19:58:47 • Тема: Помогите пожалуйста новичку • Форум: Прочее

Ответов: 3
Просмотров: 56
+100500 читай книги и статьи, кусры в этом деле развлечение своего рода -)

По железу здесь ответ очевиден, чем современнее тем лучше, но особой нагрузки HTML верстка и PHР программирование не несет, так что мегамощной машины как при работе с графикой и видео не надо.

Страниц (3): « 1 [2] 3 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB