[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Кавычки в рег выражениях
billizzard
Регулярное выражение preg_match("/^[a-z'\"]{1,40}$/ui", $Txt)
на локалке у меня находит совпадение если ввожу "(двойную кавычку)
на серваке не находит совпадения, почему?
Winston
Откуда $Txt?
Может у тебя включены register_globals на локалке?
billizzard
$Txt у меня просто с формы ввода берет (input). Я там ввожу только ".
Winston
Покажи html код инпута и покажи как ты присваиваешь $Txt значение из инпута
billizzard
Кстати на локалке включено register_globals, а на серваке отключен. А как это влияет?
billizzard
<body>
<?php
function
rabValTxtZag($Txt) {
if (!preg_match("/^[a-z'\"]{1,40}$/ui", $Txt))
{
echo "Не нашло совпадение";
}else{
echo "Нашло совпадение";
}
}


if (isset($_POST['text'])){
$text=$_POST['text'];
rabValTxtZag($text);
}

?>
<form name="fg" action="temp.php" enctype="multipart/form-data" method="post">
<
input name="text" type="text" />
<
input type="submit" value="Проверить" />
</
form>
</
body>
Winston
register_globals - это плохо, в нете куча инфы по этому поводу
Winston
Что показывает
if (isset($_POST['text'])){
print_r($_POST);
}

на серверве
billizzard
А почему-то такая функция пропускает и там и там:

<body>
<?php
function rabValTxtZag($Txt) {
$a='"'; //двойная кавычка внутри одинарных
if (!preg_match("/^[a-z'".$a."]{1,40}$/ui", $Txt))
{
echo "Не нашло совпадение";
}else{
echo "Нашло совпадение";
}
}

if (isset($_POST['text'])){
$text=$_POST['text'];
rabValTxtZag($text);
}

?>
<form name="fg" action="temp.php" enctype="multipart/form-data" method="post">
<input name="text" type="text" />
<input type="submit" value="Проверить" />
</form>
</body>
billizzard
if (isset($_POST['text'])){
print_r($_POST);
}

На локалке показывает: Array ( [text] => " )
На серваке: Array ( [text] => \" )
billizzard
сервак чтоли сам их экранирует?
Winston
Цитата (billizzard @ 16.10.2012 - 21:59)
сервак чтоли сам их экранирует?

Да. В .htaccess пропиши

php_flag magic_quotes_gpc Off 
php_flag magic_quotes_runtime Off
php_flag register_globals Off
billizzard
Как вставил туда надписи сервак выдает ошибку и не дает грузится сайту вообще. Ошибка такая:

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, webmaster@bel-torg.by and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.
Winston
Какой то говняный хостинг..

Тогда как вариант в начале файла прописать
function stripslashes_deep(&$value)
{
$value = is_array($value) ?
array_map('stripslashes_deep', $value) :
stripslashes($value);

return $value;
}

stripslashes_deep($_POST);
stripslashes_deep($_GET);
billizzard
А, ну да, точно. Спасибо огромное, а то запарился я с этой ерундой. Спасибо еще раз!!!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.