Suchen
Inside Forum
Nützliche Links




 
phpforum.de bei Facebook
 
phpforum.de bei Twitter
 

Zurück   PHP Forum: phpforum.de > PHP > PHP

PHP Alles rund um PHP

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 09.05.2006, 10:05
nighty231282 nighty231282 ist offline
Besucher
 
Registriert seit: 24.04.2006
Ort: Hannover
Beiträge: 30
Standard

Guten Morgen!

Ich hab eine Loginmaske, aber wenn ich mich einloggen will, stimmen die Daten angeblich nicht und ich weiß einfach nicht warum.
Hier mal ein Teil des Codes:

PHP Quellcode:
function connect()
{
    $con= mysql_connect("localhost","spiderman","peter") or die ("Keine Verbindung moeglich");
     mysql_select_db('arachne',$con) or die("Die Datenbank existiert nicht");

}

function check_user($nachname, $passwort)
{
    $sql="SELECT ID
            FROM db_nutzer
            WHERE nachname='"
.$nachname."' AND passwort=MD5('".$passwort."')
    LIMIT 1"
;
    $result= mysql_query($sql) or die(mysql_error());
    if ( mysql_num_rows($result)==1)
    {
        $nachname=mysql_fetch_assoc($result);
        return $nachname[ID];
    }
    else
        return false;
}

function login($ID)
{
    $sql="UPDATE db_nutzer
    SET session_id='"
.session_id()."'
    WHERE ID="
.$ID;
     mysql_query($sql);
}

function logged_in()
{
    $sql="SELECT ID
    FROM db_nutzer
    WHERE session_id='"
.session_id()."'
    LIMIT 1"
;
    $result= mysql_query($sql);
      return ( mysql_num_rows($result)==1);
}

function logout()
{
    $sql="UPDATE db_nutzer
    SET session_id=NULL
    WHERE session_id='"
.session_id()."'";
     mysql_query($sql);
}

connect();
Sieht irgendjemand nen Fehler?
__________________
"Was wir aus unserem Leben gemacht haben,
läßt uns zu dem werden, was wir sind, wenn wir sterben.
Und alles, absolut alles, zählt"
Mit Zitat antworten
  #2  
Alt 09.05.2006, 10:12
DarkRose DarkRose ist offline
Engagierter Besucher
 
Registriert seit: 21.10.2005
Beiträge: 729
DarkRose eine Nachricht über ICQ schicken
Standard

1. gib dir die results der query aus und schau ob da die richtigen ergebnisse rauskommen
2. wenn das nich hilft gib dir die querys aus und füg diese im phpMyAdmin ein
3. sachen wie "$nachname[ID]" sind falsch, da du hier eine Konstante mit dem namen ID nutzen willst, aber das glaub ich nich, ich denk du willst den index nutzen, dann muss es wie folgt lauten: $nachname["ID"]
4. das ganze LIMIT 1 kannste dir eigentlich sparen, da ja eh immer nur 1 ergebniss rauskommen DARF
5. solltest du vllt deine abfragen/überlegungen überarbeiten und nicht für den login den nachnamen nehmen, da dieser ja mehrfach vorkommen kann sondern nen username oder die eMailaddresse, und die bei der registration überprüfen ob sie schon vorhanden ist ...


ansonsten vllt noch
6.

Standard-Antwort:
Richtig debuggen
1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
2. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
3. An den Anfang des Scriptes schreibt man die Zeile: error_reporting(E_ALL);
4. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde (oder auch nicht).
5. Schritt 3 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
6. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
7. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
8. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.

Die Ausgaben per echo kann man sich ersparen, in dem man einen Debugger benutzt.
__________________
...
Mit Zitat antworten
  #3  
Alt 09.05.2006, 10:36
nighty231282 nighty231282 ist offline
Besucher
 
Registriert seit: 24.04.2006
Ort: Hannover
Beiträge: 30
Standard

error_reporting(E_ALL);
... kriege keinen Fehler.

Mit echo ausgeben lassen, ist alles ok so wies ist.

$nachname["ID"] ändert auch nix



Aber danke!
__________________
"Was wir aus unserem Leben gemacht haben,
läßt uns zu dem werden, was wir sind, wenn wir sterben.
Und alles, absolut alles, zählt"
Mit Zitat antworten
  #4  
Alt 10.05.2006, 11:48
nighty231282 nighty231282 ist offline
Besucher
 
Registriert seit: 24.04.2006
Ort: Hannover
Beiträge: 30
Standard

Das Einloggen funktioniert fast. Ich hab das Passwort in der Datenbank verschlüsselt und im PHP-Code steht:


PHP Quellcode:
$sql=  "SELECT id
          FROM db_nutzer
          WHERE nachname='"
.$nachname."' AND passwort=MD5('".$passwort."')";
Bekomme aber trotzdem noch die Meldung, dass die Einlogdaten nicht korrekt waren.

Wenn ich das ganze nicht verschlüssel funktionierts.
__________________
"Was wir aus unserem Leben gemacht haben,
läßt uns zu dem werden, was wir sind, wenn wir sterben.
Und alles, absolut alles, zählt"
Mit Zitat antworten
  #5  
Alt 10.05.2006, 13:17
nighty231282 nighty231282 ist offline
Besucher
 
Registriert seit: 24.04.2006
Ort: Hannover
Beiträge: 30
Standard

Auch wenn mir hier eh niemand antworten wird, aber ich muss ja in meinem Thema bleiben weil der eine tolle Admin sonst wieder nen Ausraster kriegt...

Kann mir jemand sagen wie ich Seiten vor Zugriffen schütze?

Wenn ich wo eingeloggt bin soll man Zugriff auf die Seiten haben, ansonsten nicht.. wie geht das?
__________________
"Was wir aus unserem Leben gemacht haben,
läßt uns zu dem werden, was wir sind, wenn wir sterben.
Und alles, absolut alles, zählt"
Mit Zitat antworten
  #6  
Alt 10.05.2006, 13:30
nighty231282 nighty231282 ist offline
Besucher
 
Registriert seit: 24.04.2006
Ort: Hannover
Beiträge: 30
Standard

Hallo? Weiß das echt niemand?
__________________
"Was wir aus unserem Leben gemacht haben,
läßt uns zu dem werden, was wir sind, wenn wir sterben.
Und alles, absolut alles, zählt"
Mit Zitat antworten
  #7  
Alt 10.05.2006, 13:38
johnpatcher johnpatcher ist offline
Vorbildlicher Helfer
 
Registriert seit: 27.12.2003
Beiträge: 16.553
Standard

MD5 ist keine Verschlüsselung, sondern eine Hashwertermittlung. Näheres findest du hier.

Außerdem solltest du dich geduldig zeigen, in 13 Minuten kannst du in einem Forum, in welchem jeder freiwillig hilft, keine Antwort erwarten ...

Wenn es ohne MD5 geht, kann es nur daran liegen, dass du irgendwie den String veränderst, bzw falsch abgespeicher hast...

Zur anderen Sache: Setze ein Cookie, bzw. starte eine Session, z.B. $_SESSION['login'] welche beim erfolgreichen Login auf 1 gesetzt wird. Jetzt musst du nur noch an die Datei, die geshützt werden soll, eine Bedingung erstellen, die überprüft, ob das auch auf 1 steht, wenn nicht, kannst du die Ausgabe z.B. mit
DOKU-VORLESE-SERVICE(TM)
void exit(int status)
Output a message and terminate the current script
verhindern.
Mit Zitat antworten


Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu
Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
htaccess anmeldung per php Sebi2006 PHP 6 20.09.2006 11:12
Anmeldung und Abmeldung cueneyt PHP 1 18.10.2005 18:07
Anmeldung für meine HP Blastsk8er Skriptsuche 1 21.08.2005 14:54
anmeldung etc. ? DaCheka PHP 2 20.03.2004 08:12
Anmeldung M4st3r PHP 3 12.10.2003 16:41


Alle Zeitangaben in WEZ +2. Es ist jetzt 01:56 Uhr.


Powered by vBulletin® Version 3.8.8 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Powered by NuWiki v1.3 RC1 Copyright ©2006-2007, NuHit, LLC