PHP.SU

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

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

> Найдено сообщений: 41
Yan9 Отправлено: 03 Февраля, 2016 - 12:37:29 • Тема: Как сделать, чтобы работал .htaccess на localhost? • Форум: Вопросы новичков

Ответов: 2
Просмотров: 522
sympler пишет:

Выбирай любой вариант или все сразу Улыбка)
1. Поставь денвер, в нем из коробки все работает, не будешь мучиться
2. Можешь редирект прям в пхп сделать с помощью функции header
3. Регулярку неверно указал, укажи так
RewriteRule index.php$ / [QSA,R]


1. Та хотелось бы без Денвера, чтобы понимать как это работает)
2. Да, это было бы самое простое решение, но хочу в целом разобраться с этим файлом и его возможностями и просто начал с самого простого, но сразу столкнулся с проблемой.
3. К сожалению, не работает. У меня не происходит ничего, чтобы я ни писал в htaccess, проблема в том, что он просто игнорируется.
(Добавление)
sympler пишет:
Выбирай любой вариант или все сразу Улыбка)
1. Поставь денвер, в нем из коробки все работает, не будешь мучиться
2. Можешь редирект прям в пхп сделать с помощью функции header
3. Регулярку неверно указал, укажи так
RewriteRule index.php$ / [QSA,R]


Все, получилось сделать так, чтобы сервер видел .htaccess, не до конца оказывается дописал настройки в httpd.conf, описание для таких же, как я, в описании добавлено.

Но теперь проблема с тем, чтобы перенаправиться из localhost/folder/index.php в localhost/folder. Если пишу как в описании, или как вы написали, то меня перекидывает в браузере в каталог localhost, а если написать вот так:
CODE (htmlphp):
скопировать код в буфер обмена
  1. RewriteRule ^.* https://www.google.ru/ [R]

то перехожу на сайт гугл, все норм. Т.е. неправильно написано регулярное выражение. Подскажите, как его подправить, чтобы корректно работало?
Yan9 Отправлено: 02 Февраля, 2016 - 14:41:55 • Тема: Как сделать, чтобы работал .htaccess на localhost? • Форум: Вопросы новичков

Ответов: 2
Просмотров: 522
Добрый день!
У меня не работает .htaccess на localhost.
Хочу сделать банальный редирект, чтобы убрать из адресной строки index.php.
Для этого в httpd.conf поменял AllowOverride none на AllowOverride All и раскомментировал строку LoadModule rewrite_module modules/mod_rewrite.so.
В phpinfo() указано Loaded Modules: mod_rewrite, т.е. должно быть все нормально.
В папке рядом с файлом index.php создал файл .htaccess и в нем написал следующее:
PHP:
скопировать код в буфер обмена
  1. AddDefaultCharset UTF-8
  2. RewriteEngine On
  3. RewriteRule ^index.php$ / [QSA,R]

Но когда пишу localhost/folder/index.php, то появляется главная страница, но и адресная строка остается такой же, т.е. не происходит редиректа на localhost/folder/
Как это исправить, чтобы .htaccess работал?
Спасибо!

Решение, чтобы сервер понимал htaccess!
В httpd.conf вместо
CODE (htmlphp):
скопировать код в буфер обмена
  1. <Directory />
  2.   AllowOverride All
  3.   Require all denied
  4. </Directory>

надо написать
CODE (htmlphp):
скопировать код в буфер обмена
  1. <Directory C:\Server\data\htdocs\folder\>
  2.     AllowOverride All
  3.     Order allow,deny
  4.     Allow from all
  5. </Directory>

где folder\ - это папка, в которой лежит index.php и .htaccess
Yan9 Отправлено: 29 Декабря, 2015 - 21:27:21 • Тема: Валидация формы в CodeIgniter • Форум: CMS и фреймворки

Ответов: 4
Просмотров: 1439
Viper пишет:
Yan9 пишет:
Не подскажите, почему может не работать проверка с правилом xss_clean?
валидация и фильтрация разные вещи.
https://codeigniter.com/user_guide/libraries/security.html


Спасибо за помощь!
Yan9 Отправлено: 29 Декабря, 2015 - 16:01:58 • Тема: Валидация формы в CodeIgniter • Форум: CMS и фреймворки

Ответов: 4
Просмотров: 1439
Viper пишет:
Судя по манам у вас правила = говно. Курите маны https://www[dot]codeigniter[dot]com/user[dot][dot][dot]s-using-an-array

точно? маны codeigniter'а Не понял
Маны PHP не врут!
http://php.net/manual/en/language.operators.comparison.php


Спасибо за советы.
Изменил формат правил и убрал правило xss_clean, все заработало. Сделал так:
PHP:
скопировать код в буфер обмена
  1. $rules=array(
  2.          array(
  3.            'field' => 'title',
  4.            'label' => 'Название статьи',
  5.            'rules' => 'required|xss_clean|min_length[5]|max_length[20]|trim'
  6.          ),
  7.          array(
  8.            'field' => 'text',
  9.            'label' => 'Текст статьи',
  10.            'rules' => 'required|xss_clean|max_length[2000]|trim'
  11.          ),
  12.          array(
  13.            'field' => 'date',
  14.            'label' => 'Дата добавления',
  15.            'rules' => 'required|xss_clean|max_length[10]|trim'
  16.          )    
  17. );
  18. $this->form_validation->set_rules($rules);
  19. $check=$this->form_validation->run();

Не подскажите, почему может не работать проверка с правилом xss_clean?
Yan9 Отправлено: 29 Декабря, 2015 - 00:40:52 • Тема: Валидация формы в CodeIgniter • Форум: CMS и фреймворки

Ответов: 4
Просмотров: 1439
Добрый день! Не получается сделать валидацию простой формы в CodeIgniter (пока без Модели и БД, хотя бы с проверкой разобраться).
ПЕРВЫЙ ВИД (файл success_form_view.php):
CODE (html):
скопировать код в буфер обмена
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.     <title>Add article</title>
  5. </head>
  6. <body>
  7.     <p>Статья успешно добавлена</p>
  8. </body>
  9. </html>

ВТОРОЙ ВИД (файл form_view.php):
CODE (html):
скопировать код в буфер обмена
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.     <title>Add article</title>
  5. </head>
  6. <body>
  7.   <form method="post" action="http://localhost/ci/index.php/form/">
  8.      Название статьи:<br><input type="text" name="title"><?php form_error('title'); ?><br>
  9.      Текст статьи:<br><textarea name="text" rows="10" cols="40"></textarea><?php form_error('text'); ?><br>
  10.      Дата добавления:<br><input type="text" name="date"><?php form_error('date'); ?><br>
  11.      <input type="submit" name="add" value="Добавить">
  12.    </form>
  13. </body>
  14. </html>

КОНТРОЛЛЕР:
PHP:
скопировать код в буфер обмена
  1. class Form extends CI_Controller {
  2.    public function index(){
  3.      $this->load->library('form_validation');
  4.      if(isset($_REQUEST['add'])){
  5.        $rules['title']='required|xss_clean|min_length[5]|max_length[20]|trim';
  6.        $rules['text']='required|xss_clean|max_length[2000]|trim';
  7.        $rules['date']='required|xss_clean|max_length[10]|trim';
  8.        $this->form_validation->set_rules($rules);
  9.        $check=$this->form_validation->run();
  10.        if($check==TRUE){
  11.          $this->load->view('success_form_view');
  12.        }else{
  13.          $this->load->view('form_view');
  14.        }
  15.      }else{
  16.        $this->load->view('form_view');
  17.      }
  18.    }
  19. }

После клика на кнопку никакой проверки не происходит, в случае верного заполнения мне не выводистя надпись "Статья успешно добавлена", а возвращается все та же пустая форма, проверял $check функцией gettype, она boolean и там все время false.
Что я написал неправильно?
Спасибо!
Yan9 Отправлено: 24 Ноября, 2015 - 17:14:44 • Тема: Почему некорректно работает запрос в БД • Форум: Работа с СУБД

Ответов: 5
Просмотров: 923
Sail пишет:
вот простенький примерчик:


Спасибо большое за пример, но дело в том, что у меня там немного не так устроено. Пользователь в файле 1.php при помощи сортируемого списка расставляет ранги, кликает на кнопку, в файле 1.js я это по событию клика через аякс передаю в файл 2.php и делаю туда редирект. в этом файле получаю массив из списка, который сделал пользователь, вношу его в одну таблицу, а в другую как раз пытаюсь внести его id, которая означает, что он проголосовал.
И код все равно не хочет доходить до 19 строчки по вашему примеру, он после 14 сразу прыгает на 6 и все заново.
Yan9 Отправлено: 24 Ноября, 2015 - 13:00:10 • Тема: Почему некорректно работает запрос в БД • Форум: Работа с СУБД

Ответов: 5
Просмотров: 923
Sail пишет:
Yan9
1. Не стоит вывод сообщения выполнять в теле функции.
2. Можно в записи выделить поле для подсчета количества голосов. 0 - только что вставленный, 1 - проголосовавший 1 раз и т.д. И проверять уже его, а не только наличие строчки в таблице.
3. Можно после вставки выполнять редирект на страницу отображения результата.


1. Не понял что вы имеете ввиду.
2. Как это правильно реализовать? Я не знаю кто будет голосовать, если пользователь нажимает кнопку "голосовать", то я же уже должен проверить наличие 0 или 1 по его id, а когда вставлять этот 0?
3. header("Location:".$_SERVER['HTTP_REFERER']); не помогло, все равно выводится надпись "Вы не можете проголосовать больше 1 раза", т.е. код даже не дошел до этой строки, а сразу после INSERT'a перескочил вверх и пошел исполняться снова, пока не увидел в БД уже созданную только что строку.

Чтобы было более правильно, разбил это все на 2 метода, конструкцию if вынес из класса, но результат все равно тот же.
Файл с объектами:
PHP:
скопировать код в буфер обмена
  1. $player=$_COOKIE['id'];
  2. $player=(integer) $player;
  3.  
  4. $vaca=new Vote(0, $player, 0,0,0);
  5. $vaca->select_quantity();
  6. $count=$vaca->count;
  7.  
  8. echo $count;
  9. echo '<br>';
  10.  
  11. if($count==0){
  12.     $cad=new Vote(0, $player, 0,0,0);
  13.     $cad->insert_quantity();
  14. }


Файл с классом:
PHP:
скопировать код в буфер обмена
  1. function select_quantity(){
  2.     Create::connect();
  3.     $sel=mysql_query('SELECT * FROM quantity WHERE id_player='.$this->player);
  4.     if(mysql_error()){
  5.         echo mysql_error().'<br>';
  6.     }
  7.     $this->count=mysql_num_rows($sel);;
  8. }
  9.  
  10. function insert_quantity(){
  11.     Create::connect();
  12.     mysql_query('INSERT INTO quantity (id_player) VALUES ('.$this->player.')');
  13.     if(mysql_error()){
  14.         echo mysql_error().'<br>';
  15.     }
  16.     echo 'Ok';  
  17. }

Там, где я вывожу количество строк (echo $count), то пишет 1 вместо 0, т.е. вывод отсутствия строк просто игнорируется, это для меня вообще загадка, ведь это уже происходит вне класса в другом файле, а работает точно так же. Потом исполняется конструкция if, потом метод с запросом insert и код перескакивает вверх, начиная все сначала.
Притом, что циклов никаких нет, создал специально два разных объекта для вызова двух методов, а результат не меняется.
Yan9 Отправлено: 23 Ноября, 2015 - 22:33:29 • Тема: Почему некорректно работает запрос в БД • Форум: Работа с СУБД

Ответов: 5
Просмотров: 923
Добрый день!
Делаю голосование на сайте. Для этого id проголосовавшего вношу в таблицу и проверяю есть ли оно там или нет, для того, чтобы разрешить голосование или нет.
Делаю в ООП. Вот код:
Создаю объект и вызываю метод:
PHP:
скопировать код в буфер обмена
  1. $vaca=new Vote(0, $player, 0,0,0);
  2. $vaca->insert_quantity();

Сам метод ($this->player это id пользователя, который хранится в переменной $player):
PHP:
скопировать код в буфер обмена
  1. function insert_quantity(){
  2.     Create::connect();
  3.     $sel=mysql_query('SELECT * FROM quantity WHERE id_player='.$this->player);
  4.     $c=mysql_num_rows($sel);
  5.     if($c>0){
  6.         echo 'Вы не можете проголосовать больше 1 раза <br>';
  7.     }else{
  8.         mysql_query('INSERT INTO quantity (id_player) VALUES ('.$this->player.')');
  9.         if(mysql_error()){
  10.             echo mysql_error().'<br>';
  11.         }
  12.         echo 'Ok';
  13.     }
  14. }

Проблема в том, что если в таблице "quantity" НЕТ записи с этим пользователем, то она создается, что и должно быть, но на экран выводится тут же сообщение 'Вы не можете проголосовать больше 1 раза', т.е. каким-то образом код не доходит до echo 'Ok', а снова начинается сверху, соответственно уже находит эту строку и выводит эту надпись.
Если же удалить INSERT запрос, а оставить только echo 'Ok', то при отсутствии записи, на экран выводится надпись 'Ok', что и должно быть.
Циклов никаких тут не использую, этот метод больше нигде не вызываю, объекта такого больше нигде нет. Я просидел с этим уже часов 5, помочь никто не может.
Код элементарный, но не работает как надо. Буду очень благодарен за помощь!
Yan9 Отправлено: 03 Ноября, 2015 - 00:42:39 • Тема: Не могу установить Composer • Форум: CMS и фреймворки

Ответов: 22
Просмотров: 10776
SAD пишет:
поставьте уже openserver и идите отдыхать


Та уже если хоть что-то сдвинулось, может удастся установить обычным способом)
Если уж никак не получится, то придется скачать его
Yan9 Отправлено: 03 Ноября, 2015 - 00:13:03 • Тема: Не могу установить Composer • Форум: CMS и фреймворки

Ответов: 22
Просмотров: 10776
DelphinPRO пишет:
Yan9 пишет:
Вот скриншот добавления пути в Path

php.exe и последний слеш не нужны. Посмотрите, как там другие пути обозначены. В них нет имен файлов


Спасибо большое, стала доступна версия php, но при установке все равно возникает та же ошибка:
"The openssl extension is missing, which means that secure HTTPS transfers are impossible.
If possible you should enable it or recompile php with --with-openssl"

Вот скриншот при установке через командную строку.
Есть ли какой-то выход?
Yan9 Отправлено: 03 Ноября, 2015 - 00:11:00 • Тема: Не могу установить Composer • Форум: CMS и фреймворки

Ответов: 22
Просмотров: 10776
Viper пишет:
Yan9 пишет:
Вот скриншот добавления пути в Path
добавлять нужно путь до файла, а не к файлу.


Да точно, не обратил внимания, спасибо!
Yan9 Отправлено: 02 Ноября, 2015 - 22:37:15 • Тема: Не могу установить Composer • Форум: CMS и фреймворки

Ответов: 22
Просмотров: 10776
Viper пишет:
непонятно что вы пробовали, но похоже не то что нужно исходя из
Yan9 пишет:
Спасибо, что так подробно все описали, сделал как вы сказали, но, к сожалению, так и не работает.


Вот скриншот добавления пути в Path
Yan9 Отправлено: 02 Ноября, 2015 - 22:32:13 • Тема: Не могу установить Composer • Форум: CMS и фреймворки

Ответов: 22
Просмотров: 10776
Viper пишет:
непонятно что вы пробовали, но похоже не то что нужно исходя из


Может действительно не то делал, что нужно, даже версию php не могу посмотреть прилагаю скриншот
Yan9 Отправлено: 02 Ноября, 2015 - 20:57:38 • Тема: Не могу установить Composer • Форум: CMS и фреймворки

Ответов: 22
Просмотров: 10776
DelphinPRO пишет:
нужно путь к php.exe добавить в переменную PATH (речь о windows ведь?)
Как? Правый клик по "Этот компьютер" -> Свойства компьютера -> Дополнительные параметры системы -> Переменные среды -> Системные переменные -> Двойной клик по Path -> Добавление пути через точку-с-запятой -> OK -> OK -> OK

После этих манипуляций проверьте правильность
Win + R -> в окошке ввести "cmd" -> OK

Откроется терминал. Вводим команду "php -v", жмем ENTER. D терминале должна отобразиться версия установленного php. Если так и есть, значит php доступен, и инсталлер композера отработает нормально.
(Добавление)
Есть более простой путь - скачать OpenServer. В нем композер уже предустановлен Улыбка


Спасибо, что так подробно все описали, сделал как вы сказали, но, к сожалению, так и не работает.
Буду качать open server)
Yan9 Отправлено: 02 Ноября, 2015 - 19:41:32 • Тема: Не могу установить Composer • Форум: CMS и фреймворки

Ответов: 22
Просмотров: 10776
Viper пишет:
Чем не устроил Windows Installer ?
https://getcomposer.org/download/


Уже пробовал, не получается, пишет, что команда "curl", либо "php" не является внутренней или внешней командой.
Вот так тоже не работает:
cd \ bin
php -r "readfile('https://getcomposer.org/installer');"

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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB