Login-Skript Problem

Brian Folte

Angesehenes Mitglied
hallo nun habe ich mein login system fast fertig nun fehlen nurnoch zwei sachen und die wären
1. mit diesem script hier CODE <?php
session_start();
?>

<?
if (!session_is_registered('user'))
{
die ("Sie müssen sich einloggen!");
}
?>

blockier ich die seiten wenn jemand nícht eingeloggt ist.
nun will ich aber nicht das nur dieser spruch dasteht sondern ich will das die user zu der login seite weitergeleitet werden
nun habe ich es schon mit einer automatischen weiterleitung probiert aber da bekomm ich dieser fehlermeldung hier
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/sms4allc/public_html/sms.php:1) in /home/sms4allc/public_html/sms.php on line 2
und dann hab ich es mit dem code auch noch probiert

CODE <?php
session_start();
?>
<?
if (!session_is_registered('user'))
{
header("Location: Login.php");

}
?>

und da erhalte ich diese meldung
Warning: Cannot modify header information - headers already sent by (output started at /home/sms4allc/public_html/sms.php:4) in /home/sms4allc/public_html/sms.php on line 7

so nun wollte ich euch fragen ob ihr mir sagen könnt an was das liegt.
achja und dann wollte ich noch gerne wenn sich der user eingelogt hat, das er in einem meiner 5 frame seine daten sieht wie kann ich das machen? ich weiß das es was mit den session zu tun hat weiß aber nicht wie und wo ich es einbauen soll hier mal der php code für das login system

CODE <?
# Hier ggf. den Header einfügen!

if ($anmelden) { anmelden($fertig, $user, $password1, $password2, $email);}
else if ($abmelden) { abmelden($fertig, $user, $password);}
else if ($forgot) { forgot($fertig, $email);}
else { login($fertig, $user, $password);}

# hier ggf. den Footer einfügen!
?>

<?
function inhalt($user)
{
session_start();
session_register("user");

##################################
#Bauen Sie hier Ihren Inhalt ein!#
# #
?>

<b><meta http-equiv="refresh" content="3; URL=http://www.google.de/"></b>

<?
# #
# Ab hier nichts mehr ändern! #
##################################

}
?>

<?
function login($fertig, $user, $password)
{
include("config.php");
if ($fertig) {
$abfrage = mysql_query ("SELECT * FROM login WHERE user = '$user'");
$reihen = mysql_num_rows($abfrage);
if ($reihen <= 0) {
echo "Unbekannter Benutzername!";
}
else {
while ($row = mysql_fetch_object ($abfrage)) {
if ($row->password==$password) {
inhalt($user);
}
else {
echo "Falsches Passwort!";
}
}
}
}
else {
echo "Zum anmelden geht es <a href=login.php?anmelden=yes/">hier</a> lang!";
echo "<p><h2>Login</h2></p>";
echo "<form method=\"POST\" action=login.php?fertig=yes/">";
?>
<table cellspacing="1" cellpadding="2" border="0">
<tr>
<td><font size="2">Benutzername:</font></td>
<td><font size="2"><input type="text" name="user" value=""> </font></td>
</tr>
<tr>
<td><font size="2">Passwort:</font></td>
<td><font size="2"><input type="password" name="password" value=""></font></td>
</tr>
<tr>
<td colspan=2 align=center><input type=submit value=Login></td>
</tr>
</table>
</form>
<?
echo "<p><a href=\"$PHP_SELF?forgot=yes\">Passwort vergessen?</a><br>
<a href=logout.php/">Abmelden</a></p>";
}
}
?>

<?
function anmelden ($fertig, $user, $password1, $password2, $email)
{
include("config.php");
if($fertig) {
$abfrage1 = mysql_query("SELECT user FROM login");
while ($row = mysql_fetch_object ($abfrage1)) {
if ($row->user==$user) {
echo "Dieser Benutzer existiert schon!";
exit;
}
}
if ($user=="" OR $password1=="" OR $password2=="" or $email=="") {
echo "Sie haben mindestens ein Feld nicht ausgefüllt!";
}
else if ($password1!=$password2) {
echo "Ihr Passwort ist ungleich Ihrer Wiederholung!";
}
else {
$anfuegen=mysql_query("INSERT INTO login (user, password, email) VALUES ('$user','$password1', '$email')");
echo "Erfolgreich angemeldet! Sie können sich nun einloggen:<br>";
@login();
}
}
else {
echo "<h2>Anmelden</h2>";
echo "<form method=\"POST\" action=sms.php/">";
?>
<table cellspacing="1" cellpadding="2" border="0">
<tr>
<td><font size="2">Benutzername:</font></td>
<td><font size="2"><input type="text" name="user" value=""> </font></td>
</tr>
<tr>
<td><font size="2">Passwort:</font></td>
<td><font size="2"><input type="password" name="password1" value=""></font></td>
</tr>
<tr>
<td><font size="2">Wiederholen:</font></td>
<td><font size="2"><input type="password" name="password2" value=""></font></td>
</tr>
<tr>
<td><font size="2">E-Mail:</font></td>
<td><font size="2"><input type="text" name="email" value=""> </font></td>
</tr>
<tr>
<td colspan=2 align=center><input type=submit value=Anmelden></td>
</tr>
</table>
</form>
<?
}
}
?>


<?
function forgot ($fertig, $email)
{
include("config.php");
if ($fertig) {
$abfrage=mysql_query("SELECT * FROM login");
while ($row = mysql_fetch_object ($abfrage)) {
if ($email==$row->email) { $ismail="true"; }
}
if ($ismail=="true") {
$password=mysql_query("SELECT * FROM login WHERE email = '$email'");
while ($row = mysql_fetch_object ($password)) {
$nachricht="Hallo $row->user!\n\nIhr Passwort ist:\n\n$row->password\n\nMfG\nAdmin";
}
mail($email, "Passwort", $nachricht, "From: Administrator");
?>
<p>Das Passwort wurde Ihnen erfolgreich an die Adresse <i><? echo $email; ?></i> geschickt!<br>
Rufen Sie Ihre E-Mails ab und loggen Sie sich ein.<br></p>
<?
@login();
}
else { echo "Ihre angegebene E-Mail Adresse wurde nicht gefunden!";}
}
else {
echo "<p><h2>Passwort vergessen</h2><p>";
echo "<p><form method=post action=\"$PHP_SELF?forgot=yes&fertig=yes\">";
?>
<table cellspacing="1" cellpadding="2" border="0">
<tr><td><font size="2">E-Mail Adresse:</font></td><td align=center><input type=text name=email></td></tr>
<tr><td colspan="2" align=center><input type=submit value="Schicken!"></td></tr>
</table></form></p>
<?
}
}
?>

<?
function abmelden($fertig, $user, $password)
{
include ("config.php");
if($fertig) {
$abfrage = mysql_query ("SELECT * FROM login WHERE user = '$user'");
$reihen = mysql_num_rows($abfrage);
if ($reihen <= 0) {
echo "Unbekannter Benutzername!";
}
else {
while ($row = mysql_fetch_object ($abfrage)) {
if ($row->password==$password) {
$delete = mysql_query ("DELETE FROM login WHERE user = '$user'");
echo "Ihre Daten wurden erfolgreich aus der Datenbank entfernt!";
}
else {
echo "Falsches Passwort!";
}
}
}
}
else {
echo "<p><h2>Abmelden</h2></p>";
echo "<form method=\"POST\" action=%22$PHP_SELF?abmelden=yes&fertig=yes/">";
?>
<table cellspacing="1" cellpadding="2" border="0">
<tr>
<td><font size="2">Benutzername:</font></td>
<td><font size="2"><input type="text" name="user" value=""> </font></td>
</tr>
<tr>
<td><font size="2">Passwort:</font></td>
<td><font size="2"><input type="password" name="password" value=""></font></td>
</tr>
<tr>
<td colspan=2 align=center><input type=submit value=Abmelden></td>
</tr>
</table>
</form>
<?
}
}
?>


nun wollte ich euch fragen ob ihr mir sagen könnt was ich jetzt noch machen kann
 
also ich hab es jetzt schon so weit das wenn man auf hier klickt man weitergeleitet wird nun will ich aber das man von ganz automatisch weitergeleitet wird was muß ich nun machen?
CODE <?php
session_start();
?>

<?
if (!session_is_registered('user'))
{
die ("Klicke<a href=login.php/">hier</a> um dich einzuloggen");
}
?>
 
Irgendwie hab ich das Gefühl mir will hier keiner helfen
sad.gif
Liebe Grüße Brian
 
Nur keine Panik, man kann ja nicht rund um die Uhr on sein.

Wenn du es so wie unten machst, dann kommt die Meldung und nach 3 Sekunden wirst du weitergeleitet.
Gibt aber sicher auch schönere Lösungen:

CODE <?php
session_start();
?>

<?
if (!session_is_registered('user'))
{
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="refresh" content="3;url=login.php">
</head>
<body>
"Klicke<a href=login.php/">hier</a> um dich einzuloggen
</body>
<?php
die();
}
?>

 
vielen dank für deine antwort. ich habe mir jetzt noch ein anderes login system runtergeladen wo ich diese meldung nicht bekomme.
aber da ist ein anderes problem was ich überhaupt nicht verstehe.
undzwar wenn ich nicht eingelogt bin werde ich ohne fehlermeldung zu dem login berreich weitergeleitet bin ich aber eingelogt erhalte ich dann diese meldung hier
Notice: Undefined index: submit in /home/sms4allc/public_html/si/sms.php on line 39
der code sieht so aus
CODE <?php
include_once("config.php");
// Check user logged in already:
checkLoggedIn("yes");
?>
<html>


<head>
<title>SMS Versand - Testformular</title>
<style type="text/css">
<!--
a{FONT-FAMILY:verdana; FONT-SIZE: 10px; text-decoration: none; color: #840909}
a:hover {FONT-FAMILY:verdana; color: #840909; text-decoration: none; border-bottom: dotted 1px #840909}

-->
</style>
<script type="text/javascript">
function textCounter(field, countfield, maxlimit) {
if (field.value.length > maxlimit)
field.value = field.value.substring(0, maxlimit);
else
countfield.value = maxlimit - field.value.length;
}
</script>
</head>

<font face="Verdana" size="1"><br><br><center>
<?php









if (!$_POST['submit']) {
echo'<form method="post">

<table width="500" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="101"><font face="verdana" size="1">Handynummer:</font></td>
<td width="399"><font size="2">
<input type="text" name="nummer" size="11" maxlength="16"><br>Hinweis: Einfach z.B 01737611676 als Format verwenden. kein 0049 oder +49 oder fehlende Null.
</font></td>
</tr>
<tr>
<td width="101"><font size="2"></font></td>
<td width="399"><font size="2"></font></td>
</tr>
<tr>
<td width="101"><font face="verdana" size="1">Text:</font></td>
<td width="399"><font size="2">
<textarea name="text" wrap="physical" cols="30"
rows="5" onKeyDown="textCounter(this.form.text,this.form.remLen,160);"
onKeyUp="textCounter(this.form.text,this.form.remLen,160);"></textarea> <input readonly
type="text" name="remLen" size="3" maxlength="3" value="160">
</font></td>
</tr>
</table>
<p> <font face="Arial, Helvetica, sans-serif" size="2">
<input type="submit" name="submit" value="SMS versenden">
</font></p>
</form>';
} else {
/*Die Variable $_POST['text'] muss den zu versendenden Text enthalten, die Variable $_POST['nummer'] die Empfängernummer*/

$key = '0545.........'; //Partnerkey
//define("DEBUG", true); //Bitte aktivieren falls Sie bei einem Fehler die Ausgabe der Gatewayrückmeldung wünschen.

$status = @file("http://gateway.mobilant.net/?key=".$key."&Text=".urlencode($_POST['text'])."&handynr=".$_POST['nummer']);

//mit echo $status[0] können Sie die Rückmeldung des Scriptes ausgeben lassen.
if (trim($status[0]) == "100") {
echo'<font face="Arial, Helvetica, sans-serif" size="2">Die SMS wurde an '.$nummer.' gesendet. Vielen Dank für das Testen unseres Services</font>';
} elseif ($status[0] == "200") {
echo'<font face="Arial, Helvetica, sans-serif" size="2">Die angegebene Handynummer ist nicht im korrekten Format. Bitte gehen Sie zurück und verändern Sie die Eingabe.</font>';
} else {
echo'<font face="Arial, Helvetica, sans-serif" size="2">Die SMS konnte leider nicht versendet werden.</font>';
if (defined("DEBUG")) {
echo '<br><font face="Arial, Helvetica, sans-serif" size="2"><b>Fehler: '.$status[0].'</b></font>';
}
}
}







?>




</center>
<br>

<p align="center"><font face="verdana" size="1"><font color="#646464">© 2004
-  <a href="http://www.sms-4-all.com" target="_blank">sms-4-all.com</a></font></font></p>
<a href=logout.php/> Logout </a>
</body>>


wenn ich nur diese seite aufrufe also ohne

CODE ]<?php
include_once("config.php");
// Check user logged in already:
checkLoggedIn("yes");
?>
dann bekomm ich keine fehlermeldung.
ich hoffe hier kann mir einer helfen. liebe grüße brian
 
so ich hab jetzt nochmal alles möglich ausprobiert und weiß nun der dieser code hierCODE <?php
include_once("config.php");

// Check user logged in already:
checkLoggedIn("yes");
doCSS();

?>

nur auf seiten mit php spinnt. nun wollt ich nochmal ganz lieb und nett fragen ob ihr einen ratschlag für mich habt. ich versuche nun seit 4 tagen und bin leider nicht weiter gekommen. ich wäre für jeden tip dankbar. liebe grüße brian
 
Zurück
Oben