PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Страниц (12): « 1 2 [3] 4 5 6 7 8 9 ... » В конец
Найдено сообщений: 166
Doox911
Отправлено: 18 Июля, 2018 - 07:57:54 • Тема: Как работает эта регулярка? • Форум: Вопросы новичков
Ответов: 21 Просмотров: 835
Строитель пишет: Doox911 , для такого шаблона /[А-ЯЁа-яё]+/iu указывать регистронезависимый модификатор i как-то бессмысленно ... Можно сократить запись:
/[а-яё]+/iu
Да согласен. На просторах рунета пишут как я))) Наверно такие же умельцы..
А юникод потому что некоторые русские символы не влезли?
Doox911
Отправлено: 18 Июля, 2018 - 07:41:59 • Тема: Форма добавления комментариев • Форум: Вопросы новичков
Ответов: 5 Просмотров: 277
Andry пишет: Не могу сообразить как реализовать привязку id статьи с id комментария, подскажите пожалуйста что я не так сделал и как мне исправить положение)
PHP:
скопировать код в буфер обмена
$db = new PDO( 'mysql:host=localhost;dbname=monorailsbase' , 'root' , '' ) ;
$db -> exec ( "SET NAMES UTF8" ) ;
$name = trim ( $_POST [ 'name' ] ) ; $text = trim ( $_POST [ 'text' ] ) ; $mail = trim ( $_POST [ 'mail' ] ) ; $id_page = $_GET [ 'id' ] ;
if ( $name != '' && $text != '' && $mail != '' ) {
$query = $db -> prepare ( "INSERT INTO comment_form SET name=:name, text=:text, mail=:mail, id_page=:id_page" ) ;
$params = [ 'name' => $name , 'text' => $text , 'mail' => $mail , 'id_page' => $id_page ] ;
$query -> execute ( $params ) ;
}
}
$id_page = $_POST [ 'id_page' ] ;
$id_page = "%$id_page %" ;
$query = $db -> prepare ( "SELECT * FROM comment_form WHERE id_page LIKE ?" ) ;
$query -> execute ( array ( $id_page ) ) ; $comments = $query -> fetchAll ( ) ;
CODE (
html ):
скопировать код в буфер обмена
<form method = "post" action = "/articles/article.php?id=<?php echo $_GET['id'];?> " class="comment-form">
<h3 > Leave A Message</ h3 >
<div class = "row" >
<div class = "form-group col-md-6" >
<input type = "text" name = "name" placeholder= "Your Name*" class = "form-control" value = "<?php echo $name;?> ">
</ div >
<div class = "form-group col-md-6" >
<input type = "text" name = "mail" placeholder= "Email Addr" class = "form-control" value = "<?php echo $mail;?> ">
</ div >
<div class = "form-group col-md-12" >
<textarea name = "text" placeholder= "Your Comment*" rows = "8" class = "form-control" value = "<?php echo $text;?> "></ textarea >
</ div >
<input type = 'hidden' name = 'id' value = "<?=$id_page;?> \">
<input type = "submit" value = "Submit Comment" name = "Submit Comment" title = "Submit Comment" / >
</ div >
</ form >
1. Где не можете сделать привязку БД, скрипт?
2. Я бы в шаблоне проверял переменные на существование перед выводом!
3. И зачем вы тут используете exit(0)? и как в вашем понимании он должен работать?
PHP:
скопировать код в буфер обмена
if ( $name != '' && $text != '' && $mail != '' ) {
$query = $db -> prepare ( "INSERT INTO comment_form SET name=:name, text=:text, mail=:mail, id_page=:id_page" ) ;
$params = [ 'name' => $name , 'text' => $text , 'mail' => $mail , 'id_page' => $id_page ] ;
$query -> execute ( $params ) ;
}
}
Doox911
Отправлено: 18 Июля, 2018 - 07:34:46 • Тема: Как лучше производить валидацию? • Форум: Вопросы новичков
Ответов: 9 Просмотров: 287
Мелкий пишет: Берите профилировщик и сравните. Что быстрее, вызов скомпилированной libpcre или userspace реализация. Замечательное место где можно сильно просесть алгоритмически и не заметить - как выбирается следующий символ сравниваемой строки.
Не совсем понял, в каком месте просесть можно алгоритмически?
Doox911
Отправлено: 18 Июля, 2018 - 07:16:39 • Тема: Почему в режиме $strict in_array не верную кодировку? • Форум: Вопросы новичков
Ответов: 8 Просмотров: 461
Vladimir Kheifets пишет:
Причина в том, Вы выбираете по одному байту, а для каждый символа кириллицы в UTF-8 нужно выбирать по 2 байта и для строки "АаБбВв"
strlen выдаёт значение 12, а не 6.
Спойлер (Отобразить ) PHP:
скопировать код в буфер обмена
$string = "АаБбВв" ;
$dlinna_str = strlen ( $string ) ; echo "$dlinna_str :$string <hr>" ;
$clear_string = '' ;
$count = 0 ;
while ( $count < $dlinna_str )
{
echo "<hr>" ;
$count = $count + 2 ;
}
/*
12:АаБбВв
string(2) "А"
string(2) "а"
string(2) "Б"
string(2) "б"
string(2) "В"
string(2) "в"
*/
Удачи!
О_о! Спасибо! Для кирилици получается два байта.
(Добавление)
armancho7777777 пишет:
А вообще, Вашу задачу можно решить одной строкой кода:
Я вот покурил мануалы и не совсем понимаю, вы написали регулярку которая делает так:
Оставь мне только русский символ, любого регистра в юникоде. и если найдёшь более одного пробела замени его на один. Но ведь ^ после [ это считается исключающем? Т.е. Не оставь мне русские буквы а наоборот. Почему получается так, что работает по первому сценарию?
Doox911
Отправлено: 17 Июля, 2018 - 08:50:15 • Тема: Почему в режиме $strict in_array не верную кодировку? • Форум: Вопросы новичков
Ответов: 8 Просмотров: 461
Делаю вот такую проверку:
PHP:
скопировать код в буфер обмена
public static function CheckRussianLanguage ( $string ) {
$alfavit = array ( ' ' , 'А' , 'а' , 'Б' , 'б' , 'В' , 'в' , 'Г' , 'г' , 'Д' , 'д' , 'Е' , 'е' , 'Ё' , 'ё' , 'Ж' , 'ж' , 'З' , 'з' , 'И' , 'и' , 'Й' , 'й' , 'К' , 'к' , 'Л' , 'л' , 'М' , 'м' ,
'Н' , 'н' , 'О' , 'о' , 'П' , 'п' , 'Р' , 'р' , 'С' , 'с' , 'Т' , 'т' , 'У' , 'у' , 'Ф' ,
'ф' , 'Х' , 'х' , 'Ц' , 'ц' , 'Ч' , 'ч' , 'Ш' , 'ш' , 'Щ' , 'щ' , 'Ъ' , 'ъ' , 'Ы' , 'ы' ,
'Ь' , 'ь' , 'Э' , 'э' , 'Ю' , 'ю' , 'Я' , 'я' , '0' , '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' ) ;
$dlinna_str = strlen ( $string ) ; $clear_string = '' ;
for ( $count = 0 ; $count < $dlinna_str ; $count ++ ) {
$check = in_array ( $string [ $count ] , $alfavit , true ) ; if ( $check ) {
$clear_string .= $string [ $count ] ;
}
}
$clear_string = preg_replace ( "/ {1,}/" , " " , $clear_string ) ; return $clear_string ;
}
При не строгом режиме пропускает всё. В чём может быть причина?
Вывожу var_dump
string(1) "�"
string(1) "�"
string(1) "�"
string(1) "�"
string(1) "�"
string(1) "�"
string(0) ""
Doox911
Отправлено: 17 Июля, 2018 - 07:11:14 • Тема: Как лучше производить валидацию? • Форум: Вопросы новичков
Ответов: 9 Просмотров: 287
andrewkard пишет: Любым удобным для Вас способом. Нужно сделать на клиенте и на сервере. На сервере обязательно.
Это то понятно) Просто у меня друг хранит в массиве весь алфавит и разрешенные символы и входящую строку сравнивает. Регулярка требовательна к ресурсам.
Doox911
Отправлено: 16 Июля, 2018 - 17:51:28 • Тема: Как лучше производить валидацию? • Форум: Вопросы новичков
Ответов: 9 Просмотров: 287
Добрый вечер. Сегодня созрел интересный вопрос. А как лучше проводить валидацию input?
Например мне необходимо чтобы остались только русские буквы и всё. Варианты:
1. Регуляркой;
2. По символьно (массив символов).
Что из этого быстрее и качественнее? Может есть ещё способ менее затратный по ресурсам?
Поделитесь опытом.
Doox911
Отправлено: 16 Июля, 2018 - 17:42:10 • Тема: Как работает эта регулярка? • Форум: Вопросы новичков
Ответов: 21 Просмотров: 835
Спасибо. Только там работает: /[А-ЯЁа-яё]+/ так. А в php только так: /[А-ЯЁа-яё]+/iu - обязательно юникод указывать надо. Почему?
Doox911
Отправлено: 16 Июля, 2018 - 15:40:59 • Тема: Как работает эта регулярка? • Форум: Вопросы новичков
Ответов: 21 Просмотров: 835
Мелкий пишет: Ммм, а вы вообще что-нибудь по синтаксису регулярок читали?
1. модификаторы
2. какую кавычку?
3. Это два разных спецсимвола, и их объясняют буквально в любом руководстве. Это не рекурсивная регулярка, а совершенно базовые вещи. + - сокращение для {1,}, $ - конец строки
Я тут немного начал разбираться... Но что такое /msiu?
При попытке оставить только русские буквы
Выдаёт �� хотя там и там utf-8.
Это модификаторы!)
Не получается один пробел оставить между словами(
Doox911
Отправлено: 02 Июля, 2018 - 15:31:23 • Тема: Не находит класс. • Форум: Объектно-ориентированное программирование
Ответов: 6 Просмотров: 2180
Доброго времени суток.
Написал сайт по модели MVC.
При ajax запросе выдаёт:
Каждый класс в отдельном файле. Подгружаю классы так:
PHP:
скопировать код в буфер обмена
<?PHP
/*
*/
function __autoload( $class_name ) {
'/models/' ,
'/components/'
) ;
foreach ( $array_paths as $path ) {
$path = ROOT . $path . $class_name . '.php' ;
include_once $path ;
}
}
}
В контроллере вызываю метод:
PHP:
скопировать код в буфер обмена
$mail -> isSMTP ( ) ;
$mail -> Host = 'smtp.yandex.ru' ;
$mail -> SMTPAuth = true ;
$mail -> Username = '***' ;
$mail -> Password = '***' ;
$mail -> SMTPSecure = 'ssl' ;
$mail -> Port = 465 ;
$mail -> CharSet = 'UTF-8' ;
$mail -> setFrom ( '***' , 'ООО "Фирма"' ) ;
$mail -> addAddress ( User:: getUserEmail ( ) ) ;
$mail -> isHTML ( true ) ;
$mail -> Subject = 'Смена статуса' ;
$mail -> Body = $text ;
$mail -> send ( ) ;
В чём прикол? Ничего до вызова метода не вывожу.
(Добавление)
записал результат в переменную до объявления объекта phpmailer, ошибка пропала. Я так понимаю phpmailer мог уже заголовки отправить?
Doox911
Отправлено: 21 Мая, 2018 - 16:01:17 • Тема: Как убрать в WP все type="text/...."? • Форум: CMS и фреймворки
Ответов: 0 Просмотров: 1577
Сайт из-за type="text/javascript" и type="text/css" не проходит валидацию.
Пробовал везде советуемый метод:
PHP:
скопировать код в буфер обмена
add_filter( 'style_loader_tag' , 'clean_style_tag' ) ;
function clean_style_tag( $src ) {
return $src ;
}
add_filter( 'script_loader_tag' , 'clean_script_tag' ) ;
function clean_script_tag( $src ) {
$src = str_replace ( "type='text/javascript'" , '' , $src ) ; $src = str_replace ( 'type="text/javascript"' , '' , $src ) ; return $src ;
}
Что-то руками убрал. Неужели придётся в ядро лезть и в плагины? Может есть более разумный вариант?
Doox911
Отправлено: 15 Мая, 2018 - 09:14:01 • Тема: Не работает инициализация макси для email в RobinHerbots/Inputmask • Форум: JavaScript & VBScript
Ответов: 2 Просмотров: 765
Sail пишет: Doox911 пишет: В поле емаил ничего не происходит
Может, в консоли js (инструменты разработчика в браузере) ошибку какую-нибудь пишет?
PS: Код для email-маски брали из
Usage ?
На что влияет "cardinality: 1,"?
Ошибок нет. Про код для email. Да.
Честно говоря, забыл. Сейчас емаил работает. А вот поле с маской под телефон, после отправки формы пропадает). Код не изменился.
Решение:
1. Поле с телефоном необходимо брать по id.
2. Поле с типом email не поддерживается. Подробнее об этом баге в на гите.
Страниц (12): « 1 2 [3] 4 5 6 7 8 9 ... » В конец
Powered by ExBB FM 1.0 RC1. InvisionExBB