Suche auf lima-city
-
in: php/mysql login
geschrieben von spieleweb
Beispiel
Datei: login.php
<?php // ------------------------------------------------- session_start(); // ------------------------------------------------- ?> <html> <head> <title>Login Test</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="#FFFFFF" text="#000000"> <?php // ------------------------------------------------- if (!empty($_POST['uname'])) { $login_uname = trim($_POST['uname']); } else { $login_uname = ''; } if (!empty($_POST['upass'])) { $login_upass = trim($_POST['upass']); } else { $login_upass = ''; } // ------------------------------------------------- if (!empty($login_uname) && !empty($login_upass)) { // ------------------------------------------------- $con = mysql_connect("localhost", "BenutzerName" , "DeinPasswort") or die("ERROR ... mysql_connect"); $sel = mysql_select_db("datenbank_name", $con) or die ("ERROR ... mysql_select_db"); $login_uname = mysql_real_escape_string($login_uname); $login_upass = mysql_real_escape_string($login_upass); $abfrage1 = "SELECT username, passwort FROM login WHERE username='$username' LIMIT 1"; $ergebnis = mysql_query($abfrage1) or die ("ERROR ... mysql_query"); $row = mysql_fetch_object($ergebnis); // ------------------------------------------------- $logpass_hash = md5($login_upass); if($row->passwort == $logpass_hash) { $_SESSION["username"] = $login_uname; $_SESSION["loggedin"] = TRUE; header("Location: userbereich.php"); ## echo "<br> Login erfolgreich. ... <a href=\"userbereich.php\">Geschützer Bereich</a> \n"; } else { echo "<br> Benutzername und/oder Passwort waren falsch. <a href=\"login.php\">Login</a> \n"; } // ------------------------------------------------- } else { // ------------------------------------------------- ?> <br> <br> <br> <form name="formular1" method="post" action="login.php"> Username: <input type="text" name="uname" size="30" maxlength="100"> <br> Passwort: <input type="password" name="upass" size="30" maxlength="100"> <br> OK: <input type="submit" name="run" value="Login"> </form> <br> <br> <br> <?php // ------------------------------------------------- } // ------------------------------------------------- ?> </body> </html>
beachte .. wenn Du das Passwort bein Erstellen als md5() Hash gespeichert hast,
dann musst Du nach dem Login auch das User-Passwort als md5() Hash prüfen
siehe:
... $logpass_hash = md5($login_upass); if($row->passwort == $logpass_hash) { ...
wichtig ... beim Neu Erstellen (in DB speichern) solltest Du User-Eingaben
auch (immer) mit mysql_real_escape_string() behandeln, ,zur Sicherheit !!!
PS: ich habe in diesem Beispiel die Ziel-Seite nach erfolgreichem Login
nicht "geheim.php" sondern "userbereich.php" genannt
-
in: Ländererkennung geht nicht
geschrieben von spieleweb
such mal nicht dem genauen String, sondern ob ein Teil-String vorkommt
Beachte, viele Browser haben da auch beide Sprachen drin (de und en)
mein Wert von $_SERVER['HTTP_ACCEPT_LANGUAGE'] ist:
de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
Wenn Du nur 2 Sprachen hast,
also entweder Deutsch oder (alles andere) Englisch, dann in Etwa so
<?php $user_lang = $_SERVER['HTTP_ACCEPT_LANGUAGE']; if (stripos($user_lang, 'de') !== false) { $run_site = 'index_ger.html'; } else { $run_site = 'index_eng.html'; } header ('Location: '.$run_site); ?>
stripos() - Findet das erste Vorkommen eines Strings,
(unabhängig von Groß- und Kleinschreibung)
Gibt die Position als Integer zurück. (kann auch Position 0 sein)
Wenn needle nicht gefunden wird, dann den boolean-Wert FALSE
ob Du jetzt nach 'de' oder nach 'de-de' sucht bleibt Dir überlassen
dann kommt der User, der diesen Teilstring im User-Agent hat zur deutsche Seite
Edit:
oder die IP-Adresse des Besuchers für Ermittlung der Geo-Location nutzen
z.B. ... http://freegeoip.net ... oder http://www.utrace.de/api.php ... oder andere
(beachte, viele nicht kostenlos, andere haben Limits)