2016-07-11 2 views
1

Я проектирую сайт недвижимости. У меня есть много объявлений на моем сайте, и когда пользователь нажимает на определенное объявление, он переходит на другую страницу viewmore.php, которая дает пользователю более подробную информацию об этом определенном объявлении ,сохранить cookies с тем же именем, но разные значения в php

Теперь, как вы видите в файле viewmore.php, я сохраняю идентификатор объявления в файлах cookie и отправляю идентификатор объявления на любимую страницу, и пользователь может просмотреть это сообщение в любое время, когда он или она захочет на любимой странице.

Проблема:

считает, что я посетить эту страницу localhost/viewmore.php?ID=10, таким образом, когда вы идете к любимой странице у видеть данные объявления, которые принадлежат к этому идентификатору, но, когда вы посещаете другое объявление, как localhost/viewmore.php?ID=11 и вы идете к любимой странице вы видите данные объявлений, которые относятся к id=11, и предыдущее добавление отсутствует. Я хочу сохранить их обоих на своей любимой странице или, фактически, сохранить все сообщения, которые я посещаю.

как я могу это сделать?

//reviewmore.php 
<!doctype html> 
<?php 
(is_numeric($_GET['ID'])) ? $ID = $_GET['ID'] : $ID = 1; 
?> 
<?php 
$cookie_name = "favoritepost"; 
$cookie_value ="$ID"; 
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); // 86400 = 1 day 
?> 
<html> 
    <body> 
    <?php 
error_reporting(0); 
include("config.php"); 
(is_numeric($_GET['ID'])) ? $ID = $_GET['ID'] : $ID = 1; 
$result = mysqli_query($connect,"SELECT*FROM ".$db_table." WHERE idhome = $ID"); 
?> 
<?php 
error_reporting(0); 
include("config.php"); 
(is_numeric($_GET['ID'])) ? $ID = $_GET['ID'] : $ID = 1; 
$result = mysqli_query($connect,"SELECT*FROM ".$db_table." WHERE idhome = $ID"); 
?> 
<?php $row = mysqli_fetch_array($result): 
$price=$row['price']; 
$rent=$row['rent']; 
$room=$row['room']; 
$date=$row['date']; 
?> 
<?php 
echo"price"; 
echo"room"; 
echo"date"; 
?> 
</body> 
    </html> 

favoritepage.php

<!doctype html> 
<html> 
    <body> 
<?php 
$cookie_name = "favoritepost"; 
?> 
<?php 
error_reporting(0); 
include("config.php"); 
$result = mysqli_query($connect,"SELECT*FROM ".$db_table." WHERE idhome = $_COOKIE[$cookie_name]"); 
?> 
<?php $row = mysqli_fetch_array($result): 
$price=$row['price']; 
$rent=$row['rent']; 
$room=$row['room']; 
$date=$row['date']; 
?> 
<?php 
echo"price"; 
echo"room"; 
echo"date"; 
?> 
    </body> 
    </html> 
+2

Почему бы не иметь массив как значение cookie? – apokryfos

+0

@ Райан Винсент, эй, я благодарю вас за ваш ответ, так как вы видите меня, и RiggsFolly много работал над этим вопросом, но первый код внизу не работает для меня, пожалуйста, проверьте его и дайте мне свое мнение, спасибо u – Malekian

ответ

1

сохранение идентификатора в качестве массива в вашем печенье, как это, например, вы должны serialize()/unserialize() или json_encode()/json_decode() массива в кук, как он поддерживает только текст и не сложные Data

<?php 
$ID = is_numeric($_GET['ID']) ? $_GET['ID'] : 1; 

$cookie_name = "favoritepost"; 

if (isset($_COOKIE[$cookie_name])) { 
    $kookie = unserialize($_COOKIE[$cookie_name]); 
} else { 
    $kookie = array(); 
} 
if (! in_array($ID, $kookie)) { 
    $kookie[] = $ID; 
} 

setcookie($cookie_name, serialize($kookie), time() + (86400 * 30), "/"); // 86400 = 1 day 
?> 
<html> 

Теперь последний печенье вошел я полагаю, будет тот, который вы хотите использовать в запросе, так просто получить

<!doctype html> 
<html> 
<body> 
<?php 
$cookie_name = "favoritepost"; 
include("config.php"); 
if (! isset($_COOKIE[$cookie_name])) { 
    echo 'NO COOKIE SET'; 
    exit; 
} 

$kookie = unserialize($_COOKIE[$cookie_name]); 
$ID = $kookie[count($kookie)-1]; 
$result = mysqli_query($connect,"SELECT * FROM $db_table WHERE idhome = $ID"); 

$row = mysqli_fetch_array($result): 
$price=$row['price']; 
$rent=$row['rent']; 
$room=$row['room']; 
$date=$row['date']; 

echo"price"; 
echo"room"; 
echo"date"; 
?> 
+0

привет спасибо вы за свой ответ позвольте мне проверить это :) – Malekian

+0

У меня есть ошибка Неустранимая ошибка: [] оператор не поддерживается для строк для этой строки $ kookie [] = $ ID; – Malekian

+0

также вы пропустите один родительский код в своем коде. Я предполагаю, что он выглядит так: – Malekian

Смежные вопросы