Fragen zu folgendem Lima-Tutorial:
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
action
benutzer
benutzername
datei
daten
einstellung
error
export
formular
fragen
gen
kombi
login
pa
pawort
problemchen
sinnen
speicher
tutorial
unsicher mal
-
http://www.lima-city.de/tutorials.php?m=show&id=1002
(von lucas9991)
Wo genau muss ich denn den folgenden Teil einf?gen?
// ###################### Datenbank Einstellung ######################
$db_host = "datenbankSERVER";
$db_user = "datenbankBENUTZERNAME";
$db_pw = "datenbankPASSWORT";
$db_name = "datenbankNAME";
// ##################### Zur Datenbank Connecten ######################
mysql_connect ("$db_host","$db_user", "$db_pw")or die ("Es konnte keine Verbindung zum MySql Server hergestellt werden!");
mysql_select_db("$db_name")or die ("Es konnte keine Verbindung zur Datenbank hergestellt werden!");
Irgendwie habe ich schon s?mtliche Stellen ausprobiert, aber der Code wird mir immer als einfacher Text im Browser angezeigt O.O Und das ist ja nicht Sinn der Sache ^^""""""""
Und dann habe ich noch eine Frage: Kann man eventuell noch zus?tzlichen Code einf?gen, der den Benutzern erm?glicht, ihre Daten selber einzutragen? Also quasi wie das Login-Formular, nur dass die Daten dann in die Datenbank eingetragen werden^^ Und, wie m?sste der Code dann aussehen?
Ich hoffe, ihr k?nnt mir weiterhelfen ^^""""" -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Das w?re der Code, wo user sich selbst anmelden k?nnten:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>Anmelden</title> </head> <body> <form name="form" method="post" action="<?php echo $PHP_SELF; ?>"> <p>User: <input type="text" name="user"> </p> <p>Passwort <input type="password" name="passwort"> </p> <p>Passwort wiederholen: <input type="password" name="passwort2"> </p> <p> <input type="submit" name="Submit" value="Senden"> </p> </form> <?php if(isset($_POST['Submit'])) { include('connect.php'); $sql = "SELECT * FROM login WHERE user = '".$_POST['user']."'"; mysql_query($sql); $how = mysql_affected_rows(); if($how == "1") { echo "Der von Ihnen angegebene Username existiert bereits. Bitte w?hlen Sie einen anderen aus."; } else { if($_POST['passwort'] == $_POST['passwort2']) { $sql2 = "INSERT INTO login (user, pass) VALUES ('".$_POST['user']."', '".$_POST['passwort']."')"; mysql_query($sql2); echo "Der Benutzer wurde erfolgreich erstellt"; } else ( echo "Die Passw?rter stimmen nicht ?berein"; } } } ?> </body> </html>
Nun erstellst du eine Datei mit dem Namen connect.php und schreibst in diese, diesen Code:
<?php // ###################### Datenbank Einstellung ###################### $db_host = "datenbankSERVER"; $db_user = "datenbankBENUTZERNAME"; $db_pw = "datenbankPASSWORT"; $db_name = "datenbankNAME"; // ##################### Zur Datenbank Connecten ###################### mysql_connect ("$db_host","$db_user", "$db_pw")or die ("Es konnte keine Verbindung zum MySql Server hergestellt werden!"); mysql_select_db("$db_name")or die ("Es konnte keine Verbindung zur Datenbank hergestellt werden!"); ?>
Nun musst du nur auf jeder Seite, die Verbindung zur Datenbank haben soll die Datei connect.php includen. Das machst du ganz am Anfang (wo der PHP Bereich beginnt. Wenn nicht in PHP Bereich, wird Text sichtbar ausgegeben, und nicht interpretiert) und zwar so: include('connect.php'); -
Danke f?r die Erkl?rung *gleich probiert hat* ^_^
Allerdings gibt mein Browser mit bei der anmelde-Seite einen Fehler aus:
Parse error: parse error, unexpected T_ECHO in /usr/export/www/vhosts/funnetwork/hosting/cat82/Team/anmelden.php on line 79
Zeile 79 ist bei mir
echo "Die Passw?rter stimmen nicht ?berein";
Und noch mal eine andere Frage:
Ich muss die connect.php doch auch auf den Seiten mit den Formularen inkludieren oder? Immerhin m?ssen die beiden Seiten ja auch eine Verbindung zur DB haben ... ^^""" -
Juppieee, jetzt funktioniert es ^_^ jetzt muss ich nur noch die Seiten sinnvoll zusammenbasteln *g*
Danke f?r eure Hilfe *auch PHP k?nnen will ^^"""* -
Sorry, dass ich nochmal nerve und sorry f?r das Doppelposting ... aber ich habe noch ein Problemchen:
Wo genau muss ich denn das einf?gen:
<?php if(isset($_COOKIE['user']) && isset($_COOKIE['pass'])) // Cookies gesetzt? { // Wenn ja dann speicher den Namen unter $user und das Passwort unter $pass $user = $_COOKIE['user']; $pass = $_COOKIE['pass']; $login_abfrage = mysql_query("SELECT * FROM login WHERE user='$user'"); $login_ergebnis = mysql_fetch_object($login_abfrage); $db_pass = $login_ergebnis->pass; // die db login ?ffnen wo user = dem im cookies angegebenen user und das dann passwort f?r den user unter $db_pass speichern if($db_pass==$pass) $eingeloggt = "true"; // wenn das Passwortaus der db mit dem Passwort aus dem Cookie ?bereinstimmt dann $eingeloggt auf true setzten else $eingeloggt = "false"; // andernfalls auf false } else $eingeloggt = "false"; // wenn keine cookies angegeben wurde $eingeloggt auf false setzten if($action=='einloggen') //wenn $action==einloggen, also das formular abgesendet wurde { if(isset($user_value) && isset($pass_value) && !empty($user_value)) // ?berpr?fe ob die eingabefelder ausge?llt wurden, wobei das passwort auch gar nichts sein kann { $login_abfrage = mysql_query("SELECT*FROM login WHERE user='$user_value'"); $login_ergebnis = mysql_fetch_object($login_abfrage); $db_pass = $login_ergebnis->pass; // die db login ?ffnen wo user = dem im cookies angegebenen user und das dann passwort f?r den user unter $db_pass speichern if($db_pass==$pass_value) // wenn das passwort aus der db mit dem aus dem formular ?bereinstimmt { $eingeloggt = "true"; setcookie("user", "$user_value", time() + (60*60*24*7*4)); // Cookie user setzen setcookie("pass", "$pass_value", time() + (60*60*24*7*4)); // Cookie pass setzen // $eingeloggt auf true setzten und die cookies user und pass f?r einen monat setzten } else $eingeloggt = "false"; // andernfalls $eingeloggt auf false setzten } else $eingeloggt = "false"; // andernfalls $eingeloggt auf false setzten } ?>
Muss ich daf?r noch eine neue Datei anlegen oder muss es in eine schon vorhandene?
Anfangs habe ich gedacht, es muss in meine index2.php, aber da bewirkt das leider auch nichts -.-"
H?lf?????!! ^^"""
Testlink: http://cat82.ca.funpic.de/Team
(bitte in die Adressleiste kopieren ^^"")
Beitrag ge?ndert am 21.09.2005 03:50 von blackangel- -
Irgendwie hab ich das Gef?hl, dass das Script geteilt werden muss ...
Ich hab aber selten Lust, gr??ere Quellcodes nach Sinn und Unsinn zu durchforsten. Deswegen ganz allgemein:
Der Teil, wo ein schon angemeldeter Besucher ?berpr?ft wird, ob seine Benutzername-Passwort-Kombi g?ltig ist, geh?rt in deine "index2.php", weil die ja die Seiten anzeigt, die nicht jeder sehen soll.
Allerdings halte ich das Script f?r h?chstgradig unsicher! (Mal sehen, vielleicht lockt ja diese Kritik den Tutorial-Autor aus seinem Versteck ... )
Denn man sollte nicht Benutzername und Passwort in Cookies auf jeder Seite vom Browser holen. Eine Login-Prozedur geht normalerweise anders. Da wird einmal Benutzername und Passwort abgefragt und gepr?ft. Wenn sie nicht zusammenpassen oder nicht existieren, wird der Besucher "rausgeschmissen".
Im Erfolgsfall wird eine Session-ID erzeugt, und diese wird dann von Seite zu Seite (mit Cookies oder per URL) weitergegeben.
Soll ich dir mal ein besseres Script zum Thema raussuchen?
MfG
alopex -
W?re wahrscheinlich nicht nur f?r blackangel interessant. F?nd ich nett, wenn du das machen k?nntest.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage