Avatar billede sonic_86 Nybegynder
14. april 2003 - 12:59 Der er 10 kommentarer og
1 løsning

Skal gøre noget hvis ip findes i tablen?

Hej
Når folk kommentere en scooter gemmer jeg der ip i en der hedder ip i table kommentar men hvordan laver jeg så den skriver "Du har stemt" hvis ip findes i tablen scooter?

Har prøvet med denne kode men kan ikke få den til at virke :(

$query=mysql_query("SELECT * FROM kommentar WHERE scooter_id = '$id' ORDER BY id DESC");
while($row = mysql_fetch_array($query)) {
if($_SERVER['REMOTE_ADDR'] != $row["ip"]) {
$vote = 'Du har ikke stemt!';
} else {
$no_vote = 'Du har stemt!';
}
}
Avatar billede hjochums Nybegynder
14. april 2003 - 13:07 #1
Hejsa

Hvad med at lave checket i SQL:
select count(*) FROM kommentar WHERE scooter_id = '$id' AND ip = '{$_SERVER['REMOTE_ADDR']}'

Hvis IP har stemt vil count(*) være > 0.

Måske løser det også dit problem..:=)
Avatar billede sonic_86 Nybegynder
14. april 2003 - 13:10 #2
Hmm jeg skal bruge det til at hvis man ikke har stemt skal den vise det her:

Jeg giver denne scooter: <select size="1" name="vote" style="background-color:#B9E1FD;">
  <option></option>
  <option>1</option>
  <option>2</option>
  <option>3</option>
  <option>4</option>
  <option>5</option>
  <option>6</option>
  <option>7</option>
  <option>8</option>
  <option>9</option>
  <option>10</option>
</select>

og hvis man har stem skal den ikke vise noget
Avatar billede avminarm Juniormester
14. april 2003 - 13:13 #3
sådan her:
$query=mysql_query("SELECT * FROM kommentar WHERE scooter_id = '$_SERVER['REMOTE_ADDR'] ' ORDER BY id DESC");
if (mysql_num_rows($query) == "0"){
  echo "du har IKKE stemt";
}else{
  echo "du har allerede stemt";
}
Avatar billede avminarm Juniormester
14. april 2003 - 13:20 #4
du kan evt. stryge ORDER BY id DESC - det er ikke nødvendigt
Avatar billede erikjacobsen Ekspert
14. april 2003 - 13:21 #5
Det der med IP-nummer... ved godt det er uretfærdigt?

Der kan være mange tusind mennesker bag samme IP (virksomhed, skole)
Kun én kan stemme - de andre bliver afvist.

Folk der ringer op med modem får typisk en ny IP-adresse hver
gang (næsten) - de kan stemme flere gange.

Jeg har så til gengæld ikke nogen god løsning til problemet om
at ingen må stemme flere gange. Det findes li'som ikke.
Avatar billede avminarm Juniormester
14. april 2003 - 13:24 #6
Man kan bruge cookie, men det forudsætter at brugeren har slået dem til - eller sessions - så kan der ikke stemmes i samme browservindue 2 gange
Avatar billede erikjacobsen Ekspert
14. april 2003 - 13:27 #7
Og det kan også nemt omgås ... så der er ingen god løsning
Avatar billede Slettet bruger
14. april 2003 - 13:29 #8
IL sessions... kan godt hjælpe dig med dem, hvis det er hvad du vælger. Enig i at ip er en dårlig ide. vi har hjemme hos mig 5 pcer på en fast ip. på min skole har vi omkring 150!
Avatar billede sonic_86 Nybegynder
14. april 2003 - 13:30 #9
Den bedste måde jeg kan se er via man skal være en bruger for at stemme.

Men håbede bare at der var en nemmere måde.
Avatar billede avminarm Juniormester
14. april 2003 - 13:36 #10
Du kan evt. sætte en tidsbegrænsning på IP-blokeringen - så ma ikke kan stemme i 10 minutter efter en eller anden har stemt - det kunne være en kompromis løsning
Avatar billede sonic_86 Nybegynder
14. april 2003 - 13:50 #11
Tak for hjælpen jeg lukker tror jeg laver login system..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester