Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: параметры по ссылке??
 
 автор: Alex Boxgorn   (16.08.2005 в 14:10)   письмо автору
 
 

Подскажите пожалуйста как сделать на PHP передачу параметров форме? Есть ситуация и я по малому опыту не могу сообразить. Так вот, есть товар (наименование, цена. Мне нужно чтобы у каждого товара давишь на ссылку "заказать" и передались форме наименование и цена в переменных под типа функции "ИМЯ ФУНКЦИИ (НАИМЕНОВАНИЕ, ЦЕНА). Мучится можно долго, а у профессионалов спросить лучше да и опыта набраться.
Спасибо заранее!!

   
 
 автор: P@Sol   (16.08.2005 в 14:15)   письмо автору
 
   для: Alex Boxgorn   (16.08.2005 в 14:10)
 

можно передать методом get

<a href="cart.php?id=<?=$id?>">
потом считать ее

$id=$_GET[id];
и по id в бд найти наименование и цену

   
 
 автор: Alex Boxgorn   (16.08.2005 в 14:17)   письмо автору
 
   для: P@Sol   (16.08.2005 в 14:15)
 

нет, тут без БД все происходит. Просто изначально известны Наименование и цена. Я так понял первый вариант использовать? А синтаксис ссылки как правильно указать если $tovar="Otto Kurtbah 05/16" и $cena=112345 ?

   
 
 автор: P@Sol   (16.08.2005 в 14:58)   письмо автору
 
   для: Alex Boxgorn   (16.08.2005 в 14:17)
 


<a href="cart.php?tovar=Otto Kurtbah 05/16&cena=112345>

(пробелы надо заменять на %20)
потом считать ее


$tovar=$_GET[tovar]; 
$cena=$_GET[cena];


интересно...но товар же откуда-то берется:) а если название товара будет слишком длинным? обычно просто id передают

   
 
 автор: Alex Boxgorn   (16.08.2005 в 15:09)   письмо автору
 
   для: P@Sol   (16.08.2005 в 14:58)
 

вставил строку в параметры ссылки

<a href="cart.php?tovar=Otto Kurtbah 05/16&cena=112345>


создал файл cart.php с содержимым

$tovar=$_GET[tovar];
echo $tovar;

После нажатия на ссылку експлорер выдает окно и говорит скачать или открыть файл cart.php. Что я не так сделал вроде все нормально?

   
 
 автор: Киналь   (16.08.2005 в 15:11)   письмо автору
 
   для: Alex Boxgorn   (16.08.2005 в 15:09)
 

А на хостинге скрипты поддерживаются?

   
 
 автор: P@Sol   (16.08.2005 в 15:18)   письмо автору
 
   для: Киналь   (16.08.2005 в 15:11)
 

поддерживает ли ваш хостинг работы с php?

   
 
 автор: Alex Boxgorn   (16.08.2005 в 15:46)   письмо автору
 
   для: P@Sol   (16.08.2005 в 15:18)
 

Все нормально заработало. Я блин из проводника запустил и что-то жду хорошее ;-) Теперь другая ошибка, сервер ругается на строку-
"Use of undefined constant tovar - assumed 'tovar' in z:\home\test2.ru\www\cart.php on line 2"
А строка 2 это

<?
$tovar
=$_GET[tovar];
echo (
$tovar);
?>

   
 
 автор: P@Sol   (16.08.2005 в 15:57)   письмо автору
 
   для: Alex Boxgorn   (16.08.2005 в 15:46)
 

эт ничего страшного...просто изночально же ды не задаешь в адресе tovar=

   
 
 автор: cheops   (16.08.2005 в 16:06)   письмо автору
 
   для: Alex Boxgorn   (16.08.2005 в 15:46)
 

Ключ массива следует поместить в кавычки
<? 
$tovar
=$_GET['tovar']; 
echo (
$tovar); 
?>

   
 
 автор: cheops   (16.08.2005 в 15:56)   письмо автору
 
   для: Alex Boxgorn   (16.08.2005 в 15:09)
 

А где происходит тестирование на хостинге или на локальной машине?

   
 
 автор: Alex Boxgorn   (16.08.2005 в 16:00)   письмо автору
 
   для: cheops   (16.08.2005 в 15:56)
 

на локалке. Но Echo все равно выводит значения переменных.

   
 
 автор: P@Sol   (16.08.2005 в 16:06)   письмо автору
 
   для: Alex Boxgorn   (16.08.2005 в 16:00)
 

$tovar=$_GET['tovar'];
а так?

   
 
 автор: Alex Boxgorn   (16.08.2005 в 16:11)   письмо автору
 
   для: P@Sol   (16.08.2005 в 16:06)
 

оба!! С кавычами все путем. GET значит с апострофами только работает?

   
 
 автор: Киналь   (16.08.2005 в 16:19)   письмо автору
 
   для: Alex Boxgorn   (16.08.2005 в 16:11)
 

Не только $_GET. Вообще указываю индекс ассоцмативного массива, надо заключать его в кавычки. Исключение: если все происходит в двойных кавычках. то кавычки вызовут ошибку. Т.е.:

$var=$_GET['var'];
//но
echo "Переменная $_GET[var]";

   
 
 автор: isset   (16.08.2005 в 16:24)   письмо автору
 
   для: Киналь   (16.08.2005 в 16:19)
 

Когда используется $_GET[var] то первым делом PHP ищет константу 'var', т.е. если мы выше напишем define("var","my_var"); то echo $_GET[var] выведет значение my_var, а не var.

Как сказал Киналь, индекс ассоциативного массива нужно заключать всегда в одинарные кавычки (или в двойные). Индексы численного массива можно и не заключать (т.е. можно писать echo $array[0] )

   
 
 автор: Alex Boxgorn   (16.08.2005 в 16:29)   письмо автору
 
   для: isset   (16.08.2005 в 16:24)
 

Вот спасибо всем огромное!! Так тяжко в PHP въезжать ;-(. Много ньюансов.

   
 
 автор: Киналь   (16.08.2005 в 16:32)   письмо автору
 
   для: Alex Boxgorn   (16.08.2005 в 16:29)
 

Все нюансы легко постигаются путем запуска скрипта и внимательного чтения сообщения об ошибках и нотисов=)

   
 
 автор: Alex Boxgorn   (16.08.2005 в 16:40)   письмо автору
 
   для: Alex Boxgorn   (16.08.2005 в 16:29)
 

а как долго живут в PHP переменные?
Если к примеру я в HTML странице объявлю

<?
$cena
=234;
?>

И перейду по ссылке на другую страницу HTML и в ней запрошу вывести
<?
echo ($cena);
?>
[/code]
Я получу ожидаемое значение 234?

   
 
 автор: Киналь   (16.08.2005 в 16:44)   письмо автору
 
   для: Alex Boxgorn   (16.08.2005 в 16:40)
 

Переменная живет. пока выполняется скрипт. То есть в данном случае ответ "нет". Придется прибегать либо к кукам, либо к сессиям. либо к массиву $_GLOBALS. Впрочем, есть еще register_globals, но этого лучше избегать.

ЗЫ Не echo($cena), а либо echo $cena, либо print($cena) =)

   
 
 автор: Alex Boxgorn   (16.08.2005 в 16:53)   письмо автору
 
   для: Киналь   (16.08.2005 в 16:44)
 

я понял. Спасибо.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования