HILFE: Login Bereich & Verlinkung

Dieses Thema im Forum "Webentwicklung" wurde erstellt von [:v!r:]fla$h0r--, 14. Oktober 2005 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 14. Oktober 2005
    Hallo Leute...^^ mal wieder habe ich ein neues Problem...
    Ich habe ein Login Script von einem Tutorial nachgebastelt und das scheint auch so zu funktionieren...leider steht dort beschrieben, dass ich alle mien Links umschreiben muss.... also anstatt..

    <a href="test.php"> etc.
    zu
    <A HREF="test.php?UIN=<?php echo $UIN; ?>">

    so und leider geht das nicht... why?
    wenn ich über nen link klicke zeigt der dann nur

    "http:/meine-seite/test.php?UIN=" an

    was mache ich falsch muss ich noch irgentein befehl in die datenbank machen oder warum nimmt der den php befehl nicht so entgegen?

    pls um help
     
  2. 14. Oktober 2005
    sieht aus als müsste in die seite noch irgentwas eingebaut oder includet werden , gib doch mal den link zu dem tut, das würde uns helfen

    MFG Inu
     
  3. 14. Oktober 2005
    sicher das die variable existiert ?
    hast du sie in einer funktion drin ? wenn ja dann musst du sie global machen
    denn sonst kann se auch nich aufgerufen werden
     
  4. 14. Oktober 2005
    ja also ich denke auch das da irgentwas fehlt... leider weis ich nicht was..in dem tut wurde das auch nicht geschrieben...

    das tut finde ich jetzt auf anhieb nicht mehr... ich werde gleich mal looken aber hier schonmal der codes die ich habe:

    mysql:
    Code:
    ## Login Script
    CREATE TABLE user (
     usr CHAR(10) NOT NULL PRIMARY KEY,
     pwd CHAR(28) NOT NULL
    );
    # hier koennen weitere Benutzer eingerichtet werden - nach dem gleichen Schema
    INSERT INTO user (usr,pwd) VALUES ('test',PASSWORD('test'));
    
    CREATE TABLE login (
     usr CHAR(10) NOT NULL PRIMARY KEY,
     uin CHAR(32) NOT NULL,
     expire INT NOT NULL,
     ip CHAR(15),
     browser CHAR(50),
     UNIQUE (uin)
    );
    

    login.php
    Code:
    <?php_track_vars?>
    <?php
    
     if(isset($EXPIRE)) {
     /* */
     $USR = $HTTP_POST_VARS['USR'];
     $PWD = $HTTP_POST_VARS['PWD'];
     $USER = $USR;
     if(isset($USR) || isset($PWD)) {
     /* Wenn Benutzername oder Password eingegeben wurden, pruefe ob USER-PASSWORD-Kombination existiert und zeige Fehlermeldung an wenn nicht */
     $result = mysql_query("SELECT usr FROM user WHERE usr='".addslashes($USR)."' && pwd=PASSWORD('".addslashes($PWD)."')") or error(__LINE__,__FILE__,"Konnte Datenbank nich nach angemeldeten Benutzern durchsuchen",mysql_error());
     if(mysql_num_rows($result) == 0) {
     echo "Login inkorrekt - <A HREF=\"$PHP_SELF\">zur&uuml;ck</A>";
     exit;
     }
    
     /* Berechne neue eindeutige UIN */
     srand((double)microtime()*1000000);
     $UIN = md5(uniqid(rand()));
    
     /* Loesche bisherige Eintraege vom User in der Tabelle login */
     mysql_query("DELETE FROM login WHERE usr='$USR'") or error(__LINE__,__FILE__,"Konnte vorheriges Login nicht l&ouml;schen",mysql_error());
    
     /* Fuege neuen Eintrag mit den Daten (User,UIN,Expire,IP,Browser) hinzu */
     mysql_query("INSERT INTO login (usr,uin,expire,ip,browser) VALUES ('$USR','$UIN','$EXPIRE','$IP','$BROWSER')") or error(__LINE__,__FILE__,"Konne Benutzer nicht in Datenbank anmelden",mysql_error());
    
     /* Entferne das eingegebene Password aus dem Speicher */
     unset($PWD);
     } else {
     /* Wenn kein Benutzername oder Passwort eingegeben wurden, zeige entsprechendes Formular an */
     echo "<TABLE><FORM METHOD=\"POST\" ACTION=\"$PHP_SELF\">";
     echo "<TR><TD>User:</TD><TD><INPUT NAME=\"USR\"></TD></TR>";
     echo "<TR><TD>Passwort:</TD><TD><INPUT TYPE=\"password\" NAME=\"PWD\"></TD></TR>";
     echo "<TR><TD></TD><TD><INPUT TYPE=\"submit\" VALUE=\"LogIn\"></TD></TR>";
     echo "</FORM></TABLE>";
     exit;
     }
     } else {
     die("<br><b>Diese Datei darf nicht direkt Aufgerufen werden.</b> Sie wird nur von der Datei login_check.php3 aufgerufen. Bitte befolgen Sie die Installations-Anleitung<br>");
     }
    ?>
    

    login_check.php
    Code:
    <?php
     /* Hier muessen die Datenbank-Server-Daten eingetragen werden! */
     $db_server = "localhost"; /* Server, meistens localhost */
     $db_user = "XXX"; /* Benutzername fuer Datenbank */
     $db_passwd = "XXX"; /* Password fuer Datenbank */
     $db_name = "XXX"; /* Name der Datenbank */
    
     function error($line,$file,$str,$mysql_err="") {
     $str = "<b>Fehler in Zeile ".$line." in ".$file.":</b> ".$str;
     if($mysql_err) $str .= " - <b>MySQL meldet:</b> ".$mysql_err;
     die("<br>".$str."<br>");
     }
    
     /* setzte die Gueltigkeitszeit auf eine halbe Stunde ab jetzt */
     $EXPIRE = time() + 60*30;
    
     /* lese IP-Adresse aus */
     $IP = $REMOTE_ADDR;
    
     /* Browser-Kennung wird ausgelesen und auf 50 Zeichen gekuerzt */
     $BROWSER = addslashes(substr($HTTP_USER_AGENT,-50));
    
     /* Verbindung zum Datenbank-Server */
     $db = @mysql_pconnect($db_server,$db_user,$db_passwd) or error(__LINE__,__FILE__,"Verbindung zur Datenbank fehlgeschlagen: $db_user@$db_server");
    
     /* Waehle Datenbank */
     mysql_select_db($db_name,$db) or error(__LINE__,__FILE__,"Konnte Datenbank nicht ausw&auml;hlen: ".$db_name);
    
     /* Loesche abgelaufene Eintraege */
     mysql_query("DELETE FROM login WHERE expire<".time()) or error(__LINE__,__FILE__,"Konnte alte Eintr&auml;ge nicht l&ouml;schen",mysql_error());
    
     /* Pruefe ob ein Eintrag mit der UIN, IP und Browser des Surfers vorliegt */
     $result = mysql_query("SELECT usr FROM login WHERE uin='".addslashes($UIN)."' && ip='$IP' && browser='$BROWSER'") or error(__LINE__,__FILE__,"Konnte nicht nach eingeloggten Benutzern suchen",mysql_error());
     if(mysql_num_rows($result) == 0) {
    
     /* Wenn nicht, fuehre Login-Script aus */
     include("login.php3");
     } else {
    
     /* Wenn ja, dann lese den Benutzernamen aus */
     $USER = mysql_result($result,0,0) or error(__LINE__,__FILE__,"Konnte keine Benutzerdaten lesen",mysql_error());
    
     /* Erhoehe die Gueltigkeit des Logins */
     mysql_query("UPDATE login SET expire='$EXPIRE' WHERE usr='$USER'") or error(__LINE__,__FILE__,"Login-Informationen nicht aktualisieren",mysql_error());
    
     /* Hier können weitere Infos aus der Tabelle "user" ausgelesen werden */
     }
    
     /* Entferne Benutzereinstellungen (s.o.) */
     unset($db_server); unset($db_user); unset($db_passwd); unset($db_name);
    ?>
    
    natürlich habe ich das alles angepasst für die datenbank...

    im tut wurde angegeben, dass ich ein befehl brauche, den ich in jeder datei ganz oben einfügen sollte, die ich schützen wollte und halt, dass jeder link so aussehen muss wie ich oben schon beschrieben habe...kA ob der quellcode euch jetzt weiterbringt ich werde mal ebend suchen das tut wieder zu finden
     
  5. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.