[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Странное поведение русских букв
kapusta
Возьмем простейший скрипт, назовем его testget.php:

<html>
<head>
<meta
charset="UTF-8">
</head>
<body>
<?php

setlocale(LC_ALL, 'ru_RU.UTF-8');
$rowname = "мм";
$formid = 11;
echo "<a href=\"delete.php?zname=$rowname&formid=$formid\"> Удалить </a>";
?>
</body>
</html>


и запустим из некой папки:

http://www.example.com/sp/testget.php

Если выбрать ссылку, то скрипт "вылетает" по адресу http://www.example.com/

Если заменить $rowname на одну русскую букву м, то все работает нормально и выдается текст

Not Found The requested URL /sp/delete.php was not found on this server.

Все, естественно, работает нормально, если $rowname содержит латинские символы и большинство русских букв, включая пробелы, например, "Вид програм". Но если добавить еще одну м "Вид программ" - все вылетает. Я в растерянности. Пожалуйста, подскажите, что это и как с этим бороться.
Valick
Цитата (kapusta @ 13.02.2017 - 20:13)
Если выбрать ссылку, то скрипт "вылетает"

прочитал несколько раз, кроме мозга у меня ничего не вылетает

_____________
Стимулятор ~yoomoney - 41001303250491
Игорь_Vasinsky
1. когда берёшь данные из GET - то обрабатывай эти данные с urldecode()

2. в ссылке тебе $formid - не достаточно ?

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
killer8080
Цитата (Игорь_Vasinsky @ 14.02.2017 - 08:23)
1. когда берёшь данные из GET - то обрабатывай эти данные с urldecode()

Зачем? blink.gif
Цитата (kapusta @ 13.02.2017 - 21:13)
$rowname = "мм";
$formid = 11;
echo "<a href=\"delete.php?zname=$rowname&formid=$formid\"> Удалить </a>";

так нельзя делать, параметры в query string должны кодироваться через urlencode()
Цитата (kapusta @ 13.02.2017 - 21:13)
Если выбрать ссылку, то скрипт "вылетает" по адресу http://www.example.com/

смотри в .htaccess наверняка с редиректами косяк.
Игорь_Vasinsky
Цитата
Зачем?

чтобы пробелы были пробелами и тд.

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
killer8080
Цитата (Игорь_Vasinsky @ 14.02.2017 - 13:47)
чтобы пробелы были пробелами и тд.

В $_GET они уже декодированы
Быстрый ответ:

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