2Danke
ERLEDIGT
JA
JA
ANTWORTEN
8
8
ZUGRIFFE
328
328
EMPFEHLEN
-
27.04.08 16:11 #1
Hallo,
ich hab mal wieder ein Problem mit einem Script
Es ist ein Loginscript welches mit einer MySQL Datenbank arbeitet.
Ich poste erstmal die Codes und später die Erklärung/Fragen.
Das Loginformular sieht folgendermaßen aus:
index.php
save.phpPHP-Code:<link href="../style.css" rel="stylesheet" type="text/css">
<form name="form1" method="post" action="save.php">
<table width="365" border="0" cellspacing="0" cellpadding="0">
<tr>
<th width="108" height="35" valign="middle" class="schrift" scope="col"><div align="right">Benutzername:</div></th>
<th width="12" valign="middle" scope="col"> </th>
<th width="245" valign="middle" scope="col"><div align="left">
<input name="benutzername" type="text" class="textfeld" id="benutzername" size="30">
</div></th>
</tr>
<tr>
<th height="35" valign="middle" class="schrift" scope="row"><div align="right">Passwort:</div></th>
<td valign="middle"> </td>
<td valign="middle"><div align="left">
<input name="passwort" type="password" class="textfeld" id="passwort" size="30">
</div></td>
</tr>
<tr>
<th height="0" scope="row"> </th>
<td> </td>
<td valign="bottom"><input type="submit" name="Submit" value="Login"></td>
</tr>
</table>
</form>
undPHP-Code:<style type="text/css">
<!--
body,td,th { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; }
a:link { text-decoration: none; color: #000000; font-weight: bold; }
a:visited { text-decoration: none; }
a:hover { text-decoration: underline; }
a:active { text-decoration: none; }
a { font-size: 10px; }
-->
</style>
<?
include("../conf/config.inc.php");
$benutzername = $_POST['benutzername'];
$passwort = $_POST['passwort'];
mysql_connect($db_host, $db_username, $db_passwort);
mysql_select_db($db_name);
$abfrage = "SELECT benutzername, passwort FROM admin WHERE benutzername = '$benutzername' AND passwort = '$passwort'";
$ergebnis = mysql_query($abfrage);
if(mysql_num_rows($ergebnis))
{
?><a href="einstellungen.php">Einstellungen</a><?
}
else
{
print "Benutzername / Passwort falsch!";
}
?>
einstellungen.php
So jetzt zu meiner Erklärung und zu meinen Fragen.PHP-Code:<?
echo "hier sollen die Einstellungen rein";
?>
Wenn ich Passwort und Benutzername richtig eingebe, erscheint der Link "Einstellungen" mit welchem ich auf die einstellungen.php gehen kann. Gebe ich die Daten falsch ein, erscheint der Text "Benutzername / Passwort falsch!";
Soweit so gut, stimmt ja auch alles.
Jetzt kommt aber mein Problem. Wenn ich einfach http://.../einstellungen.php in die Adresszeile meines Browsers eingebe komme ich direkt zu den Einstellungen und umgehe das Loginscript.
Was muss ich machen, damit dann zB eine Fehlermeldung ausgegeben wird die zB "Geben Sie Benutzername und Passwort ein, um in die Einstellungen zu gelangen".
Wie müsste der Code in allen 3 Dateien aussehen!?
Ich Bitte um Hilfe - Danke
PS: sollte noch was unklar sein, einfach sagen
-
Hallo,
beim Erfolgreichen Einloggen einfach eine Sessionvariable anlegen und diese dann auf der Einstellungsseite abfragen ob sie gesetzt ist, wenn nicht Fehler ausgeben
-
27.04.08 16:23 #3
wie muss das denn dann gemau aussehen?
Was das betrifft, bin ich ne Niete
-
27.04.08 16:38 #4
- Registriert seit
- Jul 2007
- Ort
- Quakenbrück
- Beiträge
- 756
Hast du die Suchfunktion benutzt?
Hast du mal bei den Tutorials nachgesehn?
-> http://www.tutorials.de/forum/php-tu...und-mysql.htmlSchnellste Hilfe -> www.gidf.dePHP-Code:($hilfe=='hilfreich') ? bewerten(positiv) : ignore_post();
Wer aus meiner Gegend kommt, kann sich gern mal melden, kenn hier keenen ;)
-
index.php
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
<?php session_start (); if (isset ($_REQUEST["fehler"])) { echo "Die Zugangsdaten waren ungültig."; } ?> <form action="save.php" method="post"> <table border="0" cellpadding="5" cellspacing="0" bgcolor="#A5A5A5"> <tr> <td align="right">Name:</td> <td> <input type="text" name="name" size="20"></td> </tr> <tr> <td align="right">Kennwort: <td><input type="password" name="pwd" size="20"></td> </tr> <tr> <td align="right"></td> <td> <input type="submit" value="Login"> <input type="reset" value=" Abbrechen"> </td> </tr> </table> </form> </body> </html>
save.php
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
<?php session_start (); $connectionid = mysql_connect ("localhost", "benutzer", "passwort"); if (!mysql_select_db ("admin_db", $connectionid)) { die ("Konnte keine Verbindung zur Datenbank aufbauen"); } $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) { $data = mysql_fetch_array ($result); $_SESSION["user_id"] = $data["Id"]; $_SESSION["user_nickname"] = $data["Nickname"]; $_SESSION["user_nachname"] = $data["Nachname"]; $_SESSION["user_vorname"] = $data["Vorname"]; header ("Location: index.php"); } else { header ("Location: index.php?fehler=1"); } ?>
einstellungen.php
Code :1 2 3 4 5 6 7
<?php session_start (); if (!isset ($_SESSION["user_id"])) { header ("Location: index.php"); } ?>
Hoffe das es auch geht
LG
Linyx
-
27.04.08 18:11 #6
Ich hab mein script jetzt mal mit einer "session" versehen. Das hat auch alles soweit geklappt.
Allerdings kommt jetzt immer wenn ich mich mit den richtigen Daten einlogge eine Fehlermeldung.
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at D:\Websites\admin\save.php:1) in D:\Websites\admin\save.php on line 25
Was hat das zu bedeuten!?PHP-Code:<style type="text/css">
<!--
body,td,th { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; }
a:link { text-decoration: none; color: #000000; font-weight: bold; }
a:visited { text-decoration: none; }
a:hover { text-decoration: underline; }
a:active { text-decoration: none; }
a { font-size: 10px; }
-->
</style>
<?
include("../conf/config.inc.php");
$benutzername = $_POST['benutzername'];
$passwort = $_POST['passwort'];
mysql_connect($db_host, $db_username, $db_passwort);
mysql_select_db($db_name);
$abfrage = "SELECT benutzername, passwort FROM admin WHERE benutzername = '$benutzername' AND passwort = '$passwort'";
$ergebnis = mysql_query($abfrage);
if(mysql_num_rows($ergebnis))
{
session_start();
$_SESSION["benutzername"]= "$benutzname";
?><a href="einstellungen.php">Einstellungen</a><br><a href="logout.php">logout</a><?
}
else
{
print "Benutzername / Passwort falsch!";
}
?>
Gruß
-
Hallo,
das erstellen einer Session muss immer vor jeglicher Ausgabe passieren, sprich vor Echos oder ähnlichem.
Das heisst immer am besten ganz am anfang der Datei.
-
27.04.08 20:14 #8
Ah das war das Auschlaggebende!
Jetzt funktioniert alles einwandfrei, danke dafür
-
Morgen,
wenn das Thema erledigt bist, bitte einmal den erledigt Knopf
Mfg, xErY
Ähnliche Themen
-
Hilfe suche Login script
Von Icejumper im Forum PHPAntworten: 1Letzter Beitrag: 29.05.05, 17:02 -
Session Fehler im Login Script, login klappt nur bei gelöschten Sessions
Von melistik im Forum PHPAntworten: 3Letzter Beitrag: 12.01.05, 21:14 -
Hilfe bei login-script mit session_register()
Von Bl4dE im Forum PHPAntworten: 6Letzter Beitrag: 05.01.05, 20:41 -
Brauche Hilfe wegen Login Script
Von MasterPhil im Forum PHPAntworten: 2Letzter Beitrag: 01.10.04, 09:02 -
hilfe bei Login script mit cookies, einer whois online anzeige
Von phpMars im Forum PHPAntworten: 5Letzter Beitrag: 31.07.02, 23:14





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren