Avatar billede mpj86 Nybegynder
23. juni 2003 - 16:12 Der er 3 kommentarer og
1 løsning

Har en fejl i min kode

Hej

Kan bare ikke få dette til at virke 100% nogle der kan finde fejlen??

<?php
include('config.php');

$nick = $_GET['nick'];
$pass = $_GET['pass'];

if (empty($nick) OR empty($pass)) {
    Header('Location: index.php');
} else {
   
    $query=mysql_query("SELECT aktiv FROM brugere WHERE nick = '$nick' AND password = '$pass'") or die (mysql_error());
    while($row = mysql_fetch_array($query)) {
    if (mysql_num_rows($query) == '1') {
        echo 'Din profil er allerede aktivet';
    } else {
       
        $resultat=mysql_query("SELECT id FROM brugere WHERE nick = '$nick' AND password = '$pass'") or die (mysql_error());
        $row = mysql_fetch_array($resultat);
        $number=mysql_num_rows($resultat);
        if($number == 1)
    {

        mysql_query("UPDATE brugere SET aktiv = '1' WHERE nick = '$nick' AND password = '$pass'") or die (mysql_error());
        require_once('topbar.php');
        echo '<div align="center"><center><table border="0" width="744" cellspacing="0" cellpadding="3" style="border: 1px solid #000000"><tr><td width="100%" bgcolor="#B9E1FD">';
        echo 'Din profil er nu blevet aktivert <meta http-equiv="refresh" content="1;URL=\'login.php\'">';
        echo '</td></tr></table></center></div>';   
    }
    }   
    } else {
        echo 'Der er sket en fejl!';
    }
}
?>
Avatar billede ahv Nybegynder
23. juni 2003 - 16:28 #1
Du kan ikke lave en else på en while, prøv uden den ->

<?php
include("config.php");

$nick = $_GET['nick'];
$pass = $_GET['pass'];

if (empty($nick) || empty($pass)) {
    header('Location: index.php');
} else {
    $query=mysql_query("SELECT aktiv FROM brugere WHERE nick = '$nick' AND password = '$pass'") or die (mysql_error());
    while($row = mysql_fetch_array($query)) {
        if (mysql_num_rows($query) != 0) {
            echo 'Din profil er allerede aktivet';
        } else {
            $resultat = mysql_query("SELECT id FROM brugere WHERE nick = '$nick' AND password = '$pass'") or die (mysql_error());
            $row = mysql_fetch_array($resultat);
            $number = mysql_num_rows($resultat);
            if ($number == 1) {
                mysql_query("UPDATE brugere SET aktiv = '1' WHERE nick = '$nick' AND password = '$pass'") or die (mysql_error());
                include("topbar.php");
                echo '<div align="center"><center><table border="0" width="744" cellspacing="0" cellpadding="3" style="border: 1px solid #000000"><tr><td width="100%" bgcolor="#B9E1FD">';
                echo 'Din profil er nu blevet aktivert <meta http-equiv="refresh" content="1;URL=\'login.php\'">';
                echo '</td></tr></table></center></div>';   
            }
        }   
    }
}
?>
Avatar billede mpj86 Nybegynder
23. juni 2003 - 16:41 #2
Den dur næsten der er en fejl her:

  $query=mysql_query("SELECT aktiv FROM brugere WHERE nick = '$nick' AND password = '$pass'") or die (mysql_error());
    while($row = mysql_fetch_array($query)) {
        if (mysql_num_rows($query) != 0) {
            echo 'Din profil er allerede aktivet';
        }

Den skriver ikke "Din profil er allerede aktivet" selvom den er aktiv jeg har også prøvet med: if (mysql_num_rows($query) != 1) men det dur ikke.

Jeg har lavet det sådan at i feltet aktiv er der 0 = ikke aktiv og 1 = aktiv
Avatar billede ahv Nybegynder
23. juni 2003 - 16:59 #3
Prøv ->

if (empty($nick) || empty($pass)) {
    header('Location: index.php');
} else {
    $query=mysql_query("SELECT aktiv FROM brugere WHERE nick = '$nick' AND password = '$pass'") or die (mysql_error());
    $row = mysql_fetch_array($query);
    if ($row['aktiv'] == 1) {
            echo 'Din profil er allerede aktivet';
    } else {
        $resultat = mysql_query("SELECT id FROM brugere WHERE nick = '$nick' AND password = '$pass'") or die (mysql_error());
        $row = mysql_fetch_array($resultat);
        $number = mysql_num_rows($resultat);
        if ($number == 1) {
            mysql_query("UPDATE brugere SET aktiv = '1' WHERE nick = '$nick' AND password = '$pass'") or die (mysql_error());
            include("topbar.php");
            echo '<div align="center"><center><table border="0" width="744" cellspacing="0" cellpadding="3" style="border: 1px solid #000000"><tr><td width="100%" bgcolor="#B9E1FD">';
            echo 'Din profil er nu blevet aktivert <meta http-equiv="refresh" content="1;URL=\'login.php\'">';
            echo '</td></tr></table></center></div>';   
        }
    }   
}
Avatar billede mpj86 Nybegynder
23. juni 2003 - 17:15 #4
Det virker tak :)
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