Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zaawansowane operowanie cookiesami
Forum PHP.pl > Forum > PHP
MaxRipper
No dobra chlopaki i znowu powracam z nowym problemem.... A wiec wyjasniam:

Zrobilem sobie skrypt do glosowania na daną recenzję i ustawilem blokowanie glosowania dla cookie wygląda to mniej więcej tak:

[php:1:2df5a42eed]<?php
if ($ocen == 'tak')
{
if ($splitglos == '2')
{ echo "JUZ GŁOSOWAŁEŚ BARANIE!!!!!!!!!!!!!!!!";}
else
{
$cookievalue = '2';
$splitglos = "678eriu";
setcookie($splitglos, $cookievalue, time()+3600);
// dalej dodaje do bazy
}
}
?>[/php:1:2df5a42eed]

I formularz do głosowania:

[php:1:2df5a42eed]<?php
<form method="post">
<select name="ocena" onChange="MM_jumpMenu('parent',this,0) ">
<option value="0" selected>- oceń -</option>
<option value="film.php?film=<? echo $film; ?>&ocen=tak&ocena=1&<? echo SESID; ?>">1 - sad.gif</option>
<option value="film.php?film=<? echo $film; ?>&ocen=tak&ocena=2&<? echo SESID; ?>">2</option>
<option value="film.php?film=<? echo $film; ?>&ocen=tak&ocena=3&<? echo SESID; ?>">3</option>
<option value="film.php?film=<? echo $film; ?>&ocen=tak&ocena=4&<? echo SESID; ?>">4</option>
<option value="film.php?film=<? echo $film; ?>&ocen=tak&ocena=5&<? echo SESID; ?>">5</option>
<option value="film.php?film=<? echo $film; ?>&ocen=tak&ocena=6&<? echo SESID; ?>">6</option>
<option value="film.php?film=<? echo $film; ?>&ocen=tak&ocena=7&<? echo SESID; ?>">7</option>
<option value="film.php?film=<? echo $film; ?>&ocen=tak&ocena=8&<? echo SESID; ?>">8</option>
<option value="film.php?film=<? echo $film; ?>&ocen=tak&ocena=9&<? echo SESID; ?>">9</option>
<option value="film.php?film=<? echo $film; ?>&ocen=tak&ocena=10&<? echo SESID; ?>">10 - biggrin.gif</option>
</select>
</form>
?>[/php:1:2df5a42eed]


Wszystko działa pięknie ale...... (jak zwykle) występuje problem gdy np chcę zagłosować na inny film .... Jak zrobić ustawienia cookie dla każdego filmu osobno tzn że np żebym nie mógl glosować na ten sam kilka razy a żebym mógł głosować na inne(na inne ale też tylko raz)? Aha dodam jeszcze że linki do danej recenzji wyglądają mniej więcej tak film.php?film=1 // gdzie te 1 to inaczej id pobrany z bazy
spenalzo
[php:1:b31fac22db]<?php
setcookie("glos[".$_GET["film"]."]",$cookievalue, time()+3600);
?>[/php:1:b31fac22db]

odczytujesz dane tak:

[php:1:b31fac22db]<?php
// Sprawdzamy czy głos był oddany na film nr 123
if(($_COOKIE["glos"]["123"]==2)
{
echo "Już głosowałeś";
}
?>[/php:1:b31fac22db]

Zobacz także to.
MaxRipper
Zrobilem tak jak poniżej i dalej coś nie działa sad.gif :


Kod
// Wysylanie ciacha od glosowania

global $film;

if ($ocen == 'tak')

{

if("glos[".$_GET["$film"]."]" == 1)

{ }

else

{

$cookievalue = '1';

setcookie("glos[".$_GET["$film"]."]", $cookievalue, time()+20);

    }

}



mysql_connect ($dbhost, $dblogin, $dbpass);

mysql_select_db ($db);

//Ocenianie filmu

if ($ocen=="tak")

{

if("glos[".$_GET["$film"]."]" == 1)

{

$glosmsg = "<table width="100%" border="1" cellpadding="0" cellspacing="0" bordercolor="#000000">

<tr><td bgcolor="#FFFFFF"><div align="center">Już głosowałeœ na ten film! Spróbuj póŸniej.</div></td></tr></table>";

    }

else

{

$glosmsg = "<table width="100%" border="1" cellpadding="0" cellspacing="0" bordercolor="#000000">

<tr><td bgcolor="#FFFFFF"><div align="center">Dziękujemy za oddanie głosu ! Twoja ocena to: <strong>$ocena</strong>.</div></td></tr></table>";

$zapytanie = "UPDATE filmy SET suma=suma+$ocena, glosow=glosow+1 WHERE id='$film' ";

$wykonaj = mysql_query ($zapytanie);

    }

}

?>[/php]
MaxRipper
Wszystko już działa - dziękuję wszystkim za pomoc.. Problem rozwiązalem tak:

Kod
// Wysylanie ciacha od glosowania

if ($ocen == 'tak')

{

if($_COOKIE['film'.$film] == 1)

{ }

else

{

$cookievalue = '1';

setcookie('film'.$film, $cookievalue, time()+20);

// no i dalej dodaje do bazy :)

    }

}
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.