Top
Phpuniverset logo
 

INDHOLD

Forside

Script libary

Job annoncer

Tips og Tricks

Konkurrence

Downloads

Dokumenter

PHP bog shop

Forum

Online udviklere


ARTIKLER

CSS

Diverse

E-handel / annoncer

Grafik

Html

Internet

Javascript

Linux

PHP/MySQL

Programmer

Flash

Søgemaskiner

Windows

C / C++


INFO

Information

Annoncering

Kontakt

Forside Forum PHP, mysql Fejl med mit login

Fejl med mit login


 

Fejl med mit login

John  

Hej jeg begyndte at læse lidt her på hjemmesiden om PHP og fandt så ud af at PAWNO
scripting som jeg er meget avanceret i er næsten ligesom dette så jeg begyndte så småt at
lære noget her fra :) Jeg læste en guide med et simpelt login men nu har jeg mit problem
med at når brugeren logger ind vil jeg ha den skal checke om hans navn er Jzze eller
Johan, hvis de er så får de admin rettigheder og bliver smidt til en anden content end de
normale brugere.

Her får i delen hvor det sker, jeg får ingen fejl her men jeg bliver altid smidt til
echo($content); er det fordi den ligger først? jeg tror ikke mine else if( fungere her :(

if(empty($brugernavn) OR empty($password))
{
    echo($content2);
    }
    else
    {
    mysql_connect($mysql_host, $mysql_user, $mysql_pw);
    mysql_select_db($mysql_db);
    $result_user = mysql_query("select brugernavn from users where brugernavn =
'$brugernavn'")
    or die (mysql_error());
    $result_pw = mysql_query("select password from users where password = '$password'")
    or die (mysql_error());
    
    $array_user = mysql_fetch_array($result_user);
    $array_pw = mysql_fetch_array($result_pw);
    if($array_user['brugernavn'] == $brugernavn AND $array_pw['password'] == $password) {
        setcookie ("IBPRPcorrectlog", "", time() - 3600);
        setcookie("IBPRPcorrectlog",$brugernavn);
        echo($content);
        return; }
    else if($array_user['brugernavn'] == GuSo AND $array_pw['password'] == $password) {
        echo($contentadmin);
        return; }
    else if($array_user['brugernavn'] == Johndaone AND $array_pw['password'] == $password) {
        echo($contentadmin);
        return; }
    else {
        echo($content3);
        return; }

}
?>



Dato : 02.06.2010, 16:00

Visninger : 2275

Points : 0

 

Skal lige siges at brugernavnene er korrekte altså guso og johndaone, kan ikke ændre mit
indlæg :)


Dato : 02.06.2010, 16:01

Kommentar af : John  

 

Hej John,

Undskyld det forsinkede svar, men jeg er ikke herinde hver dag. Hvis du ikke har fået det
løst så læs her hvorfor den kode du har givet mig her ikke virker.
Først vil jeg gerne lige komme med nogen bemærkninger.

Du bør nok få mere styr på din kode så den er nemmere for mennesker at læse.
Der er en ting der bekymrer mig lidt ved din kode og det er at du bruger cookies i et
login script?? Nu ved jeg ikke hvilke funktioner de præcist har i dit script, men det er
meget farligt at bruge noget som cookies her da de kan manipuleres af alle.

Nåh, men det er sådan set en meget enkel ting der forhindrer dit script i at fungere
korrekt og det er i dine 2 "else if".
Lad mig vise dig den forkerte måde og den rigtige.

Din måde (forkert):
<?php
    
if($array_user['brugernavn'] == $brugernavn AND $array_pw['password'] == $password){
        
setcookie("IBPRPcorrectlog"""time() - 3600);
        
setcookie("IBPRPcorrectlog"$brugernavn);
        echo(
$content);
        return;
    }
    elseif(
$array_user['brugernavn'] == GuSo AND $array_pw['password'] == $password){
        echo(
$contentadmin);
        return;
    }
    elseif(
$array_user['brugernavn'] == Johndaone AND $array_pw['password'] == $password){
        echo(
$contentadmin);
        return;
    }
    else{
        echo(
$content3);
        return;
    }
?>

Den rigtige måde:
<?php
    
if($array_user['brugernavn'] == $brugernavn AND $array_pw['password'] == $password){
        
setcookie("IBPRPcorrectlog"""time() - 3600);
        
setcookie("IBPRPcorrectlog"$brugernavn);
        echo(
$content);
        return;
    }
    elseif(
$array_user['brugernavn'] == "GuSo" AND $array_pw['password'] == $password){
        echo(
$contentadmin);
        return;
    }
    elseif(
$array_user['brugernavn'] == "Johndaone" AND $array_pw['password'] == $password){
        echo(
$contentadmin);
        return;
    }
    else{
        echo(
$content3);
        return;
    }
?>

Kan du se forskellen?
På din måde så opfatter systemet ikke GuSo og Johndaone som strings hvilket altså betyder
at det istedet resultere i en nulværdi.
På den rigtige måde så bliver de opfattet som strings.

En sidste bemærkning.
Hvis både GuSo og Johndaone står i databasen så vil systemet sende dig til $content
ligemeget hvad for så vil din "if" jo være korrekt.

Håber mit svar vil løse dine problemer ellers er du jo velkommen til at skrive igen. :)


Dato : 10.06.2010, 02:43

Svar af : Nicklas Smed  




Login for at skrive et indlæg :



   Brugernavn

Password
 

+ Opret en ny Bruger, Klik her

+ Glemt brugernavn/password

 

Send Artikel/anmeldelse til: phpuni@phpuniverset.dk

Tilbage til oversigt

© Copyright 2000 Propelcom Phpuniverset's politik om personlige oplysninger, artikler & Koder Phpuniverset er optimeret til Mozilla 1024 * 768 Phpuniverset version: 3.0 beta
Webhost : Ignesco.dk

Bund