Пропадают символы в переменной.....Почему?!?!?

IgorI

Новичок
Пропадают символы в переменной.....Почему?!?!?

Добрый день!
Помогите разобраться со следующей вещью:
есть переменные
$id=номер статьи
$text=некий набор слов
скрипт создает ссылку
echo "<a href = search.php?id=".$id."&text=".$text.">$text</a>";
если $text состоит из 1 слова то всё работает без проблем,
но если там несколько слов, то $text автоматически обрезается до 1 слова, то есть до первого пробела.
Почему так просиходит? И как это исправиить??
Заранее спасибо.
 

Nimous

Guest
А если $text будет состоять из 50 слов, ты их все в URL запихнёшь?
 

DimbIch

Новичок
Nimous
а у него в базе видать поле с типом TEXT - все пихает :)))))))
 

gfd

Guest
IgorI

:)

Кавычки вокруг $text поставь в теге

PHP:
echo "<a href = search.php?id=".$id."&text=\"".$text."\">$text</a>";
 

tolst

Новичок
бывают случаи когда удобно делать выборку категорий не по идентификатору а по названию, в этом нет ничего страшного... даже если название русское и состоит из нескольких слов... согласен, это не правильно, но некоторые предпочитают именно так организовывать навигацию
 

agx

Программер :-)
Если строка в БД хранится, то лучше ее id передавать.
P.S. И вообще, мало ли что шаловливые ручки могут в URL запихать... У тебя потом эта строка в качестве заголовка на странице не отображается, случайно?
 

tolst

Новичок
зачем, можнож делать так:
PHP:
<?php

include("./mysql_connect.php");

if ($mfa = mysql_fetch_array(mysql_query("SELECT * FROM table_name WHERE cat = '" . addslashes($cat) . "'"))){

  // Тут можно пихать этот $cat хоть в титл, хоть куда... он присутствует в бд

} else {

  // тут посылаем нахрен

}


?>
 

tolst

Новичок
и что тебе это даст? я понимаю, выборка пройдёт, но что дальше то? как ты сможеш навредить этим? вставиш например в титл плохое название или ещё что, :))
SQL-Injection тут можно запросто отрезать при помощи
PHP:
$string = str_replace("UNION", "", $string);
 
Сверху