Avatar billede julemandenb Nybegynder
11. april 2010 - 14:03 Der er 4 kommentarer og
1 løsning

Tjek om brugeren er bannet

Hej (:

Jeg har nu sidde i godt 2 timer og prøvet at
få det til at virke. men uden held...
Mit ønske går på at jeg gerne skulle ha tjekket
om en bruger er banent. altså er feltet "bannet"
i tabellen udfyldt med 0 er man ikke bannet.
og er den fyldt ud med 1 er man bannet.

min kode ser således ud
_____________________________________________--

<?php
include "include/connect.php";
session_start();

if(isset($_POST['submit'])){
$user = $_POST['user'];
$pass = $_POST['pass'];
$ecrypted_pass = md5($pass);
$nyip = $_SERVER['REMOTE_ADDR'];
$date = date('d. M. Y');
$time = time();

$_POST    = ( isset ( $_POST )    ) ? @array_map("mysql_real_escape_string", $_POST)      : '';
$_GET      = ( isset ( $_GET )    ) ? @array_map("mysql_real_escape_string", $_GET)      : '';
$_FILES    = ( isset ( $_FILES )  ) ? @array_map("mysql_real_escape_string", $_FILES)    : '';
$_SESSION  = ( isset ( $_SESSION ) ) ? @array_map("mysql_real_escape_string", $_SESSION)  : '';
$_COOKIE  = ( isset ( $_COOKIE )  ) ? @array_map("mysql_real_escape_string", $_COOKIE)    : '';

$sql = mysql_query("SELECT * FROM brugere WHERE user = '$user' AND pass = '$ecrypted_pass'")or die(mysql_error());
$count = mysql_num_rows($sql);
$row = mysql_fetch_array($sql);

if($count == 1){
$_SESSION['login'] = "ok";
$_SESSION['user'] = $row['user'];

if($row['login'] == "ok"){

$_SESSION['login'] == "ok";
   
}
   
$update = mysql_query("UPDATE brugere SET online = 'Online', dato = '$date', nyip = '$nyip', rang = rang+1 WHERE user = '$_SESSION[user]' AND pass = '$ecrypted_pass'")or die(mysql_error());
    echo "<meta http-equiv='refresh' content='0;url=index.php?side=online/index' />";   
    }
    else
    {
    ?>
        Fejl i dit loginfors&oslash;g!
        <meta http-equiv='refresh' content='1;url=index.php?side=online/index&user=<? echo $user ?>' />
    <?php
    }
    }
    ?>

___________________________________________________

Mit formål er at hvis man er bannet skal man sendes retur til loginsiden hvor ved der gerne skulle stå at man er bannet og en begrundelse.

hvis man så ikke er bannet skal man self. have adgang

mit problem er at jeg ikke rigtig kan finde ud af
at bygge det ind i koden og håber på lidt hjælp her fra


Mange hilsner Mikkel :b
Avatar billede public2 Nybegynder
11. april 2010 - 14:21 #1
Et måde vil være at lave en funktion som du så kan benytte dig af på hver side eller på de sider du ønsker.

Uden helt at vide din opbygning, så er det jo et spørgsmål om at spørge: Hvis banned = 1 så gå til side login.php og skriv en meddelelse og hvis ikke, gør intet.

Noget i stil med:

if($row['banned'] == 1) {
  header("Location: login.php?msg=banned");
}

To måder at skrive en besked på er at lave en specifik URL som du så opfanger. En anden måde er at have et array hvori du lægger din fejlmeddelelse ned i, og så udskriver den så frem at personen er banned.

Det er jo lidt på samme måde som du laver et "er logget ind" check på sider der er beskyttede.
Avatar billede g1mzee Nybegynder
11. april 2010 - 15:57 #2
ey, måske til offtopic:
Men hvordan kan det være at du først laver
$user = $_POST['user'];
og efter laver du
$_POST    = ( isset ( $_POST )    ) ? @array_map("mysql_real_escape_string", $_POST)      : '';

det vil sige at du slet ikke for mysql_real_escape_string på din $user. Så det du laver med post er total overflødigt :).
Avatar billede julemandenb Nybegynder
17. april 2010 - 17:36 #3
SMider i begge ikke lige et svar? :D
Avatar billede public2 Nybegynder
19. april 2010 - 11:42 #4
Jo, gerne, men fik du løst problemet??
Avatar billede julemandenb Nybegynder
16. januar 2011 - 10:12 #5
Ja. Men lavede det lidt anderledes :)
Men tak for hjælpen
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