Gå til innhold

problemer med IF settning


Anbefalte innlegg

Hei, jeg har noen problemer med en if settning, og legger inn koden her etter en time med prøving!

Klikk for å se/fjerne innholdet nedenfor

PHP

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>Untitled Document</title>

</head>

 

<body>

<?php

$db = mysql_connect("localhost","user","pass");

mysql_select_db("rank",$db) or die(mysql_error());

$sql = "select * from user WHERE userID ='".$_GET["id"]."'";

$result = mysql_query($sql,$db) or die(mysql_error());

while($row = mysql_fetch_array($result)){

 

}

?>

<?php

echo $rank_level = $row["rank_level"];

echo $rank = $row["rank"];

if ($rank_level == $rank)

 

   echo "du har fucka opp heile driten!";

 

else

 

   echo "Din ip er ikke autorisert til admin systemet.";

 

 

 

?>

</body>

</html>

Den skriver ut "Du har fucka opp heile driten!" uansett om rank_level og rank ikke er like...

Håper dere kan hjelpe meg...

 

Fredrik-

Endret av Microsoftbruker
Lenke til kommentar
Videoannonse
Annonse
Hei, jeg har noen problemer med en if settning, og legger inn koden her etter en time med prøving!

Klikk for å se/fjerne innholdet nedenfor

PHP

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>Untitled Document</title>

</head>

 

<body>

<?php

$db mysql_connect("localhost","user","pass");

mysql_select_db("rank",$db) or die(mysql_error());

$sql "select * from user WHERE userID ='".$_GET["id"]."'";

$result mysql_query($sql,$db) or die(mysql_error());

while($row mysql_fetch_array($result)){

 

}

?>

<?php

echo $rank_level $row["rank_level"];

echo $rank $row["rank"];

if ($rank_level == $rank)

 

 echo "du har fucka opp heile driten!";

 

else

 

 echo "Din ip er ikke autorisert til admin systemet.";

 

 

 

?>

</body>

</html>

Den skriver ut "Du har fucka opp heile driten!" uansett om rank_level og rank ikke er like...

Håper dere kan hjelpe meg...

 

Fredrik-

9497453[/snapback]

Her var det mye rart.

 

SELECT * FROM .... bør ikke brukes med mindre du trenger ABSOLUTT alle radene. Bruker du * må SQL kjøre en egen spørring for å finne ut hvilke felter du har i tabellen din.

 

Skal du bruke metriser(array) i en streng, putt klammer ({..}) rundt det.

$sql = "select en, to, tre from user WHERE userID ='{$_GET['id']}'";

 

Hva ønsker du å oppnå med en tom while-løkke? Ingenting skjer om du ikke utfører kode inni while().

Iom at du bare skal ha en rad, hiv på "LIMIT 1" på slutten av spørringen, og bruk "$row = mysql_fetch_assoc( $result );".

 

Du kan ikke tilegne verdier i en echo.

echo $foo = $bar; //fungerer meget dårlig

 

Nøkklene til et array skal ha enkelfnutter rundt, ikke dobbel.

$_GET['id'] // Riktig
$_GET["id"] // Galt 
$_GET[id] // Galt

 

Og hvorfor sammeligne to verdier fra brukerens rad? Sett en fast verdi på "adminrank", og sammenlign denne med ranken/gruppen til brukeren.

Lenke til kommentar

jeg har en to rader på databasen

 

"rank_site" og

"rank_level"

 

Disse radene skjekkes opp mot

"rank" på bruker tabellen

 

Hvis "rank_level" er det samme som "rank" så

viser den "rank_site" som er tilordnet den ranken.

Men jeg får det ikke helt til å funke, det funker bare med en side

altså hvis bruker "1" har rank 15 så vises den siden som rank 15 skal vise...

Men bruker "2" har rank 12 men da skriver den ut "Du har ikke tilgang til siden"

jeg selvsagt laget en annen side som skal fungere på rank "12"...

sitter på jobb PC-en, så jeg får ikke publisert den koden jeg har nå..

Skal ordne det litt senere idag..

Lenke til kommentar

For det første, en liten grunnregel, ikke post hele dokumentet, kun koden som er relevant.

 

1. Når du bruker echo $variable = $annen_variabel blir det bare tøv

2. Hvorfor kjører du en while løkke uten å gjøre noe?

3. Dropp while løkken, bruk heller list() (Definerer variabler av en array) og mysql_fetch_row() (Henter ut en array med innholdet av raden)

list($rank_level, $rank) = mysql_fetch_row($result);

Du må også endre queryet ditt..

$sql = "SELECT rank_level, rank FROM users WHERE userID ='$sikker_id'";

 

Når dette er gjort er det bare å kjøre løkken

if($rank_level === $rank)
 {
   echo "På nesse spiser vi rå sau.. føkked up! :)";
 }
else
 {
   echo "Du har ikke lov til å vise deg på Nesse med denne ip'en";
 }

 

 

Slik blir hele scriptet:

<?php
mysql_connect("localhost","user","pass");
mysql_select_db("rank"); //Ikke vis feilmeldiger til brukere av siden

$sikker_id = addslashes($_GET['id']); // SE: http://phpsec.org/projects/guide/

$sql    = "SELECT rank_level, rank FROM users WHERE userID ='$sikker_id'";
$result = mysql_query($sql,$db) or die(mysql_error());

list($rank_level, $rank) = mysql_fetch_row($result);

if($rank_level === $rank)
 {
   echo "På nesse spiser vi rå sau.. føkked up! :)";
 }
else
 {
   echo "Du har ikke lov til å vise deg på Nesse med denne ip'en";
 }

?>

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...