05. oktober 2011 - 11:49
Der er
11 kommentarer og 1 løsning
fejl i if else sætning ??
Hej Eksperter jeg kan ikke finde fejlen i denne script jeg har lavet en afstemning hvor man kan vælge en billed men man skal kun kunne stemme en gang og til det bruger jeg ip adresse som er $xx men når jeg tjekker om den ip er brugt så fortsætter den bare til det der står efter else så man kan stemme igen herunder er hele koden <?php session_start(); $xx=$_SERVER['REMOTE_ADDR']; $con = mysql_connect("xxxxxx","xxxxxxx","xxxxxxx"); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("xxxxxxx", $con); $result = mysql_query("SELECT * FROM fotokonkurrence"); while($row = mysql_fetch_array($result)) if ($row['ip']==$xx) { header("Location:Tak.html"); mysql_close($con); exit; } else { $_SESSION['views']=1; include("billedviser.php"); } mysql_close($con); ?>
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
05. oktober 2011 - 12:27
#1
prøv at udskriv $row['ip'] og $xx for at se om der ER ens
05. oktober 2011 - 12:35
#2
Jeg mener du mangler start- og slutklammer til din while løkke. while($row = mysql_fetch_array($result)){ if ($row['ip']==$xx) { header("Location:Tak.html"); mysql_close($con); exit; } else { $_SESSION['views']=1; include("billedviser.php"); }}
05. oktober 2011 - 12:44
#3
#1 har jeg prøvet de er ens #2 har prøvet at sætte dem ind men den fortsætter stadig til det efter else
05. oktober 2011 - 13:10
#4
Hvad med at prøve det her: Har skrevet det lidt om.. Det kan være at det hjælper :) [code] <?php session_start(); $remoteAdress=$_SERVER['REMOTE_ADDR']; $con = mysql_connect("xxxxxx","xxxxxxx","xxxxxxx"); mysql_select_db("xxxxxxx", $con); $duBlokeret = false; $result = mysql_query("SELECT * FROM fotokonkurrence"); //loop through all rows returned by result echo "Din ip er ".$remoteAdress; while ($row = mysql_fetch_array($result)) { if ($remoteAdress = $row["ip"]) { $duBlokeret = true; } } if ($duBlokeret) { header("Location:Tak.html"); mysql_close($con); } else{ $_SESSION['views']=1; include("billedviser.php"); } mysql_close($con); [/code]
05. oktober 2011 - 13:10
#5
<?php session_start(); $remoteAdress=$_SERVER['REMOTE_ADDR']; $con = mysql_connect("xxxxxx","xxxxxxx","xxxxxxx"); mysql_select_db("xxxxxxx", $con); $duBlokeret = false; $result = mysql_query("SELECT * FROM fotokonkurrence"); //loop through all rows returned by result echo "Din ip er ".$remoteAdress; while ($row = mysql_fetch_array($result)) { if ($remoteAdress = $row["ip"]) { $duBlokeret = true; } } if ($duBlokeret) { header("Location:Tak.html"); mysql_close($con); } else{ $_SESSION['views']=1; include("billedviser.php"); } mysql_close($con);
05. oktober 2011 - 13:33
#6
splazz har ret. Konditionen "$row['ip']==$xx" bliver aldrig opfyldt. Måske problemer med det du rent faktisk har i DB? Når du kommer ned i else-delen skal du osse huske at INSERTe en rec med den nye ip. Muligvis gør du det i "billedviser.php", men det er ikke nemt at se.
05. oktober 2011 - 13:34
#7
ja nu virker det næsten den skriver din ip er og så ipadresse men den udfører ikke dette header("Location:Tak.html"); mysql_close($con); den stopper bare hvor den viser ipadresse skal der ikke være en php luk til sidst ??
05. oktober 2011 - 13:41
#8
gik lidt for stærkt <div> session_start(); $remoteAdress=$_SERVER['REMOTE_ADDR']; $con = mysql_connect("xxxxxx","xxxxxxx","xxxxxxx"); mysql_select_db("xxxxxxx", $con); $duBlokeret = false; $result = mysql_query("SELECT * FROM fotokonkurrence"); //loop through all rows returned by result echo "Din ip er ".$remoteAdress; while ($row = mysql_fetch_array($result)) { if ($remoteAdress == $row["ip"]) { $duBlokeret = true; } } if ($duBlokeret) { header("Location:Tak.html"); mysql_close($con); } else{ $_SESSION['views']=1; include("billedviser.php"); } mysql_close($con); ?> </div>
05. oktober 2011 - 13:41
#9
#6 de er ens og ipadressen bliver først lagt i db når de har stemt if ($row['ip']==$xx) betyder det ikke at hvis de er ens skal den udførere dette og hvis de ikke er ens skal den udføre else
05. oktober 2011 - 14:23
#10
-> #9 - jo, og derfor tror jeg heller ikke de er ens. du kan ikke kalde header efter der er skrevet til browseren...
05. oktober 2011 - 14:41
#11
Fandt en løsning Tak for hjælpen
05. oktober 2011 - 19:22
#12
selv tak, hvad var fejlen?
Vi tilbyder markedets bedste kurser inden for webudvikling