ERLEDIGT
NEIN
NEIN
ANTWORTEN
9
9
ZUGRIFFE
2136
2136
EMPFEHLEN
-
01.08.04 19:22 #1
Hi,
habe bei dem Tutorial [PHP/mySQL] Login-System mit Sessions bis jetzt alles verstanden! aber bei "2. Einfügen von Testbenutzern in die Datenbank" weiss ich nicht wo ich den tag einfügen soll bzw. wenn in eine php-datei wie ich sie benennen soll!
Bei den andrere steht das immer drüber wie man die datei nennen soll!
Hoffe das ihr mir helfen könnt! Vielleicht bin ich ja auch blind...
Gruss EchseKiutaGeändert von EchseKiuta (01.08.04 um 19:46 Uhr)
-
01.08.04 20:38 #2
kann mir nicht bitte iner helfen.....ich checks einfach nicht was ich mit dem php befehl machen muss! in die datenbank einfügen? ein php-dokument draus machen? Wenn mit welchem namen?
-
Soweit ich das bereurteilen kann ist der Name recht egal.
-
02.08.04 14:45 #4
Diese Datei dient nur dazu ein paar Beispieldatensätze in der Datenbank anzulegen um das Script testen zu können. Ich habe bei dem Tutorial bewusst alle weiteren Sachen wie Registrierung und Verwaltung der Daten weggelassen, da das dann nur noch ganz normale Datenbankanwendungen sind und nicht wirklich etwas mit dem Login zu tun haben.
Für dich ist es also egal wie du die Datei nennst ... du musst sie nur einmal auf deinem Webserver aufrufen und er trägt die Daten ein. Danach kannst du das Script testen und schauen ob es so funktioniert.
-
Hi zusammen,
mir gefällt das Session-Script.
Aber ein Problem habe ich nun, eine bestehende Usertabelle in die Logintabelle zu übertragen.
Der Code für das Anlegen von Benutzern wurde im TUT so beschrieben
PHP-Code:<?php
// Definition der Benutzer
$benutzer[0]["Nickname"] ="admin";
$benutzer[0]["Kennwort"] = "admin";
$benutzer[0]["Nachname"] = "Mustermann";
$benutzer[0]["Vorname"] = "Max";
$benutzer[1]["Nickname"] = "test";
$benutzer[1]["Kennwort"] = "abc";
$benutzer[1]["Nachname"] = "Kunze";
$benutzer[1]["Vorname"] = "Martin";
// Sie können an dieser Stelle beliebig viele Benutzer anlegen.
// Achten Sie dabei nur auf die Fortführung der Nummer.
// Aufbau der Datenbankverbindung
$connectionid = mysql_connect ("localhost", "root", "");
if (!mysql_select_db ("LoginSystem", $connectionid))
{
die ("Keine Verbindung zur Datenbank");
}
// Zuerst alle Datensätze löschen um keine Dopplungen zu bekommen.
mysql_query ("DELETE FROM benutzerdaten");
// Daten eintragen
while (list ($key, $value) = each ($benutzer))
{
// SQL-Anweisung erstellen
$sql = "INSERT INTO ".
"benutzerdaten (Nickname, Kennwort, Nachname, Vorname) ".
"VALUES ('".$value["Nickname"]."', '".
md5 ($value["Kennwort"])."', '".
$value["Nachname"]."', '".
$value["Vorname"]."')";
mysql_query ($sql);
if (mysql_affected_rows ($connectionid) > 0)
{
echo "Benutzer erfolgreich angelegt.<br>\n";
}
else
{
echo "Fehler beim Anlegen der Benutzer.<br>\n";
}
}
?>
Aber anstatt jeden User manuell einzugeben möchte ich das vorher mit einer Abfrage machen.
Hier mein nachweislich fehlerhafter Code
Mit was muss ich denn das X bei $benutzer[X] ändern?PHP-Code:<?php
// Definition der Benutzer
include("config.inc.php");
$db = mysql_connect ("$dbhost", "$dbusername", "$dbkennwort");
$res = mysql_db_query("usertabelle", "select * from mitglieder");
$username = mysql_result($res, 0,"username");
$kennwort = mysql_result($res, 0,"kennwort");
$nachnema = mysql_result($res, 0 "nachname");
$vorname = mysql_result($res, 0, "vorname");
$benutzer[X]["Nickname"] ="$username";
$benutzer[X]["Kennwort"] = "$kennwort";
$benutzer[X]["Nachname"] = "$nachname";
$benutzer[X]["Vorname"] = "$vorname";
// Sie können an dieser Stelle beliebig viele Benutzer anlegen.
// Achten Sie dabei nur auf die Fortführung der Nummer.
// Aufbau der Datenbankverbindung
include("config.inc.php");
$connectionid = mysql_connect ("$dbhost", "$dbusername", "$dbkennwort");
if (!mysql_select_db ("LoginSystem", $connectionid))
{
die ("Keine Verbindung zur Datenbank");
}
// Zuerst alle Datensätze löschen um keine Dopplungen zu bekommen.
mysql_query ("DELETE FROM benutzerdaten");
// Daten eintragen
while (list ($key, $value) = each ($benutzer))
{
// SQL-Anweisung erstellen
$sql = "INSERT INTO ".
"benutzerdaten (Nickname, Kennwort, Nachname, Vorname) ".
"VALUES ('".$value["Nickname"]."', '".
md5 ($value["Kennwort"])."', '".
$value["Nachname"]."', '".
$value["Vorname"]."')";
mysql_query ($sql);
if (mysql_affected_rows ($connectionid) > 0)
{
echo "Benutzer erfolgreich angelegt.<br>\n";
}
else
{
echo "Fehler beim Anlegen der Benutzer.<br>\n";
}
}
?>
Oder gibt es vielleicht auch einen einfacheren Weg?
Mit freundlichen Grüßen
[K@TooN
EDIT: hat sich erledigt - siehe hier http://www.tutorials.de/forum/showth...m+mit+SessionsGeändert von K@TooN (15.08.04 um 14:01 Uhr)
-
29.08.04 20:16 #6
- Registriert seit
- Mar 2004
- Beiträge
- 3
ich gebe euch ein tip und sage euch dieses tutorial nicht zu verwenden, da dieses loginsystem nicht sicher ist.
Die Parameter der sql-Abfrage werden nicht abgesichert.
Damit ist das SKript anfällig für Angriffe, wie unter http://www.dclp-faq.de/q/q-sql-injection.html beschrieben.
Ausserdem wird LIKE verwendet, aber das %-Zeichen wird nicht ausgefiltert. Damit kann ich nicht nur das Passwort eines Benutzers, sondern das aller gleichzeitig abtesten.
user: % ; Passwort: abcde && irgendein Benutzer hat dieses saublöde Passwort -> erfolgreiche Anmeldung.
Damit muss ich zwar immer noch eine brute-force-Attacke ausführen, aber mit reichlich viel größeren Chancen, da ich halt immer alle Benutzer gleichzeitig auf ein Passwort abteste.
Hoffe, dass der Autor dieses Tutorials dies einsieht und es verbessert.
MfG,
WasserDragoon.
-
n1 one
aber dafür gibs sessionsGeändert von SonicBe@m (30.08.04 um 10:58 Uhr)
Moep :)
-
30.08.04 10:53 #8Wieso hätte der User denn nicht die Möglichkeit sein PW selbst zu ändern? Man kann das PW doch trotz MD5 ändern. Hmm peil ich netOriginal geschrieben von SonicBe@m
n1 one
zum glück gibs auch leute die nicht an die gutmütigkeit der menschen denkt!
ich arbeite zwar eh nur mit md5 sprich der user hätte garkeine möglichkeit sein pw selbst zu ändern
aber gut ,D
-
Es gibt die methode dem user frei entscheiden zu lassen was für ein pw er will und es gibt die ein pw zu generieren
diese version unterbindet diese art von angriffe da der user wenn er ein neues pw bekommt es generiert wird
hier mal eins das auf ner ähnlichen basis aufbaut allerdings nicht die random pw version
PHP-Code:/* inc.sql.php */
<?
session_start();
require("inc.helper.php");
// Mysql
$db_host = "localhost";
$db_user = "";
$db_pass = "";
$db_database = "";
$conn = mysql_connect($db_host,$db_user,$db_pass) or die("verbindung wurde nicht hergestellt<br>".mysql_error());
mysql_select_db($db_database,$conn) or die("datenbank wurde nicht selektiert<br>".mysql_error());
$user_table = "`phpkit_user`";
if(!function_exists("check_login")){
function check_login(){
if(!$_SESSION['username']){
header("Location:login.php");
}
}
}
if(!function_exists("auth_user")){
function auth_user($form_username,$form_pass){
global $user_table;
$query = "SELECT user_name,user_pw,user_status FROM $user_table WHERE `user_name`='$form_username'";
$result = mysql_query($query);
$row = mysql_fetch_assoc($result);
if(count($row) < 1)
return false;
if($row['user_pw'] != md5($form_pass))
return false;
return $row['user_status'];
}
}
?>und die index.phpPHP-Code:/*login.php*/
<?
session_start();
include("inc.sql.php");
$expire = 60*60*24*30; // eine stunde
if($_COOKIE['auth']){
$value = unserialize(stripslashes($_COOKIE['auth']));
$_SESSION['username'] = $value[0];
$_SESSION['userstatus'] = $value[1];
header("Location: index.php");
}
if($_SESSION['username']){
header("Location: index.php");
}
if($_REQUEST['submit'] && $_REQUEST['username'] != "" && $_REQUEST['password'] != ""){
if($_SESSION['userstatus'] = auth_user($_REQUEST['username'],$_REQUEST['password'])){
$_SESSION['username'] = $_REQUEST['username'];
if($_REQUEST['autologin']){
$value = array($_SESSION['username'],$_SESSION['userstatus'],date("d.m.y - H:i:s",time()));
$value = serialize($value);
setcookie("auth",$value,time()+($expire));
header("Location: index.php");
}
}
header("Location: index.php");
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>todolist</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="default.css" rel="stylesheet" type="text/css">
</head>
<body>
<form method="post" name="userlogin">
<table width="230" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#000000">
<tr bgcolor="#DDDDDD">
<td colspan="2" class="title">
Userlogin
</td>
</tr>
<tr bgcolor="#EEEEEE">
<td width="80" bgcolor="#EEEEEE" class="label">
Username
</td>
<td>
<input type="text" name="username" class="field">
</td>
</tr>
<tr bgcolor="#EEEEEE">
<td class="label">
Password
</td>
<td>
<input type="password" name="password" class="field">
</td>
</tr>
<tr bgcolor="#EEEEEE">
<td class="label">
Autologin
</td>
<td>
<input type="checkbox" name="autologin" value="true">
</td>
</tr>
<tr align="center" bgcolor="#DDDDDD">
<td colspan="2">
<input type="submit" name="submit" value=" login ">
</td>
</tr>
</table>
</form>
</body>
</html>
und zu letzt die logout pagePHP-Code:/* index.php */
<?
require("inc.sql.php");
check_login();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>by SonicBe@m</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<table width="500" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#000000">
<tr>
<td colspan="2" class="title">
logged in as <?=$_SESSION['username']?>
</td>
</tr>
</table>
</body>
</html>
wundert euch nichtPHP-Code:/* logout.php */
<?
session_start();
session_destroy();
setcookie("auth",$value,time());
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>todolist</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="default.css" rel="stylesheet" type="text/css">
<style type="text/css">
<!--
body {
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
}
-->
</style></head>
<body >
<table width="100%" height="100" border="0" valign="center" align="center" cellpadding="0" cellspacing="1" bgcolor="#000000" onClick="window.close();">
<tr>
<td class="title" align="center">
Sie haben sich erfolgreich abgemeldet!
</td>
</tr>
</table><br>
<script type="text/javascript">
window.opener.location.href='';
window.focus();
window.setTimeout("this.close()",2000);
</script>
</body>
</html>
ich leite hier von der phpkit_usertable ab
da schon zuviele leute sich angemeldet hatten hab ich nun einfach diese table als usertable benutztGeändert von SonicBe@m (30.08.04 um 11:15 Uhr)
Moep :)
-
und CS suckt anyway :-P
Ähnliche Themen
-
Frage zu Login-System mit Sessions
Von M-P im Forum PHPAntworten: 15Letzter Beitrag: 02.09.09, 01:42 -
Frage zu PHP-Tutorial ([PHP/MySQL] Login-System mit Sessions)
Von buddymaster im Forum PHPAntworten: 1Letzter Beitrag: 08.12.07, 19:27 -
Frage zu Login-System mit Sessions Tut
Von medico im Forum PHPAntworten: 3Letzter Beitrag: 22.10.04, 11:15 -
Login-System mit Sessions Tut-Frage
Von Hanns_L im Forum PHPAntworten: 8Letzter Beitrag: 18.10.04, 23:01 -
frage zu sessions - login system
Von DieterWeb im Forum PHPAntworten: 1Letzter Beitrag: 28.07.02, 19:45





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren