tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
6
ZUGRIFFE
1968
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    r3ddragon r3ddragon ist offline Mitglied Silber
    Registriert seit
    May 2007
    Beiträge
    64
    Ich hab ein LogIn script wo sich nur Admins anmelden dürfen.
    Nur weiß ich nicht genau wie ich die abfrage der Datenbank in der es einen Tabelle mit rights gibt (0 = Admin , 1 = user)

    hier der aktuelle Code

    PHP-Code:
    <?php
    //Session starten
    session_start ();
    include(
    '../db_config.php');

    // Datenbankverbindung aufbauen
    $connID mysql_connect ("$db_host""$db_user""$db_pass");
    if (!
    mysql_select_db ($db_name$connID))
    {
      die (
    "Keine Verbindung zur Datenbank");
    }
    $sql "SELECT * FROM ".$tb_name2." WHERE username='" .$_REQUEST["user"]. "' AND password= '" .$_REQUEST['pass']. "' AND rights < 1 "'";



    $result = mysql_query ($sql, $connID);

    if (mysql_num_rows ($result) > 0)
    {
    $data = mysql_fetch_array ($result);
    $_SESSION["user"] = $data["username"];
    $_SESSION["user_id"] = $data["rights"];



    header("Location: liste.php");
    } else

    header("Location: index.php?fehler=1");
    Fehler:

    Warning: Unexpected character in input: ''' (ASCII=39) state=1 in C:\xampp\htdocs\ticketsys\admin\login.php on line 12

    Parse error: syntax error, unexpected '"' in C:\xampp\htdocs\ticketsys\admin\login.php on line 12
     

  2. #2
    drucko drucko ist offline Mitglied Gold
    Registriert seit
    Sep 2007
    Beiträge
    244
    Am Ende deines SQL-Ausdrucks steht ein Hochkomma und ein Anführugszeichen, die sind da falsch!
     

  3. #3
    r3ddragon r3ddragon ist offline Mitglied Silber
    Registriert seit
    May 2007
    Beiträge
    64
    ok das hatte ich übersehen

    es kommt trotzdem
    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\ticketsys\admin\login.php on line 18

    Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\ticketsys\admin\login.php:18) in C:\xampp\htdocs\ticketsys\admin\login.php on line 29

    ---

    was muss in der abfrage stehen das der als 1. die user daten checkt und dann die rechte und wenn beides ok ist , wird der user weitergeleitet wird.
    Geändert von r3ddragon (16.11.07 um 21:22 Uhr)
     

  4. #4
    Avatar von Flex
    Flex Flex ist offline (aka Felix Jacobi)
    tutorials.de Moderator
    Registriert seit
    Nov 2001
    Ort
    Wuppertal
    Beiträge
    5.295
    Blog-Einträge
    65
    PHP-Code:
    $result mysql_query ($sql$connID) or die(mysql_error()); 
    So wird dir der MySQL Fehler ausgegeben.

    Weiterhin solltest du unbedingt mysql_real_escape_string() verwenden, um SQL Injektionen zu vermeiden.
     
    KIDS Kinderbetreuungsdienst
    Xing

    "When you play the game of thrones, you win or you die. There is no middle ground."
    by Cersei Lannister in "A Game Of Thrones"

  5. #5
    Nino14 Nino14 ist offline Mitglied Gold
    Registriert seit
    Feb 2007
    Beiträge
    118
    Heey ich würd einfach noch ne if abfrage mit einbauen. Also du ließt erst alles aus der Datenbank aus wo username und passswort stimmen und dann überprüfst du später mit ner if ob die rechte in ordnung sind und wenn ja denn halt weiterleiten.

    LG nino
     

  6. #6
    r3ddragon r3ddragon ist offline Mitglied Silber
    Registriert seit
    May 2007
    Beiträge
    64
    Zitat Zitat von Felix Jacobi Beitrag anzeigen
    PHP-Code:
    $result mysql_query ($sql$connID) or die(mysql_error()); 
    So wird dir der MySQL Fehler ausgegeben.

    Weiterhin solltest du unbedingt mysql_real_escape_string() verwenden, um SQL Injektionen zu vermeiden.
    danke werds berücksichtigen!!

    @Nino14

    hm gute idee versuch ich gleich
     

  7. #7
    sufijen sufijen ist offline Mitglied Gold
    Registriert seit
    May 2007
    Beiträge
    236
    ich glaube ein funktion wäre gut:

    in meinen anfangzeiten ohne klassen habe ich immer damit gearbeitet

    PHP-Code:
    function login($right=0)
    {

    $right = (int)$right;

    $username mysql_real_escape_string($_POST['user']);
    $password mysql_real_escape_string($_POST['pass']);

    $db->query('QUERY HIER');

    $result $db->fetch();

    if (isset(
    $_SESSION['user']) && isset($_SESSION['right']) &&  $_SESSION['right']>=$right)
    {
         
    // WENN SESSION da ist und rechte größer oder gleich sind
        
    return true;
    }
    elseif (isset(
    $result) && $username==$result[0] && $result[1]==md5($result[2].md5($password)) && $result[3]>=$right)
    {
         
    // Wenn Username Passt, Passwort Passt und Rechte mehr oder gleich sind
         // Hier Session setzen mit set_session($user, $pass)
         // Oder Cookie
         
    return true;
    }
    elseif (isset(
    $_COOKIE[...])
    {
         
    // etc
    }
    else
    {
         return 
    false;
    }

    da sind noch einige fehler dirn wie query unnütz gesetzt und so

    aufrufe wäre dann in jedem script ganz leicht:

    PHP-Code:
    if (login(0)) {} // Eingeloggt 
    Geändert von sufijen (16.11.07 um 22:09 Uhr)
     

Ähnliche Themen

  1. Ordner-Zugriffsberechtigung (User/Admin)
    Von NSR im Forum .NET Café
    Antworten: 0
    Letzter Beitrag: 26.10.09, 15:35
  2. User-Session als Admin beenden
    Von FrankWST im Forum PHP
    Antworten: 14
    Letzter Beitrag: 25.02.09, 15:42
  3. Unter Admin erstellt - als User bearbeitet
    Von Meldur im Forum .NET Datenverwaltung
    Antworten: 2
    Letzter Beitrag: 13.12.07, 00:09
  4. Admin andere Ausgabe als User
    Von PHP-Fan im Forum PHP
    Antworten: 4
    Letzter Beitrag: 16.09.05, 02:27
  5. admin-link nur bei admin-login?
    Von scrotum im Forum PHP
    Antworten: 5
    Letzter Beitrag: 20.09.03, 18:46