Login Script - Ein Problem :(

Sn4ke16

Mitglied
Hallo und guten Morgen liebe Community =)

Ich bastel zurzeit an einem Login-Script für eine Webradio-Homepage. Dieses funktioniert an sich auch. Aber ich habe auf der Page halt 2 Navigations- und 1 Contentbereich(e) eingeteilt. Die login.php (das ist die datei mit dem Login Formular) die habe ich per include Befehl in dem 2. Navigationsbereich eingefügt. Wenn ich das ganze Script nun ausführe dann zeigt er mir nicht den Login Bereich in dem Bereich an wo ich die login.php includiert habe. Zudem würde ich gerne einige Teile aus dem Script im Contentbereich ausgeben lassen, wie z.B. "Wrong username or password".

Ich blick da wohl irgendwie nicht ganz durch, naja ich hoffe ihr könnt mir da helfen.
Freu mich über hilfreiche und schnelle Antworten =)
Liebe Grüße, Sn4ke16.

PS: Danke schonmal im Vorraus ;)
 
Zuletzt bearbeitet:
So hier ausschnitte aus dem Code ^^

index.php (Content)
Code:
....
<td colspan="4" rowspan="2" background="Bilder/index_18.png" width="683" height="414" class="content">
        <?php 
			if(!isset($_GET['site'])) 
  				{
  					include 'inc/home.php';
  				}
			else include 'inc/' . basename($_GET['site']) . '.php';
		?>
</td>
....

index.php (1. Navigation):
Code:
....
<td colspan="3" background="Bilder/index_23.png" width="156" height="413" class="navi_left">
        <br>
        <b>Home</b>
        <br>
        <br>
        <a href="index.php?site=home">Startseite</a><br>
        <a href="index.php?site=news">News</a><br>
        <a href="index.php?site=archiv">Archiv</a><br>
        <a href="index.php?site=forum">Forum</a><br>
....


Index.php (2. Navigation):
Code:
.....
<td rowspan="2" background="Bilder/index_20.png" width="157" height="414" class="navi_right">
        <br><b>Login</b>
        <br>
        <br>
        <?php 
			include ('inc/login.php');
	?>
        <br>
.....


login.php (Bitte nicht wundern das beim Password feld type="text" steht, dass ist lediglich zum test ;)):
Code:
....
<table>
<form name="form1" action="inc/checklogin.php" method="post">
<tr>
<td>Login</td>
<td><input type="text" name="myusername" id="myusername" size="9" /></td>
</tr>
<tr>
<td>Pwd</td>
<td><input type="text" name="mypassword" id="mypassword" size="9" /></td>
</tr>
<tr>
<td><input type="submit" name="Submit" value="Login" style="background: none; color: #bce7fd; font-size: 16px; border: none;"/></a></td>
<td><a href="index.php?site=register">Register</a></td>
</tr>
</form>
</table>
....

So und ab der "checklogin.php" wird noch einmal weitergeleitet auf die "login_success.php" per "header("location:login_success.php");"

Hoffe das hilft euch weiter ^^

EDIT: Ich habe bereits versucht im Login-Formular "action="index.php?login=checklogin" " (ich hatte da einen extra Include code für den Login-Bereich gehabt), da kam dann nur ne Fehlermeldung nach dem "submit" mit "Cannot modify header..." dann hatte ich die weiterleitung in der "checklogin.php" anders gemacht (sprich ohne "header("...")"), dann kam die gleiche fehlermeldung, allerdings war diesmal der fehler in der "login_success.php", da te dann session_start(); nicht mehr. Und das brauch ich ja schließlich ^^

EDIT2: In der "checklogin.php" wird lediglich per if-anweisung geprüft, ob der eingegebene Benutzername und das Passwort in der mysql-tabelle vorhanden ist. Und in der "login_success.php" wird lediglich geprüft ob ein(e) array/variable mit dem Benutzernamen und Passwort gesetzt wurde (isset...), wenn dies der fall ist wird dann natürlich der eigentliche Bereich angezeigt.
 
Zuletzt bearbeitet:
Was die falsche Position angeht, das ist aus dem Code immer noch nicht ersichtlich.
Poste mal mehr(z.B. alles :-))...insbesondere die komplette HTML-Ausgabe der login.php wäre interessant.

Was die header()-Probleme betrifft:
Wenn du ganz zu Beginn der index.php ein [phpf]ob_start[/phpf] notierst, hast du diese Probleme nicht. Die Ausgabe des Skriptes wird dann gepuffert, und du kannst auch irgendwo innerhalb des Skriptes noch Header senden.

Zu den Teilen für den Content-Bereich:
speichere sie vorerst in Variablen, im Contestbereich gebe dann diese Variablen aus.
 
Bezüglich der Position und der header()-probleme, dies hab ich nun mit ob_start(); behoben. Allerdings ist dann immer noch ein fehler da, keine Ahnung wo der plötzlich her kommt, gestern beim Test letzte nacht ging das Script ohne Probleme.

Ausschnitt aus der checklogin.php:
Code:
...mysql abfrage...
if($count==1){
// Register $myusername, $mypassword and redirect to file "login_success.php"
$_SESSION["myusername"];
$_SESSION["mypassword"];
header("location:inc/login_success.php");
} else {
echo "Wrong Username or Password";
}
?>

Problem ist jetzt, es werden die variablen "myusername" & "mypassword" nicht mehr registriert. Ich habe da am Code nichts verändert, ich versteh nicht warum das aufeinmal nicht mehr geht :(
 
PHP:
<?php
$host="localhost"; // Host name
$username="*****"; // Mysql username
$password="******"; // Mysql password
$db_name="relaxx-radio"; // Database name
$tbl_name="user"; // Table name

// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

// Define $myusername and $mypassword
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];

// To protect MySQL injection (more detail about MySQL injection)
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);

$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);

// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row

if($count==1){
// Register $myusername, $mypassword and redirect to file "login_success.php"
$_SESSION["myusername"];
$_SESSION["mypassword"];
header("location:inc/login_success.php");
} else {
echo "Wrong Username or Password";
}
?>

An sich wird den Session Variablen ja ein Wert zugewiesen, nähmlich $myusername & $mypassword ^^

Ich habs aber auch nochmal so gemacht wie dus gesagt hattest, kam das gleiche bei raus.
 
Zuletzt bearbeitet:
Wie müsste ich den Code denn ändern, damit es deiner Meinung nach richtig ist?

Wie gesagt, ich habs ja auch folgendermaßen versucht:

PHP:
$_SESSION["myusername"] = $myusername;
$_SESSION["mypassword"] = $mypassword;

das ging wie gesagt auch nicht ^^
 
Zuletzt bearbeitet:
Zurück