|
|
|
|
|
для: WebTech
(14.05.2006 в 19:54)
| | Нет, как только hotel_ID падает на XXX.php происходит простой запрос:
$query = "SELECT hotel_name FROM hotels
WHERE hotel_ID='".$_SESSION['hotel_ID']."'";
$prt = mysql_query($query);
if(!$prt) puterror("ERROR!");
if (mysql_num_rows($prt)>0)
{
while($par = mysql_fetch_array($prt))
{
$property=$par['hotel_name']; и т.д.
|
И выводится инфо отеля. | |
|
|
|
|
|
|
|
для: WebTech
(14.05.2006 в 19:47)
| | Меня смущает, что у тебя в форме стоит
action = $par['link']
Получается, что для каждой формы отдельный скрипт обработчик? Если так, то получается, что при добавлении нового отеля, нужно добавлять скрипт. Или в $par['link'] фиксированное значение, одинаковое для всех форм?
Хочется довести дело до конца :-) | |
|
|
|
|
|
|
|
для: WebTech
(14.05.2006 в 19:47)
| | Надо и это попробывать. Потом отпишу что получилось. | |
|
|
|
|
|
|
|
для: nicksaint
(14.05.2006 в 19:33)
| | Все-таки...
С помощью сессий - единственное, что пришло в голову, это вот что.
Если в $par['link'] хранится имя скрипта обработчика в виде xxx.php, то можно так.
<?
session_start();
$i = 0;
while($par = mysql_fetch_array($prt))
{
$i++;
echo "<form name='".$par['hotel_name']."' action='../".$par['link']."' method=POST>";
$_SESSION['city'][$par['link']] = $city;
$_SESSION['location'][$par['link']] = $location;
$_SESSION['prop_ID'][$par['link']] = $par['hotel_ID'];
$_SESSION['hotel_name'][$par['link']] = $par['hotel_name'];
$_SESSION['datea'][$par['link']] = $datea;
$_SESSION['dated'][$par['link']] = $dated;
. . .
// и т.д.
?>
|
и в каждом скрипте обработчике переменные будут извлекаться так:
<?php
session_start();
$city = $_SESSION['city'][$_SERVER['PHP_SELF']];
$location = $_SESSION['location'][$_SERVER['PHP_SELF']];
$prop_ID = $_SESSION['prop_ID'][$_SERVER['PHP_SELF']];
$hotel_name = $_SESSION['hotel_name'][$_SERVER['PHP_SELF']];
$datea = $_SESSION['datea'][$_SERVER['PHP_SELF']];
$dated = $_SESSION['dated'][$_SERVER['PHP_SELF']];
...
// и т.д.
?>
|
| |
|
|
|
|
|
|
|
для: WebTech
(14.05.2006 в 19:12)
| | А Вы правы. Я наверное оставлю и не стану усложнять. Спасибо за помощь. | |
|
|
|
|
|
|
|
для: nicksaint
(14.05.2006 в 16:29)
| | Ну и пусть изменяет. Это проблема пользователя, если он в результате подмены значения получит не то, что надо.
А если ты боишься SQL-injection, то надо просто подставляемые в запрос значения обрабатывать с помощью mysql_escape_string() и stripslashes(). | |
|
|
|
|
|
|
|
для: WebTech
(14.05.2006 в 16:25)
| | C hidden fields все работает, но мне не очень хочется их использовать. Их можно изменить. | |
|
|
|
|
|
|
|
для: nicksaint
(14.05.2006 в 13:30)
| | Не
$_SESSION['hotel_name']."/".$_SESSION['hotel_ID']
|
а
$_SESSION['hotel_name'.$i]
|
где $i это счетчик или
$_SESSION['hotel_name'.$_SESSION['hotel_ID']]
|
но тогда придется $_SESSION['hotel_ID'] приписывать к каждому имени переменной. Попробуй так и у тебя в /tmp окажутся все переменные.
Так уж ли нужны сессии в данном случае?
У тебя выводится отдельная форма для каждой гостиницы. И получается, что каждой форме назначен отдельный обработчик. Нельзя в скрытом поле передавать только hotel_ID, а в обработчике извлекать из бд все остальные данные?
Чем тебе не нравятся скрытые поля?
В данном случае сессии не очень хорошо годятся, потому что все переменные сессии будут созданы кучей и их не очень удобно будет потом "разбирать".
И сессия существует до тех пор, пока открыт браузер. Если пользователь сохранит страницу с формами, потом закроет браузер, а потом эту страницу снова откроет, то данные сессии будут потеряны.
>Но в
>/tmp они не заносятся. Значит мы где то рядом ходим.
Заносится только последнее значение, потому что имена переменных одинаковые, а цикл проходит несколько раз. Остаются только значения после последнего прохода цикла. | |
|
|
|
|
|
|
|
для: nicksaint
(14.05.2006 в 13:30)
| | Кто-нибудь знает как это все должно работать? | |
|
|
|
|
|
|
|
для: WebTech
(14.05.2006 в 13:11)
| | Нет. Имеется страница XXX.php которая принимает параметр отеля ($_SESSION['hotel_ID']) из базы данных т.е. $_SESSION['hotel_ID']=$par['hotel_ID]. Исходя из того какой отель был выбран из списка - сессия должна переслать его ID странице XXX.php для дальнейшего вывода самого отеля.
$par['link']="XXX.php";
Инфо в /tmp постоянно меняется, но инфо только по отелю что последний по списку. Именно его ID и передается хотя должен другой!
city|s:6:"Moscow";location|s:2:"dt";status|s:26:"images/hotels/fivestar.gif";hotel_ID|s:1:"8";hotel_name|s:17:"Golden Ring Hotel";datea|s:10:"05/15/2006";dated|s:10:"05/17/2006";
|
Я попробывал посмотреть создаются ли вообще другие переменные путем прибавления к имени отеля той-самой переменной
echo"<h3>".$_SESSION['hotel_name']."/".$_SESSION['hotel_ID']."</h3>
|
К какждому имени отеля прибавилась нужная переменная. Но в /tmp они не заносятся. Значит мы где то рядом ходим. | |
|
|
|
|