PHP.SU

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

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

> Найдено сообщений: 17
Slash Zn Отправлено: 13 Августа, 2015 - 17:38:42 • Тема: Выражение и SQL-инъекция • Форум: Регулярные выражения

Ответов: 7
Просмотров: 578
Большое спасибо.
Буду вникать, пробовать...
Slash Zn Отправлено: 13 Августа, 2015 - 14:34:21 • Тема: Выражение и SQL-инъекция • Форум: Регулярные выражения

Ответов: 7
Просмотров: 578
Спасибо Вам! Нажать на спасибо не могу - не достаточно постов...


Мелкий, можете пример (код) показать с отправкой данных с использованием prepared statements?
Slash Zn Отправлено: 13 Августа, 2015 - 03:36:52 • Тема: Выражение и SQL-инъекция • Форум: Регулярные выражения

Ответов: 7
Просмотров: 578
Спасибо за совет.
Но что по моему вопросу - будет ли это выражение (по мимо проверки корректности) отсекать инъекции или же стоит еще использовать функцию mysqli_real_escape_string?
Slash Zn Отправлено: 12 Августа, 2015 - 17:56:06 • Тема: Выражение и SQL-инъекция • Форум: Регулярные выражения

Ответов: 7
Просмотров: 578
Здравствуйте.
Есть такое выражение:
PHP:
скопировать код в буфер обмена
  1. '/^[a-zA-Z0-9_\.\-]+@([a-zA-Z0-9\-]+\.)+[a-zA-Z]{2,6}$/'

Им сценарий проверяет корректность электронной почты.
Скажите, пожалуйста, будет ли это выражение (по мимо проверки корректности) отсекать инъекции или же стоит еще использовать функцию mysqli_real_escape_string?
Спасибо.
Slash Zn Отправлено: 10 Августа, 2015 - 03:11:28 • Тема: Установка Кук • Форум: Вопросы новичков

Ответов: 4
Просмотров: 176
DelphinPRO пишет:
Да просто повеселило, как вы с уважением относитесь к кукам

А, Вы об этом, а я в коде большие буквы ищу... Ха-ха
DelphinPRO пишет:
функция setcookie не заполняет массив $_COOKIE

Но ведь я его читаю, при помощи $_COOKIE, как сказано здесь: http://www.php.su/phphttp/?cookies, а не заполняю:
Цитата:
Пример установки Cookie и последующего его чтения:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. // Устанавливаем Cookie 'test' со значением 'Hello' на один час:
  3. setcookie("test","Hello",time()+3600);
  4. // При следующем запросе скрипта выводит 'Hello':
  5. echo @$_COOKIE['test'];
  6. ?>
Slash Zn Отправлено: 09 Августа, 2015 - 19:01:13 • Тема: Установка Кук • Форум: Вопросы новичков

Ответов: 4
Просмотров: 176
DelphinPRO пишет:
Вы знаете как работают cookie?

Только то, что прочитал в статьях...
DelphinPRO пишет:
PS и почему вы их с большой буквы пишете?

А где у меня большие буквы?
(Добавление)
Вот работает!:
CODE (htmlphp):
скопировать код в буфер обмена
  1.                                 setcookie('phpdanfa', $data['user_id'], time()+60*60*24*30);
  2.                                 setcookie('phpdanfa2', $user_hash_new, time()+60*60*24*30);

CODE (htmlphp):
скопировать код в буфер обмена
  1. if (isset($_COOKIE['phpdanfa']))
  2. {
  3.     echo 'Есть куки: ' . $_COOKIE['phpdanfa'] . '<br />' . $_COOKIE['phpdanfa2'];
  4. }

Так правильно?
Slash Zn Отправлено: 09 Августа, 2015 - 18:43:13 • Тема: Установка Кук • Форум: Вопросы новичков

Ответов: 4
Просмотров: 176
Здравствуйте.
Устанавливаю Куки, так:
PHP:
скопировать код в буфер обмена
  1.                             setcookie('phpdanfa', $data['user_id'], time()+60*60*24*30, '/', 'php.danfa.org', 1);
  2.                             setcookie('phpdanfa', $user_hash_new, time()+60*60*24*30, '/', 'php.danfa.org', 1);

Затем проверяю:
PHP:
скопировать код в буфер обмена
  1. if ($_COOKIE['phpdanfa'])
  2. {
  3.     echo 'Есть куки';
  4. }

Но получаю ошибку:
Notice: Undefined index: phpdanfa in /....../index.php on line 5
Подскажите, где я ошибся? Спасибо.
Slash Zn Отправлено: 08 Августа, 2015 - 18:54:44 • Тема: Нумерация строк • Форум: Вопросы новичков

Ответов: 16
Просмотров: 1147
Думаю можно при помощи цикла for.
Slash Zn Отправлено: 08 Августа, 2015 - 14:40:10 • Тема: Сессия и Куки на одном сайте • Форум: Вопросы новичков

Ответов: 5
Просмотров: 239
esterio пишет:
Просто делаете токен

То есть, что то типа хеш ключа для каждого пользователя?

esterio, спасибо, Ваш пост мне помог понять, как сделать.
Slash Zn Отправлено: 08 Августа, 2015 - 06:33:17 • Тема: Сессия и Куки на одном сайте • Форум: Вопросы новичков

Ответов: 5
Просмотров: 239
Спасибо за Ваши ответы! С этим понял. К сожалению я пока не могу нажимать на Спасибо! - недостаточно постов.

У меня ещё вопрос. На пример я использую куки, которые сохраняются на 30 дней, пользователь авторизуется и ставит галочку запомнить, как сделать его автоматом авторизованным при следующем посещение сайта, скажем через день. Понятное дело, что должна быть проверка кук, но а как понять что это тот самый пользователь, который авторизовался и ставил галочку.
Пожалуйста покажите пример на коде.
Спасибо.

Есть мысль сохранять id пользователя, логин и пароль зашифрованам в md5. При обращении пользователя к сайту, проверять куки, если есть проверяет по id шифрованный логин и пароль, если совпадает, значит авторизуем.
Верна ли такая схема?
Slash Zn Отправлено: 07 Августа, 2015 - 18:01:10 • Тема: Сессия и Куки на одном сайте • Форум: Вопросы новичков

Ответов: 5
Просмотров: 239
Здравствуйте.
В одной статье (уже не помню где) прочитал, что на одном сайте можно использовать только, что то одно, любо сессии, либо куки (типа это противоречит правилам PHP), на других сайта видел, что в одном сценарии используются как сессия, так и куки - session_start() и setcookie(). Например в авторизации используется и то и другое, далее для вывода или скрытия, какой то информации используется сессия, для какой то другой задачи используют куки. В общем намешали... И меня мучает сомнения, можно ли использовать на одном сайте использовать куки и сессии, в одном сценарии, не важно каком - авторизация, вывод инфы или еще чего?

Ещё вопрос, про setcookie(), какое значение лучше передавать? Может md5('имя пользователя') и md5('пароль') или что то другое? Если другое, то что?
Мануалы читаю, но хочу немного прояснить...
Спасибо.
Slash Zn Отправлено: 03 Августа, 2015 - 09:04:26 • Тема: Парсер всех подключенных шаблонов (include) • Форум: Вопросы новичков

Ответов: 5
Просмотров: 301
Сейчас подумал, а будет ли работать определенная пользавательская функция в другой пользовательской функции?

Просто функция parse, которую предложили Вы и сам я сколько пытался внедрить, не работает. Хотя все же правильно?

Добавлено позже:
Нет, дело не в этом.......
Slash Zn Отправлено: 03 Августа, 2015 - 06:52:54 • Тема: Парсер всех подключенных шаблонов (include) • Форум: Вопросы новичков

Ответов: 5
Просмотров: 301
DelphinPRO пишет:
ну я не знаю же как у вас шаблонизатор устроен.

Извиняюсь, мне следовало сразу показать код...
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php
  2. # Функция Шаблонизатор
  3. function template($tpl, $template)                                            
  4. {
  5.    $page = basename($_SERVER['REQUEST_URI']); # Текущая страница
  6.     $dir_cache = 'cache/';                         # Директория хранения кэша
  7.    $dir_tpl =   'tpl/html/';                  # Директория хранения шаблонов
  8.         $ext_tpl =   '.html';                      # Расширение файлов шаблона
  9.         $ext_cache = '.php';                       # Расширение файлов кэша
  10.        
  11.         # Проверка шаблона в кэше
  12.    if (file_exists($dir_cache . $page . $ext_cache))
  13.    {
  14.             include($dir_cache . $page . $ext_cache);          
  15.    }
  16.    else
  17.    {
  18.             if (!file_exists($dir_tpl . $template . $ext_tpl)) # Проверка наличия шаблона
  19.                 {
  20.                     exit('No Template');
  21.                 }
  22.                
  23.             ob_start();                               # Включение буферизации
  24.             include($dir_tpl . $template . $ext_tpl); # Подключение шаблона            
  25.                 $cache_tpl = ob_get_contents();           # Получение содержимого буфера               
  26.                 ob_end_clean();                           # Отключение и очистка буфера
  27.                
  28.                 # Обработка INCLUDE
  29.                 $cache_tpl = preg_replace_callback('/\{include (.*?)}/',
  30.            function($include_tpl) use($dir_tpl, $ext_tpl)
  31.             {                  
  32.                         $include_tpl = file_get_contents($dir_tpl . $include_tpl[1] . $ext_tpl);
  33.                                 return $include_tpl;
  34.                         },  
  35.                 $cache_tpl);
  36.             # END Обработка INCLUDE    
  37.        $code = array(
  38.                     # Вывод переменных (ECHO)
  39.                     '/\{echo (.*?)}/'     => '<?php echo $1; ?>',              
  40.                
  41.                     # Обработка условия (IF / ELSEIF / ELSE / ENDIF)
  42.                     '/\{if (.*?)}/'       => '<?php if ($1): ?>',
  43.                     '/\{elseif (.*?)}/'   => '<?php elseif ($1): ?>',
  44.                     '/\{else}/'           => '<?php else: ?>',
  45.                     '/\{endif}/'          => '<?php endif; ?>',
  46.                        
  47.                         # Обработка цикла (FOREACH / ENDFOREACH)
  48.                         '/\{foreach (.*?)}/'  => '<?php foreach ($1): ?>',     
  49.             '/\{endforeach}/'     => '<?php endforeach; ?>'
  50.                 );
  51.                
  52.                 $cache_tpl = preg_replace(array_keys($code), array_values($code), $cache_tpl);  # Замена кода в шаблоне
  53.  
  54.                 $file = fopen($dir_cache . $page . $ext_cache, 'w-');  # Создание нового файла
  55.                 fwrite($file, $cache_tpl);                             # Запись содержимого буфера в файл
  56.                 fclose($file);                                         # Закрытие файла
  57.                
  58.             include($dir_cache . $page . $ext_cache);              # Подключение файла кэша    
  59.     }  
  60. }

У меня уже была мысль загнать в функцию, но в после загона в функцию, {include ...} отображается как текст во всех шаблонах, даже, который подключен первым....
Slash Zn Отправлено: 02 Августа, 2015 - 11:34:33 • Тема: Парсер всех подключенных шаблонов (include) • Форум: Вопросы новичков

Ответов: 5
Просмотров: 301
DelphinPRO пишет:
Здесь нужно прочитать файл шаблона, скормить его вашему шаблонизатору, а результат вернуть.

Уже думал над этим, у меня получается что попало, полностью не правильно...:
PHP:
скопировать код в буфер обмена
  1.         # Обработка INCLUDE
  2.        $cache_tpl = preg_replace_callback('/\{include (.*?)}/',
  3.            $incl function($include_tpl) use($dir_tpl, $ext_tpl)
  4.             {          
  5.                 $include_tpl = file_get_contents($dir_tpl . $include_tpl[1] . $ext_tpl);
  6.                 if (preg_match('/\{include (.*?)}/', $include_tpl))
  7.                 {
  8.                     return $incl($include_tpl);
  9.                 }
  10.                 else
  11.                 {
  12.                     return $include_tpl;
  13.                 }
  14.             },  
  15.         $cache_tpl);

По этому прошу показать пример на коде, как это сделать?
Спасибо.
Slash Zn Отправлено: 02 Августа, 2015 - 05:36:36 • Тема: Парсер всех подключенных шаблонов (include) • Форум: Вопросы новичков

Ответов: 5
Просмотров: 301
Здравствуйте.
Пишу свой парсер/шаблонизатор на данный момент работаю над конструкцией для шаблона: {include ...}, вот код который обрабатывает include в шаблонах:
PHP:
скопировать код в буфер обмена
  1.                 # Обработка INCLUDE
  2.                 $cache_tpl = preg_replace_callback('/\{include (.*?)}/',
  3.             function($include_tpl) use($dir_tpl, $ext_tpl)
  4.             {                  
  5.                         return file_get_contents($dir_tpl . $include_tpl[1] . $ext_tpl);
  6.                         },  
  7.                 $cache_tpl);
  8.             # END Обработка INCLUDE

Сценарий находит в шаблоне {include ...}, заменяет его на содержимое подключаемого файла, и потом сохраняет в кеше сайта... Сценарий отлично работает, но если к уже подключенному шаблону будет подключен ещё один шаблон, то вместо содержимого третьего шаблона, на экране будет {include ...}.

Я понимаю, что надо дописывать рекурсию, но ума не приложу, как это сделать с кодом, что выше или может есть альтернатива?
Пожалуйста, помогите допилить код. Спасибо.


ЗЫ. готовые шаблонизаторы использовать не хочу...

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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB