johnpatcher
02-01-2004, 15:42
also ich bin gerade dabei ein login system zu machen und bin noch ein ziemlicher n00b in sachen php und mysql! also ich hab eine datenbank mit folgendem befehl erstellt!
CREATE TABLE benutzerdaten (
Id Int(11) NOT NULL auto_increment,
Nickname VarChar(50) NOT NULL default '',
Kennwort VarChar(50) NOT NULL default '',
Nachname VarChar(50) NOT NULL default '',
Vorname VarChar(50) NOT NULL default '',
EMail VarChar(50) NOT NULL default '',
PRIMARY KEY (Id)
)
das hat auch ohne probz funktioniert und auch mit daten füllen, ging ohne probleme!
jetzt habe ich eine html datei folgendes eingebaut!
in die erste zeile :
<?php session_start (); ?>
dann in den body bereich, dass hier
<?php
if (isset ($_REQUEST["fehler"]))
{
echo "Die Zugangsdaten waren ungültig.";
}
?>
und da wo das formular hinkommen soll das hier:
<form name="loginform" method="post" action="login.php" >
<div align="center">
Benutzername:<br>
<input type="text" name="name" size="12" maxlength="20" tabindex="1" border="0"><br>Password:<br>
<input type="password" name="pwd" size="12" maxlength="20" tabindex="2" border="0"><br>
<br>
<input type="submit" name="loginsubmit" value="Login!" tabindex="3" border="0">
</form>
so und die "login.php" schaut so aus:
<?php
// Session starten
session_start ();
// Datenbankverbindung aufbauen
$connectionid = mysql_connect ("127.0.0.1", "XXX", "XXX");
if (!mysql_select_db ("XXX", $connectionid))
{
die ("Keine Verbindung zur Datenbank");
}
$sql = "SELECT ".
"Id, Nickname, Nachname, Vorname ".
"FROM ".
"benutzerdaten ".
"WHERE ".
"(Nickname LIKE '".$_REQUEST["name"]."') AND ".
"(Kennwort = '".md5 ($_REQUEST["pwd"])."')";
$result = mysql_query ($sql);
if (mysql_num_rows ($result) > 0)
{
// Benutzerdaten in ein Array auslesen.
$data = mysql_fetch_array ($result);
// Sessionvariablen erstellen und registrieren
$_SESSION["user_id"] = $data["Id"];
$_SESSION["user_nickname"] = $data["Nickname"];
$_SESSION["user_nachname"] = $data["Nachname"];
$_SESSION["user_vorname"] = $data["Vorname"];
header ("Location: intern.php");
}
else
{
header ("Location: index.php?page=fehler");
}
?>
so das ganze habe ich irgendwo aus dem internet gezogen, aber es kommt folgender fehler:
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /home/www/web51/html/cod/login.php:4) in /home/www/web51/html/cod/login.php on line 6
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/www/web51/html/cod/login.php:4) in /home/www/web51/html/cod/login.php on line 6
Warning: Cannot modify header information - headers already sent by (output started at /home/www/web51/html/cod/login.php:4) in /home/www/web51/html/cod/login.php on line 39
also weil bei mir noch mehr drinsteht (in den datein), kann es sein, dass die zeilennummern nicht übereinstimmen, deswegen schreib ich hier nochmal die betroffenen zeilen auf:
zeile 6:
session_start ();zeile 39:
header ("Location: index.php"); wo liegt hier der fehler? ich seh leider keinen ...
danke im voraus
johnpatcher
CREATE TABLE benutzerdaten (
Id Int(11) NOT NULL auto_increment,
Nickname VarChar(50) NOT NULL default '',
Kennwort VarChar(50) NOT NULL default '',
Nachname VarChar(50) NOT NULL default '',
Vorname VarChar(50) NOT NULL default '',
EMail VarChar(50) NOT NULL default '',
PRIMARY KEY (Id)
)
das hat auch ohne probz funktioniert und auch mit daten füllen, ging ohne probleme!
jetzt habe ich eine html datei folgendes eingebaut!
in die erste zeile :
<?php session_start (); ?>
dann in den body bereich, dass hier
<?php
if (isset ($_REQUEST["fehler"]))
{
echo "Die Zugangsdaten waren ungültig.";
}
?>
und da wo das formular hinkommen soll das hier:
<form name="loginform" method="post" action="login.php" >
<div align="center">
Benutzername:<br>
<input type="text" name="name" size="12" maxlength="20" tabindex="1" border="0"><br>Password:<br>
<input type="password" name="pwd" size="12" maxlength="20" tabindex="2" border="0"><br>
<br>
<input type="submit" name="loginsubmit" value="Login!" tabindex="3" border="0">
</form>
so und die "login.php" schaut so aus:
<?php
// Session starten
session_start ();
// Datenbankverbindung aufbauen
$connectionid = mysql_connect ("127.0.0.1", "XXX", "XXX");
if (!mysql_select_db ("XXX", $connectionid))
{
die ("Keine Verbindung zur Datenbank");
}
$sql = "SELECT ".
"Id, Nickname, Nachname, Vorname ".
"FROM ".
"benutzerdaten ".
"WHERE ".
"(Nickname LIKE '".$_REQUEST["name"]."') AND ".
"(Kennwort = '".md5 ($_REQUEST["pwd"])."')";
$result = mysql_query ($sql);
if (mysql_num_rows ($result) > 0)
{
// Benutzerdaten in ein Array auslesen.
$data = mysql_fetch_array ($result);
// Sessionvariablen erstellen und registrieren
$_SESSION["user_id"] = $data["Id"];
$_SESSION["user_nickname"] = $data["Nickname"];
$_SESSION["user_nachname"] = $data["Nachname"];
$_SESSION["user_vorname"] = $data["Vorname"];
header ("Location: intern.php");
}
else
{
header ("Location: index.php?page=fehler");
}
?>
so das ganze habe ich irgendwo aus dem internet gezogen, aber es kommt folgender fehler:
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /home/www/web51/html/cod/login.php:4) in /home/www/web51/html/cod/login.php on line 6
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/www/web51/html/cod/login.php:4) in /home/www/web51/html/cod/login.php on line 6
Warning: Cannot modify header information - headers already sent by (output started at /home/www/web51/html/cod/login.php:4) in /home/www/web51/html/cod/login.php on line 39
also weil bei mir noch mehr drinsteht (in den datein), kann es sein, dass die zeilennummern nicht übereinstimmen, deswegen schreib ich hier nochmal die betroffenen zeilen auf:
zeile 6:
session_start ();zeile 39:
header ("Location: index.php"); wo liegt hier der fehler? ich seh leider keinen ...
danke im voraus
johnpatcher