Redirect auf Startseite nach login php
Habe ich ein login-Formular. Wie kann ich so machen, dass wenn sich ein Benutzer anmeldet, er/Sie leitet auf eine Seite, wo es zeigt sein/Ihr name? Ich ging schon durch viele tutorials, wie Sie dies tun, aber nichts war ziemlich gut...
main_login.php:
<table width="300" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<form name="form1" method="post" action="checklogin.php">
<td>
<table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
<tr>
<td colspan="3"><strong>Member Login </strong></td>
</tr>
<tr>
<td width="78">Username</td>
<td width="6">:</td>
<td width="294"><input name="myusername" type="text" id="myusername"></td>
</tr>
<tr>
<td>Password</td>
<td>:</td>
<td><input name="mypassword" type="text" id="mypassword"></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td><input type="submit" name="Submit" value="Login"></td>
</tr>
</table>
</td>
</form>
</tr>
</table>
login_success.php:
<?php
session_start();
if(!session_is_registered(myusername)){
header("location:http://main_login.php");
}
?>
<html>
<body>
Login Successful
</body>
</html>
checklogin.php:
<?php
$host="host"; //Host name
$username="username"; //Mysql username
$password="password"; //Mysql password
$db_name="database"; //Database name
$tbl_name="table"; //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");
//username and password sent from form
$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_register("myusername");
session_register("mypassword");
header("location:login_success.php");
}
else {
echo "Wrong Username or Password";
}
?>
- Bitte aufhören mit schreiben neuen code mit dem alten MySQL-Erweiterung: es wird nicht mehr gepflegt, und die Gemeinschaft hat begonnen, die deprecation-Prozess; Sie können Sie nutzen stattdessen entweder die verbesserte MySQLi - Erweiterung oder die PDO abstraction layer.
- Zumindest haben Sie schon das Lesen ein tutorial, das Ihnen sagt, zu entkommen, die Daten in queries verwendet. Das schlechte daran ist, es nicht sagen Sie zu verwenden
PDO
odermysqli
mit vorbereiteten Anweisungen sind. Weder hat es Ihnen sagen, um nie immer store-plaintext-Passwörter in der Datenbank. Und Nein, ich mache Ihnen keine Vorwürfe, nur die shitload von bad-Ressourcen (/ tutorials) im web.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diesem Beispiel sollte Euch ein bisschen helfen, aber ich empfehle die Verwendung von mysqli und das ist eine wirklich schlechte Idee, um zu speichern Sie Ihre Passwörter im Klartext. Sie sollten prüfen, Blick bis mysqli -, Hash-Passwörter, und starten Sie vertraut, die sich mit php 5.4, da viele der Funktionen, die hier verwendet HABEN sich geändert und werden nicht mehr unterstützt.
checklogin.php
login_success.php
main_login.php
Nutzung auf eigene Gefahr. 🙂
Ausgabe einen HTTP-redirect, die
Location
header sollte angemessen kapitalisiert sind, und enthalten Leerzeichen zwischen den header-Namen und deren Wert:scheint es, dass Sie bereits in der Lage, leiten Sie den Benutzer zu einer Seite, wenn der login erfolgreich war. Sie müssen nur fügen Sie einige code, zu dieser Seite etwas wie echo $_SESSION['username']; hoffe, es hilft.