| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

28-10-2002, 12:12
|
|
arkim
Junior Member
|
|
Registriert seit: Oct 2002
Beiträge: 84
|
|
Fehler in meiner login.php
Also folgendes Problem. Es geht um einen Login per PHP in eine MySQL - Datenbank. Dies ist die login.php:
PHP-Code:
<?php
session_destroy();
session_start();
session_register("username");
session_register("level");
session_register("logincheck");
$dbserver = "*mein host*";
$dbname = "*meinedb*";
$dbuser = "*meinusername*";
$dbpass = "";
$connect = @ mysql_connect($dbserver, $dbuser, $dbpass);
if (!$connect)
{
die ("Login fehlgeschlagen");
}
mysql_select_db($dbname,$connect);
$query = "SELECT level FROM user WHERE name = '".$username."' AND pass = '".$passwort."';
$result = mysql_query($query,$connect);
$getline = mysql_fetch_array($result,MYSQL_ASSOC);
if (!$getline)
{
die ("Login failed");
}
mysql_close($connect);
$level = $getline[level];
$logincheck = 1;
?>
<html>
<head>
<meta http-equiv="refresh" content="0; URL=index.php?loc=main2.php">
<link rel="stylesheet" href="stt.css" type="text/css">
</head>
<body bgcolor="#000000" class="sttnormal">
<div align="center"><br>
<br>
Einen Moment bitte.</div>
</html>
Also, wenn ich das ausführe kommt "Parse error: parse error in login.php on line 23", lösche ich die Zeile 23 kommt einer anderswo. Ich kann mir das nicht erklären, außer, dass das Skript voller Fehler sein müsste. Achja, ich hät auch noch kurz ne Frage: Wenn ich mit "die" den Loginvorgang beende, wie mache ich das, dass automatisch auf die index.php weitergeleitet wird?
|

28-10-2002, 12:17
|
TBT
 Moderator
|
|
Registriert seit: Sep 2002
Ort: Berlin
Beiträge: 2.776
|
|
PHP-Code:
$query = "SELECT level FROM user WHERE name = '".$username."' AND pass = '".$passwort."';
fehlt am Ende ein "
nach die(...) kannste garnichts mehr machen.
dann dafür besser eine Weiterleitung zB:
header("Location loginfalse.html");
|

28-10-2002, 13:57
|
|
arkim
Junior Member
|
|
Registriert seit: Oct 2002
Beiträge: 84
|
|
Oh, hatte ich übersehen. Funzt jetzt. Aber wie mache ich das mit dem die()? Ich kann doch header() nur an den Anfang eines Skriptes und nicht mittendrin, oder?
|

28-10-2002, 14:00
|
TBT
 Moderator
|
|
Registriert seit: Sep 2002
Ort: Berlin
Beiträge: 2.776
|
|
du kannst header auch am Ende des Scriptes machen,
du darfst vorher nur nichts ausgegeben haben
|

28-10-2002, 19:17
|
|
arkim
Junior Member
|
|
Registriert seit: Oct 2002
Beiträge: 84
|
|
Also kann ich den header() auch noch nach dem connecten der Datenbank in eine if - Funktion verpacken?
|

28-10-2002, 19:23
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.188
|
|
Jo, Header darf überall genutzt werden. Du musst lediglich darauf achten, dass Vorher keine Ausgabe der Seite erfolgt ist (also kein echo, print, die, ...). Da in diesem Fall dann schon der HTTP-Header der Seite gesendet werden wüde. Denn mit header() sendest du ja deinen eigenen Header und zwei Headers kann es ja schlecht geben. Hoffe das ist verständlich. Aber spätestens bei der Fehlermeldung solltest du die Problematik verstehen.
*verwirr*
|

28-10-2002, 19:24
|
|
MelloPie
PHP Master
|
|
Registriert seit: Jan 2002
Ort: Hessen
Beiträge: 4.380
|
|
ja.
__________________
Beantworte nie Threads mit mehr als 15 followups...
Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25
|

28-10-2002, 22:33
|
|
arkim
Junior Member
|
|
Registriert seit: Oct 2002
Beiträge: 84
|
|
PHP-Code:
if (!$connect)
{
die ();
header("Location: index.php?loc=main.php");
}
So wollte ich das lösen. Funzt aber irgendwie net ... es kommt nur ne leere weiße Seite.
|

28-10-2002, 22:46
|
|
Flashfactor
Junior Member
|
|
Registriert seit: Sep 2002
Ort: Graz/Austria
Beiträge: 178
|
|
hast net genau gelesen was vorher stand.
die() gilt auch als ausgabe wie echo print usw.
Probiers mal so:
PHP-Code:
if (!$connect)
{
header("Location: index.php?loc=main.php");
exit;
}
Das exit nach dem header ist nur zur sicherheit.
__________________
mfg Flashfactor
Gebildet ist, wer weiß, wo er findet, was er nicht weiß.
|

28-10-2002, 22:54
|
|
arkim
Junior Member
|
|
Registriert seit: Oct 2002
Beiträge: 84
|
|
Danke. Jetzt funzts.
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|