|
|
|
| Здравствуйте! Нужна помощь)
У меня есть 3 строки. Из них делаю одну:
$str=$str1."\".$str2."\".$str3;
потом получившуюся строку успешно записываю в cookie. Затем в нужном месте извлекаю из cookie строку. С помощью функции explode по разделителю разбиваю строку на элементы массива. При выводе элемента массива на экран выводится все, что необходимо. НО! Если в элементе массива несколько слов через пробел, выводится только первое слово. Не подскажте,в чем проблема? Строки str1,str2,str3 получаются из формы с использованием функции htmlspecialchars() | |
|
|
|
|
|
|
|
для: seregarulez
(24.06.2008 в 17:09)
| | Форму свою приведите? Полагаю там кроется тайна, судя по всему у вас одно слово и записывается, т.к наверняка value полей формы не ограничиваются кавычками. | |
|
|
|
|
|
|
|
для: AcidTrash
(24.06.2008 в 17:14)
| | вот текстовое поле
<input name="str1" type="text" id="str1" size="70" />
форма как форма. Всегда делал, с пробелами проблем не было
$_POST['str1']=htmlspecialchars($_POST['str1']);
$str1 = $_POST['str1']; | |
|
|
|
|
|
|
|
для: seregarulez
(24.06.2008 в 17:21)
| | У вас синтаксис не правильный
$str=$str1."\".$str2."\".$str3;
|
странно, что такая строка у вас ошибок не выдает.
замените на строку
$str=$str1."\\".$str2."\\".$str3;
|
| |
|
|
|
|
|
|
|
для: AcidTrash
(24.06.2008 в 17:45)
| | почему обязательно двойной разделитель? А если использовать вместо "\" "|" или "+"? | |
|
|
|
|
|
|
|
для: seregarulez
(24.06.2008 в 18:08)
| | >почему обязательно двойной разделитель?
"\\" - это не двойной разделитель. Это один символ \
строки | |
|
|
|
|
|
|
|
для: Trianon
(24.06.2008 в 18:12)
| | от разделителя не зависит...( | |
|
|
|
|
|
|
|
для: seregarulez
(24.06.2008 в 21:08)
| | Приведите конкретный пример, когда такое происходит. Кодом. | |
|
|
|
|
|
|
|
для: BinLaden
(24.06.2008 в 21:13)
| |
<?php
if(isset($_POST['Submit']))
{
$_POST['str1']=htmlspecialchars($_POST['str1']);
$_POST['str2']=htmlspecialchars($_POST['str2']);
$_POST['str3']=htmlspecialchars($_POST['str3']);
$str1= $_POST['str1'];
$str2= $_POST['str2'];
$str3= $_POST['str3'];
$str=$str1."|".$str2."|".$str3;
setcookie("str",$str,mktime(0,0,0,1,25,2009));
}
?>
|
<?
if(isset($_COOKIE['str']))
{
$123=explode("|",$_COOKIE['str']);
echo "value=".$123[0];
}
?>
|
выводится должна $str1. А выводится только первое слово до пробела(любой длины). Если в строке нет пробелов, то выводится все | |
|
|
|
|
|
|
|
для: seregarulez
(24.06.2008 в 21:46)
| | >$123=explode("|",$_COOKIE['str']);
$123 - это по вашему нормально? О-да. Имя переменной не может начинаться с цифры! | |
|
|
|
|
|
|
|
для: AcidTrash
(24.06.2008 в 22:05)
| | я просто заменил все переменные. Не спрашивайте зачем. На самом деле не в этом ошибка
Если выводить $_COOKIE['str'], то все нормально выводится.
Т.е. например выводится следующее:
слово1 слово2 слово3|слово4|слово5
А после использования explode() и обращения к 0-ому элементу массива выводится только слово1
пробовал вытаскивать слова из строки при помощи функции stristr(), все то же самое получается
кажется втыкнул, в чем ошибка. Спасибо большое всем за помощь! | |
|
|
|
|
|
|
|
для: seregarulez
(24.06.2008 в 22:18)
| | >кажется втыкнул, в чем ошибка
Очень интересно и в чем? Просто если бы вы сразу привели коды которые используете(а не выдумывать), где возможно ошибки, то думаю решилось бы все быстрее. | |
|
|
|
|
|
|
|
для: AcidTrash
(24.06.2008 в 22:54)
| | AcidTrash, Вы с самого начала были правы) | |
|
|
|