Любими обяви...

SLADE

Registered
Здравейте. Как става това: http://centar.912.bg/ads/view/41644/%D0%BF%D1%80%D0%B5%D0%B4%D0%BB%D0%B0%D0%B3%D0%B0%D0%BC-%D1%84%D0%BE%D1%82%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D1%81%D0%BA%D0%B8-%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B8
Отдолу на обявата има "Добави в любими". Какъв е начина да го направя?
Въпроса е да става номера без потребителя да има регистрация, както да добавя - така и да трие. Може да видите как работи в сайта.
Благодаря предварително за помощта!
 
PHP:
session_start();
if(isset($_GET['fav'])){
if(is_numeric($_GET['fav'])){
$idadd=(int)$_GET['fav'];
if(isset($_SESSION['fav'])){
$check_ses=explode("/", $_SESSION['fav']['favid']);
foreach ($check_ses as $cs){
if($cs==$idadd){
echo 'Тази обява е вече добавена в любими';
exit;
 }
}
$new_id=$_SESSION['fav']['favid']."/".$idadd;
if($new_id){
$_SESSION['fav']['favid']=$new_id;
 }
}
else {
$_SESSION['fav']['favid']=$idadd;
  }
 }
}

$idfav=$idrow['id']; //Това ти е примено ид то което взимаш за обявата от базата данни

echo "<a href='check.php?fav=".$idfav."'>Добави в любими</a>";

if(isset($_SESSION['fav'])){
$favobqvi=$_SESSION['fav']['favid'];

$favobqvi=explode("/", $favobqvi);

echo "<br>Вие сте добавили в любими: <br>";
foreach ($favobqvi as $idfavorites){


$row_favor=mysql_query("SELECT * FROM `obqvi` WHERE `id`='$idfavorites'");
$favor=mysql_fetch_assoc($row_favor);
$favtitle=$favor['title'];

echo "<br>".$favtitle."<br>";

 } 
}
 
@eddyy93, по този начин ако затвориш браузъра ще си идат на кино въпросните "любими обяви" - прави се с бисквитка.

И защо минаваш два пъти $_GET през if() дали е число? Нужно е само един - (int) или is_numeric(). :?:
 
Ticketa каза:
@eddyy93, по този начин ако затвориш браузъра ще си идат на кино въпросните "любими обяви" - прави се с бисквитка.

И защо минаваш два пъти $_GET през if() дали е число? Нужно е само един - (int) или is_numeric(). :?:

Ако потребитела си е изключил бисквитките тогава изобщо няма да съществува тази опция любими. По-късно ще го направя с бисквитка и да проверява ако е няма (тоест си е изключил бисквитките), да минава на сесия.

Колкото до if - овете. Първата проверка проверява дали е сетнат. Иначе ако му сложа директно is_numeric ще вади грешка, че $_GET['fav'] не съществува.
 
eddyy93 каза:
Ticketa каза:
@eddyy93, по този начин ако затвориш браузъра ще си идат на кино въпросните "любими обяви" - прави се с бисквитка.

И защо минаваш два пъти $_GET през if() дали е число? Нужно е само един - (int) или is_numeric(). :?:

Ако потребитела си е изключил бисквитките тогава изобщо няма да съществува тази опция любими. По-късно ще го направя с бисквитка и да проверява ако е няма (тоест си е изключил бисквитките), да минава на сесия.

Колкото до if - овете. Първата проверка проверява дали е сетнат. Иначе ако му сложа директно is_numeric ще вади грешка, че $_GET['fav'] не съществува.

Може да се направи така:

if(isset($_GET['fav'])){
$idadd=(int)$_GET['fav'];
}

или по-скоро

if(isSet($_GET['fav'])) {
$idadd=(int)$_GET['fav'];
} else {
$idadd = 1;
}
 
Разбира се, че може и така. Но за онзи момент съм решил да го проверявам 2 пъти дали е сетнат и дали е число ... и да слагам, и (int) нищо, че съм проверил дали е число вече.
 
В случая, мога да ти кажа с абсолютна сигурност, че не е със сесии или бисквитки :)
Записва се в отделна таблица.
 
Е, да ако е регистриран самият потребител със база данни.

Но ако не е регистриран - вариянтите са 2:

- по IP.
- Сессия


Първият вариянт отпада. И остават 2 та.
Сега ако е по IP има лек минус. Той е, че само 1 човек ще може да ползва услугата от една вътрешна мрежа. Примерно ако си в една интернет зала само 1 човек от цялата зала ще ти използва услугата, а другите ще те следят какво правиш ...

И за това остава вариянта със сесията.

Греша ли ?
 

Back
Горе