ERLEDIGT
JA
JA
ANTWORTEN
12
12
ZUGRIFFE
276
276
EMPFEHLEN
-
Hallo,
ich bins mal wieder! Ich habe ein Loginscript gebastelt, welches aber nicht ganz t Hier meine Codes:
login.php
portal.phpPHP-Code:<form action="l/portal.php" method="post">
<input type="text" name="user"><input type="password" name="pass"><input type="submit"></form>
start.phpPHP-Code:<?php
session_start(); // Session starten
$_SESSION['username'] = $_POST['user']; // Session registrieren
$_SESSION['passwort'] = $_POST['pass']; // Session registrieren
include("mysql_connect.php"); //MySQL-Verbindung einbinden
$abfrage = "SELECT * FROM sw_portal";
$ergebnis = mysql_query($abfrage)
OR die("Error: $abfrage <br>".mysql_error());
while($row = mysql_fetch_object($ergebnis))
{
$username=$row->username;
$password=$row->passwort;
$benutzergroup=$row->benutzergroup;
}
if ($_POST['user']==$username AND $_POST['pass']==$password)
{
include("start.php");
}
else
{
include("login.php");
}
?>
Wenn ich mich jetzt mit meinem Benutzernamen (Ben: Eike Pass: ***) dann komme ich auch auf die admin.php - Wenn ich mich jetzt mit meinem Testbenutzer (Ben: Test Pass: ***) Anmelde, klappt das nicht! Dann dachte ich, ich muss villeicht die sessions löschen, aber auch das hat nichts genützt!PHP-Code:<?php
session_start();
$username = $_SESSION['username'];
$passwort = $_SESSION['password'];
include("mysql_connect.php"); //MySQL-Verbindung einbinden
$abfrage = "SELECT * FROM sw_portal";
$ergebnis = mysql_query($abfrage)
OR die("Error: $abfrage <br>".mysql_error());
while($row = mysql_fetch_object($ergebnis))
{
$username=$row->username;
$password=$row->passwort;
$benutzergroup=$row->benutzergroup;
}
$benutzergruppe = $benutzergroup;
if ($benutzergruppe=="X7X*********ryU7")
{
include("benutzer/admin.php");
}
else if ($benutzergruppe=="**7**U**Yvcmnq**t")
{
include("benutzer/familie.php");
}
else if ($benutzergruppe=="**SxgjBn0*****ei")
{
include("benutzer/kohlfahrt.php");
}
else if ($benutzergruppe=="im*ZT1vvt***qF*r")
{
include("benutzer/berlin.php");
}
else if ($benutzergruppe=="Wb*aiU*dN*lJrM**")
{
include("benutzer/meckpomm.php");
}
else if ($benutzergruppe=="OlS*Ez*AT**eN*tZ")
{
include("benutzer/eike-friends.php");
}
else
{
include("benutzer/no.php");
}
?>
Was ist falsch?
Danke im Vorraus!!
EIkeGeändert von dr-stein (09.01.10 um 12:01 Uhr) Grund: Fehler behoben
PHP-Code:<?php
$aussage "Hallo Welt";
$antwort "Hallo Du";
function answer($antwort);
echo "$aussage";
answer($antwort);
?>
**Grins**
-
Meine Logoutdatei mit der ich die Sessions gelöscht habe:
LG; EIkePHP-Code:<?php
session_start();
session_destroy();
?>PHP-Code:<?php
$aussage "Hallo Welt";
$antwort "Hallo Du";
function answer($antwort);
echo "$aussage";
answer($antwort);
?>
**Grins**
-
09.01.10 12:12 #3
- Registriert seit
- May 2007
- Ort
- Dresden (Sachsen)
- Beiträge
- 1.961
Ich habe auf den ersten Blick nichts Falsches gesehen, aber was ich mich dennoch frage, ist, warum du alle Datensätze aus der Datenbank lädst und dann mit PHP prüfst, ob der Nutzer mit diesem Passwort existiert. Das kannst du doch direkt in deiner Anfrage prüfen, was auch die Datenbank und PHP entlastet.
Außerdem solltest du die Session auch erst dann registrieren, wenn du weißt, dass dieser Nutzer gültig ist.
Meine Lösung würde in etwa so aussehen:
Code PHP:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
<?php session_start(); include 'mysql_connect.php'; $username = mysql_real_escape_string($_POST['user']); $password = mysql_real_escape_string($_POST['pass']); $sql = 'SELECT * FROM `sw_portal` WHERE `username` = "'.$username.'" AND `passwort` = "'.$password.'" LIMIT 1'; if(!($result = mysql_query($sql))) { include 'login.php'; } else { $data = mysql_fetch_assoc($result); $_SESSION['username'] = $data['username']; $_SESSION['password'] = $data['passwort']; $_SESSION['benutzergroup'] = $data['benutzergroup']; // Kannst du dann in start.php benutzen include 'start.php'; }
Geändert von einfach nur crack (09.01.10 um 12:23 Uhr) Grund: unten genannten Fehler behoben
Ich mag:- positive Bewertungen meiner Beiträge
- ein Danke für meine hilfreichen Beiträge
Dabei kann ich dir helfen: PHP --- Javascript --- Ruby --- Coffeescript --- CSS --- HTML --- Webtechnologien --- Shell --- UNIX
... noch was: falls du mit dem Thema hier fertig bist, dann kannst du es auch als erledigt markieren.
-
Stimmt! Bekomme allerdings jetzt folgende Fehlermeldung nachdem ich auf anmelden geklickt habe:
Woran liegt das?HTML-Code:Parse error: syntax error, unexpected '{' in /var/www/web378/html/www.schlueter.ws/l/portal.php on line 10PHP-Code:<?php
$aussage "Hallo Welt";
$antwort "Hallo Du";
function answer($antwort);
echo "$aussage";
answer($antwort);
?>
**Grins**
-
Habe den Fehler gefunden:
Es fehlte eine Klammer! Jetzt t es!PHP-Code:<?php
session_start();
include 'mysql_connect.php';
$username = mysql_real_escape_string($_POST['user']);
$password = mysql_real_escape_string($_POST['pass']);
$sql = 'SELECT * FROM `sw_portal` WHERE `username` = "'.$username.'" AND `passwort` = "'.$password.'" LIMIT 1';
if(!($result = mysql_query($sql)))
{
include 'login.php';
}
else {
$data = mysql_fetch_assoc($result);
$_SESSION['username'] = $data['username'];
$_SESSION['password'] = $data['passwort'];
$_SESSION['benutzergroup'] = $data['benutzergroup']; // Kannst du dann in start.php benutzen
include 'start.php';
}
vorher:
nachher:PHP-Code:if(!($result = mysql_query($sql))
Danke dir... noch ein schönes wochenendePHP-Code:if(!($result = mysql_query($sql)))
PHP-Code:<?php
$aussage "Hallo Welt";
$antwort "Hallo Du";
function answer($antwort);
echo "$aussage";
answer($antwort);
?>
**Grins**
-
Merke grad, dass es doch nicht t... jetzt können auch falsche daten eingegeben werden! Und man kommt immer auf die admin.php
Lieben Gruß, EikePHP-Code:<?php
$aussage "Hallo Welt";
$antwort "Hallo Du";
function answer($antwort);
echo "$aussage";
answer($antwort);
?>
**Grins**
-
09.01.10 12:28 #7
- Registriert seit
- May 2007
- Ort
- Dresden (Sachsen)
- Beiträge
- 1.961
Ich hab nur deine portal.php verändert. Das heißt, dass du deine start.php noch anpassen musst.
In etwa so:
Code PHP: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
<?php session_start(); switch($_SESSION['benutzergroup']) { case 'X7X*********ryU7': include 'benutzer/admin.php'; break; case '**7**U**Yvcmnq**t': include 'benutzer/familie.php'; break; case '**SxgjBn0*****ei': include 'benutzer/kohlfahrt.php'; break; case 'im*ZT1vvt***qF*r': include 'benutzer/berlin.php'; break; case 'Wb*aiU*dN*lJrM**': include 'benutzer/meckpomm.php'; break; case 'OlS*Ez*AT**eN*tZ': include 'benutzer/eike-friends.php'; break; default: include 'benutzer/no.php'; break; } ?>
Geändert von einfach nur crack (09.01.10 um 12:34 Uhr)
Ich mag:- positive Bewertungen meiner Beiträge
- ein Danke für meine hilfreichen Beiträge
Dabei kann ich dir helfen: PHP --- Javascript --- Ruby --- Coffeescript --- CSS --- HTML --- Webtechnologien --- Shell --- UNIX
... noch was: falls du mit dem Thema hier fertig bist, dann kannst du es auch als erledigt markieren.
-
jop... habe ich aber schon gemacht: jetzt werden alle falschen nutzer auf no.php geleitet und alle richtigen entsprechend einsortiert!
oder ist das so falsch?PHP-Code:<?php
session_start();
$_SESSION['benutzergroup'] = $data['benutzergroup']; // Kannst du dann in start.php benutzen
if ($data['benutzergroup']=="X7X******JXP6ryU7")
{
include("benutzer/admin.php");
}
else if ($data['benutzergroup']=="Dc7pA******nqCt")
{
include("benutzer/familie.php");
}
else if ($data['benutzergroup']=="FJ******Bgyei")
{
include("benutzer/kohlfahrt.php");
}
else if ($data['benutzergroup']=="imw*****")
{
include("benutzer/berlin.php");
}
else if ($data['benutzergroup']=="Wb*******wv")
{
include("benutzer/meckpomm.php");
}
else if ($data['benutzergroup']=="OlS9********Z")
{
include("benutzer/eike-friends.php");
}
else
{
include("benutzer/no.php");
}
?>Geändert von dr-stein (09.01.10 um 12:37 Uhr)
PHP-Code:<?php
$aussage "Hallo Welt";
$antwort "Hallo Du";
function answer($antwort);
echo "$aussage";
answer($antwort);
?>
**Grins**
-
09.01.10 12:35 #9
- Registriert seit
- May 2007
- Ort
- Dresden (Sachsen)
- Beiträge
- 1.961
... das funktioniert so nicht. Schau dir lieber mal mein Beispiel an, was ich oben noch hinzugefügt habe.PHP-Code:$_SESSION['benutzergroup'] = $data['benutzergroup'];
Ich mag:- positive Bewertungen meiner Beiträge
- ein Danke für meine hilfreichen Beiträge
Dabei kann ich dir helfen: PHP --- Javascript --- Ruby --- Coffeescript --- CSS --- HTML --- Webtechnologien --- Shell --- UNIX
... noch was: falls du mit dem Thema hier fertig bist, dann kannst du es auch als erledigt markieren.
-
Danke... nun klappts! Habe dein Beispiel nicht gesehn!
aber habe noch ein Problem... Ich möchte nun bei der start.php anstatt der no.php gerne eine weiterleitung zur login.php haben. Habe also folgendes geändert:
bekomme dann aber folgende Fehlermeldung:PHP-Code:<?php
session_start();
switch($_SESSION['benutzergroup']) {
case 'X7XWCgpVJXP6ryU7':
include 'benutzer/admin.php';
break;
case 'Dc7pAUdEYvcmnqCt':
include 'benutzer/familie.php';
break;
case 'FJSxgjBn04IBgyei':
include 'benutzer/kohlfahrt.php';
break;
case 'imwZT1vvtMm2qFDr':
include 'benutzer/skat.php';
break;
case 'WbZaiUNdN8lJrMwv':
include 'benutzer/meckpomm.php';
break;
case 'OlS9EzvATZzeNptZ':
include 'benutzer/eike-friends.php';
break;
default:
Header ('Location: login.php');
break;
}
?>
Was mache ich hier falsch!HTML-Code:Warning: Cannot modify header information - headers already sent by (output started at /var/www/web378/html/www.schlueter.ws/l/mysql_connect.php:10) in /var/www/web378/html/www.schlueter.ws/l/start.php on line 30
PHP-Code:<?php
$aussage "Hallo Welt";
$antwort "Hallo Du";
function answer($antwort);
echo "$aussage";
answer($antwort);
?>
**Grins**
-
Hier meine mysql_connect.php
PHP-Code:<?php
$db_host = "localhost"; //Hostadresse zur MySql Datenbank (Normalerweise "localhost")
$db_user = "***"; //Der Benutzername für die MySql Datenbank
$db_password = "***"; //Das Passwort für die MySql Datenbank
$db_name = "usr_***_2"; //Der Name der MySql Datenbank
mysql_connect($db_host,$db_user,$db_password) or die (mysql_error()); //Wir stellen eine Verbindung zum MySql Server her
mysql_select_db($db_name) or die (mysql_error()); // Wir wählen unsere Datenbank aus
?>PHP-Code:<?php
$aussage "Hallo Welt";
$antwort "Hallo Du";
function answer($antwort);
echo "$aussage";
answer($antwort);
?>
**Grins**
-
09.01.10 13:09 #12
- Registriert seit
- May 2006
- Ort
- There is no place like 127.0.0.1
- Beiträge
- 3.521
Kann es ein, das in deiner mysql_connect.php hinten eine neue Zeile nach dem "?>" oder ein Leerzeichen ist?
Grüße
--
Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)
-
Ja... jetzt klappts!
Danke dir für deine Hilfe!
schönes Wochenende!
Gruß, EikePHP-Code:<?php
$aussage "Hallo Welt";
$antwort "Hallo Du";
function answer($antwort);
echo "$aussage";
answer($antwort);
?>
**Grins**
Ähnliche Themen
-
[PHP/mySQL] Login-System mit Sessions
Von xytrax im Forum PHPAntworten: 4Letzter Beitrag: 03.05.07, 22:34 -
Frage zu [PHP/mySQL] Login-System mit Sessions
Von EchseKiuta im Forum PHPAntworten: 9Letzter Beitrag: 01.09.04, 17:41 -
php/mysql Login mit Sessions
Von bleeeez im Forum PHPAntworten: 10Letzter Beitrag: 25.06.04, 11:42 -
login mit sessions über mysql
Von Slowdown im Forum PHPAntworten: 3Letzter Beitrag: 06.08.03, 01:41





Zitieren

Login






[PHP][Snippet] Array zu XML konvertieren