[php] Sonda

Języki, których efekty są wykonywane po stronie serwera. PHP, ASP czy CGI w połączeniu z bazami danych SQL dają niezwykłe możliwości budowy i zarządzania stron WWW. Tu zadajemy pytania oraz demonstrujemy kod, z którym mamy problem.
TRACK
Posty: 13
Rejestracja: ndz sie 10, 2003 7:49 pm

[php] Sonda

Post autor: TRACK »

Chce zrobic sonda na swojej stronie. Nie zalezy ile bedzie odpowiedzi, bo zasada bedzie taka sama. Wiem jak sa zrobic, wiem jak wyswietlac wyniki itd. Problem jest taki. Chce aby sonda autoamtycznie przed wyswietleniem ankiety sprawdzaja czy dzisiaj juz ta osoba glosowala. Aby to zrobic pobiera aktualny adres IP i sprawdza czy takowy znajduje sie juz w bazie. Jesli tak sprawdza jaki mamy dzisiaj dzien i porownuje go z tym ktory jest zapisany w bazie obok adresu IP. Niestety kod jaki probowalem zrobic nie chcial dzialac poprawnie.

Kod: Zaznacz cały

$ip_now = $REMOTE_ADDR;
$dzisiaj = getdate(); 
$dzis   = $dzisiaj['mday']; 
				
$sql = mysql_connect($host, $user, $password);
$select = mysql_select_db($base_name);
				
$ask = "SELECT * FROM sms_sonda_1";
$do = mysql_query($ask);
while($pole = mysql_fetch_array($do))
{
   if($pole[ip_adres] == $ip_now)
   {
      $sonda = "znaleziono.";
   }
}
Niestety jak jest taki kod to w momecie jesli znajdzie adres wtedy wartosc $sonda = znaleziono, ale petla wykonuje sie dalej i nastepnym razem juz nie znajduje. Co robic? Macie jakis pomysl.

Pozdrawiam...
the_foe
Przelotem
Przelotem
Posty: 295
Rejestracja: pt sty 31, 2003 12:53 pm
Lokalizacja: Wałbrzych
Kontakt:

Re: [php] Sonda

Post autor: the_foe »

lepij zapisz to tak:

Kod: Zaznacz cały

$sql = mysql_connect($host, $user, $password); 
$select = mysql_select_db($base_name); 
             
$ask = "SELECT * FROM sms_sonda_1 WHERE ip_adres='$ip_now'"; 
$do = mysql_query($ask); 
$no_rows=mysql_num_rows($do);
if ($no_rows!=0){
$sonda = "znaleziono."; 
}else{
$sonda = "nie znaleziono.";
}
Wojciech Jurewicz
Przelotem
Przelotem
Posty: 274
Rejestracja: wt lip 22, 2003 11:29 pm
Lokalizacja: Mazury
Kontakt:

Re: [php] Sonda

Post autor: Wojciech Jurewicz »

Powinieneś zapisywać do bazy ip oraz znacznik czasu unixa a następnie sprawdzać czy dany ip (aktualnie głosujący) ma znacznik większy oczas jednej doby, w ten sposób uniemożliwisz głosowanie w ciągu jednej doby więcej niż jeden raz. Innym sposobem może być zapisywanie daty i sprawdzanie czy nr dnia jestwiększy czy taki sam.

A co do twojego kodu, to linijka:

Kod: Zaznacz cały

   if($pole[ip_adres] == $ip_now)
powinna chyba wyglądać tak:

Kod: Zaznacz cały

   if($pole['ip_adres'] == $ip_now)
TRACK
Posty: 13
Rejestracja: ndz sie 10, 2003 7:49 pm

Re: [php] Sonda

Post autor: TRACK »

Juz sobie sam poradzilem, ale dzieki za odpowiedzi :)
ODPOWIEDZ