tutorials.de Buch-Aktion 05/2012
Like Tree2Danke
  • 1 Beitrag von timestamp
  • 1 Beitrag von Raisch
ERLEDIGT
NEIN
ANTWORTEN
11
ZUGRIFFE
170
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Steffen1539
    Steffen1539 Steffen1539 ist offline Rookie
    Registriert seit
    Aug 2011
    Beiträge
    6
    Hallo liebe tutorials.de-Mitglieder.

    Ich habe eine kleine page für meine Feuerwehr gebastelt die so auch gut funktioniert.
    Mein Problem ist leider nur, dass wenn er sich anmeldet er sagt, dass es geklappt hat, aber wenn man auf einen Geschützten Bereich kommt die Fehlermeldung "Sie haben keinen Zugriff" erscheint. Ich glaub das hängt mit den sessions zusammen. Hier ist die Page: www.ff-hohenaspe.de (testlogin=test und test) AUsprobieren könnt ihr es nach dem login bei der Veranstaltungen*.php. Ich habe euch hier mal die wichtigsten cods aufgelistet bei denen es wohl hapern muss:
    Anmeldeformular (Das gleiche gibt es nocheinmal mit registname und adminname da ich nicht will das sich jeder auf meiner homepage registrieren kann wende ich es einmal für ein registrationspasswort und einmal für den adminbereich an. Bei der registrations funktioniert alles):
    PHP-Code:
    <html>
    <head><title> Memberlogin</title>
    <link rel="stylesheet" type="text/css" href="../stylessheet.css"/>
    </head>

    <body id="content">
    <?php
    session_start
    ();
    ?>
    <?php
    $verbindung 
    = require_once('mysql_config.php');
    $membername $_POST["membername"];
    $password md5($_POST["password"]);

    $abfrage "SELECT membername, password FROM member WHERE membername LIKE '$membername' LIMIT 1";
    $ergebnis mysql_query($abfrage);
    $row mysql_fetch_object($ergebnis);

    if(
    $row->password == $password)
        {
        
    $_SESSION["membername"] = $membername;
        
        echo 
    "<h5>Login erfolgreich!<br>(Weiterleitung in wenigen Sekunden)</h5>";
    print 
    '<meta target="_self" http-equiv="refresh" content="3;../allgemein/neues.php">';
        }
    else
        {
        echo 
    "<h4>Benutzername und/oder Passwort waren falsch!</h4><br>(Weiterleitung in wenigen Sekunden)";
    print 
    '<meta http-equiv="refresh" content="3;mlogin.html">';
        }

    ?> 
    </body>
    </html>
    und zum schluss die sicherheitsabfrage die ich neuerdings include (vorher gings auch schon nicht)
    PHP-Code:
    <?php 
    session_start
    (); 
    ?> 

    <?php 
    if(!isset($_SESSION["membername"])) 
       { 
       echo 
    '<h4>Sie haben keinen Zugriff! <br> (Weiterleitung in wenigen Sekunden)'
      print 
    '<meta http-equiv="refresh" content="3;../anmeldung/mlogin.html">';
       
       exit; 
       } 
    ?>
    Ich über google gesucht, ich habe schon neue tutorials studiert.. es will nicht..
    Ich bitte um vollste Verständnis, denn ich habe wenig Ahnung von PHP und dies muss langsam mal funktionieren da ich es der Feuerwehr bald präsentieren soll.
    Geändert von Steffen1539 (20.08.11 um 13:00 Uhr)
     

  2. #2
    Avatar von Raisch
    Raisch Raisch ist offline extraordinary bit
    Registriert seit
    Aug 2011
    Ort
    Berlin
    Beiträge
    333
    Hallo Steffen1539,

    da Du beim Link keine Session-ID übergibst und die Session keinen Cookie setzt, würde ich vermuten, dass es daran liegt.

    Test mal das (sollte in allen PHP-Dateien enthalten sein wo die Session gebraucht wird):
    PHP-Code:
    ini_set'session.use_cookies''on' ); 
    Desweiteren funktioniert die Weiterleitung nicht bzw. man wird auf eine nicht vorhandene Datei weitergeleitet.
    Änder kannst Du das mit einem absoluten Pfad:
    HTML-Code:
    <meta http-equiv="refresh" content="3;http://www.ff-hohenaspe.de/anmeldung/mlogin.html">
    Gruß
     

  3. #3
    Avatar von Steffen1539
    Steffen1539 Steffen1539 ist offline Rookie
    Registriert seit
    Aug 2011
    Beiträge
    6
    Ich probiere es gleich aus... und das mit der Weiterleitung ist mir eben auch aufgefallen aber danke dir
     

  4. #4
    Avatar von Steffen1539
    Steffen1539 Steffen1539 ist offline Rookie
    Registriert seit
    Aug 2011
    Beiträge
    6
    Wo genau müsste ich denn ini_set( 'session.use_cookies', 'on' ); eintragen? immer hinter dem session_start(); bzw vor dem wo er vergleicht?
     

  5. #5
    Avatar von Raisch
    Raisch Raisch ist offline extraordinary bit
    Registriert seit
    Aug 2011
    Ort
    Berlin
    Beiträge
    333
    Hallo Steffen1539,

    den Membernamen würde ich auch nicht unbedingt unbehandelt in den SQL-Query packen da dies Tür und Tor für SQL-Injection öffnet.

    Das LIKE in dem SQL-Query brauchst Du auch nicht da Du ja einen bestimmten Benutzer auswählen möchtest:
    PHP-Code:
    $abfrage "SELECT membername, password FROM member WHERE membername = '$behandeltermembername' LIMIT 1"
    Gruß

    ps: md5 gilt nicht mehr als sicher, schau dir mal z.B. sha oder bcrypt an
     

  6. #6
    Avatar von Raisch
    Raisch Raisch ist offline extraordinary bit
    Registriert seit
    Aug 2011
    Ort
    Berlin
    Beiträge
    333
    Zitat Zitat von Steffen1539 Beitrag anzeigen
    Wo genau müsste ich denn ini_set( 'session.use_cookies', 'on' ); eintragen? immer hinter dem session_start(); bzw vor dem wo er vergleicht?
    Am besten an den Anfang der Datei.
     

  7. #7
    Avatar von Steffen1539
    Steffen1539 Steffen1539 ist offline Rookie
    Registriert seit
    Aug 2011
    Beiträge
    6
    Wie mach ich das denn um den membernamen zu behandeln? EInfach deinen code so übernehmen oder was muss ich auserdem ändern? ich persönich würde nun nur die Variabble ändern also auch auf $behandeltermembername
     

  8. #8
    Avatar von Steffen1539
    Steffen1539 Steffen1539 ist offline Rookie
    Registriert seit
    Aug 2011
    Beiträge
    6
    ICh habe das jetzt alles so abgeändert:
    PHP-Code:
    <?php
    ini_set
    'session.use_cookies''on' );
    session_start(); 
    ?> 

    <?php 
    if(!isset($_SESSION["membername"])) 
       { 
       echo 
    '<h4>Sie haben keinen Zugriff! <br> (Weiterleitung in wenigen Sekunden)'
      print 
    '<meta http-equiv="refresh" content="3;../../anmeldung/mlogin.html">';
       
       exit; 
       } 
    ?>
    und
    PHP-Code:
    <?php
    ini_set
    'session.use_cookies''on' );
    ?>
    <html>
    <head><title> Title</title>
    <link rel="stylesheet" type="text/css" href="../stylessheet.css"/>
    </head>

    <body id="content">
    <?php
    session_start
    ();
     
    ?>
    <?php
    $verbindung 
    = require_once('mysql_config.php');
    $behandeltermembername $_POST["membername"];
    $password md5($_POST["password"]);

    $abfrage "SELECT membername, password FROM member WHERE membername = '$behandeltermembername' LIMIT 1"
    $ergebnis mysql_query($abfrage);
    $row mysql_fetch_object($ergebnis);

    if(
    $row->password == $password)
        {
        
    $_SESSION["membername"] = $behandeltermembername;
        
        echo 
    "<h5>Login erfolgreich!<br>(Weiterleitung in wenigen Sekunden)</h5>";
    print 
    '<meta target="_self" http-equiv="refresh" content="3;../allgemein/neues.php">';
        }
    else
        {
        echo 
    "<h4>Benutzername und/oder Passwort waren falsch!</h4><br>(Weiterleitung in wenigen Sekunden)";
    print 
    '<meta http-equiv="refresh" content="3;mlogin.html">';
        }

    ?> 
    </body>
    </html>
    es möchte aber immer noch nicht..
     

  9. #9
    Avatar von Raisch
    Raisch Raisch ist offline extraordinary bit
    Registriert seit
    Aug 2011
    Ort
    Berlin
    Beiträge
    333
    Hallo Steffen1539,

    Du kannst/solltest Postdaten welche Du in einem SQL-Query verwendest z.B. damit behandeln:
    http://php.net/manual/de/function.my...ape-string.php

    Du kannst z.B. auch mit regulären Ausdrücken auf unerwünschte Zeichen/Zeichenketten prüfen.

    Gruß

    Edit//
    Zum Thema Sessions in PHP kannst Du dir mal das hier anschauen:
    http://www.php.net/manual/de/book.session.php
    Geändert von Raisch (20.08.11 um 13:39 Uhr)
     

  10. #10
    Avatar von Steffen1539
    Steffen1539 Steffen1539 ist offline Rookie
    Registriert seit
    Aug 2011
    Beiträge
    6
    Ich habe sowas von keine Ahnung davon... ich verstehe es nicht.. Auf meiner Seite werden keine besonders wichtigen Daten sein. Also will ich einfach nur das dieser Login funktioniert. Die sicherheit ist mir momentan vollkommen egal..

    Bitte helf mir nur beim Hauptproblem.. oder ändere mir den Code so ab, wenn es dir wichtig ist. Hier ist dann die registrations.php..


    PHP-Code:
    <html>
    <head><title>regist</title>
    <link rel="stylesheet" type="text/css" href="../../stylessheet.css"/>
    </head>
    <body id="content">
    <?php
    include_once('../logincheck/rcheck.php')
    ?>
    <?php 
    $verbindung 
    = require_once('mysql_config.php');

    $membername $_POST["membername"];
    $vname $_POST["vname"];
    $nname $_POST["nname"];
    $password $_POST["password"];
    $password2 $_POST["password2"];
    $email $_POST["email"];

    if(
    $password != $password2 OR $membername == "" OR $vname == "" OR $nname == "" OR $password == "" OR $email == "")
        {
        echo 
    "<h4>Eingabefehler. Bitte alle Felder korekt ausfüllen.</h4>";
        print 
    '<meta http-equiv="refresh" content="3;regist.html">';
        exit;
        }
    $password md5($password);

    $result mysql_query("SELECT id FROM member WHERE membername LIKE '$membername'");
    $menge mysql_num_rows($result);

    if(
    $menge == 0)
        {
        
    $eintrag "INSERT INTO member (membername, vname, nname, password, email) VALUES ('$membername', '$vname', '$nname', '$password', '$email')";
        
    $eintragen mysql_query($eintrag);

        if(
    $eintragen == true)
            {
            echo 
    "<h5>Vielen Dank f&uuml;r deine Registrierung <b>$vname</b>! <br><br> Du ben&ouml;nitgst <b><u>keine</u></b> E-Mail-bestätigung!<br>(Weiterleitung in wenigen Sekunden)<h5>";
               print 
    '<meta http-equiv="refresh" content="8;../../allgemein/neues.php">';
            }
        else
            {
            echo 
    "<h4>Fehler beim Speichern der Daten!</h4>"
               print 
    '<meta http-equiv="refresh" content="3;regist.html">';
            }


        }

    else
        {
        echo 
    "<h4>Benutzername schon vorhanden!</h4>";
           print 
    '<meta http-equiv="refresh" content="3;regist.html">';
        }
    ?>
    </body>
    </html>
    Nochmals großen Dank das du mir hilfst.. ich hoffe das wir ds gemeinsam hin bekommen...
    Geändert von Steffen1539 (20.08.11 um 13:51 Uhr)
     

  11. #11
    Avatar von timestamp
    timestamp timestamp ist offline Mitglied Rubin
    Registriert seit
    May 2010
    Ort
    Marburg
    Beiträge
    1.479
    Zitat Zitat von Raisch Beitrag anzeigen
    ps: md5 gilt nicht mehr als sicher, schau dir mal z.B. sha oder bcrypt an
    "Nicht sicher" ist relativ. Für eine kleine Seite wie eine Feuerwehr Homepage kann man die Funktion ohne schlechtes Gewissen nutzen (notfalls noch mit einem Salt). Für groß angelegte Seiten sollte man aber tatsächlich auf andere Hashalgorithmen zurückgreifen.
    Steffen1539 bedankt sich. 
    Bei Problemen mit Codes, postet bitte den entsprechenden Codeausschnitt und setzt den in entsprechende Tags.
    ( [cpp] [/cpp] [css] [/css] [html] [/html] [java] [/java] [javascript] [/javascript] [php] [/php] [sql] [/sql] )
    "Funktioniert nicht" ist keine Fehlermeldung. Bitte eine genaue Fehlerbeschreibung und, wenn vorhanden, Fehlermeldungen posten.
    RegEx Tutorial
    PHP Funktionsreferenz

  12. #12
    Avatar von Raisch
    Raisch Raisch ist offline extraordinary bit
    Registriert seit
    Aug 2011
    Ort
    Berlin
    Beiträge
    333
    War ja auch nur ein kleiner Hinweis am Rande.
    Steffen1539 bedankt sich. 

Ähnliche Themen

  1. Personen auf eigener Homepage
    Von benija im Forum Flash Plattform
    Antworten: 6
    Letzter Beitrag: 30.09.08, 20:50
  2. Virus auf eigener Homepage
    Von Orbit im Forum PHP
    Antworten: 2
    Letzter Beitrag: 05.07.08, 10:58
  3. Login von eigener Homepage -> phpBB
    Von DaSuckOOr im Forum PHP
    Antworten: 3
    Letzter Beitrag: 11.04.07, 18:45
  4. Game-Infos auf eigener Homepage
    Von KILLSMAKER im Forum PHP
    Antworten: 6
    Letzter Beitrag: 04.02.06, 16:25

Stichworte