Avatar billede E-Gon Nybegynder
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);
?>
Avatar billede majbom Novice
05. oktober 2011 - 12:27 #1
prøv at udskriv $row['ip'] og $xx for at se om der ER ens
Avatar billede nonerd Nybegynder
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");
}
}
Avatar billede E-Gon Nybegynder
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
Avatar billede martiinkolle Nybegynder
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]
Avatar billede martiinkolle Nybegynder
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);
Avatar billede vagnk Juniormester
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.
Avatar billede E-Gon Nybegynder
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 ??
Avatar billede martiinkolle Nybegynder
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>
Avatar billede E-Gon Nybegynder
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
Avatar billede majbom Novice
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...
Avatar billede E-Gon Nybegynder
05. oktober 2011 - 14:41 #11
Fandt en løsning

Tak for hjælpen
Avatar billede majbom Novice
05. oktober 2011 - 19:22 #12
selv tak, hvad var fejlen?
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

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