mysql variablen werden nicht angezeigt
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abfragen
bedingung
code
dank
domain
fehler
file
geld
gott
header
inhalt
jemand
login
meldung
problem
punkt
session
sparen
spiel
stimmen
-
heyho
also ich hab dieses problem und hoffe das mir jemand kann :
wenn man sich auf meiner seite eingeloggt hat wird man ins usermenü weitergeleitet .. so .. und jetz kommt der fehler .. wenn das hier einbaue :
if(!session_is_registered('user') || $_SESSION['user'] == "") { header("location:login.php"); die; }
kommt der fehler header already sent .. ( wenn ich das template usw. weglasse wird man direkt wieder zum login geleitet.
und dann hab ich noch ein problem .. wenn das funktioniert bzw. wenn ich das if.. rauslasse (wodurch die seite unsicher wird) dann werden die variablen von mysql nicht angezeigt ..
hier mal das ganze script vom usermenü :
<?php
session_start();
require("config.inc.php");
if (isset($_GET['hello'])) {
echo 'Hello Master!';
die;
}
$template = implode("",file("style.html"));
$template = str_replace("<?inhalt?>", $inhalt, $template);
echo ($template);
if(!session_is_registered('user') || $_SESSION['user'] == "") {
header("location:login.php");
die;
}
$abfragen=mysql_query("select * from dieb_user_".$digit." WHERE `user` = '".$_SESSION['user']."'");
$row2 = mysql_fetch_array($abfragen);
$id = $row2["id"];
$geld = $row2["geld"];
$bekid = $row2["bekid"];
echo $inhalt .= '<div align="center"><b>Willkommen '.$_SESSION['user'].'</b><br><table border="0" cellpsacing="0" cellpadding="4" width="100%">
<tr><td><center><a href="userdaten.php?auswahl=password">Passwort ändern</a></center></td><td><center><a href="logout.php">LogOut</a></center></td></tr>
</table>
<BR>Du hast schon:<BR>
'.$geld.' '.$waehrung.'<BR>
<BR>Du hast schon:<BR>
'.$bekid.' Leute <BR>
<BR>Dein Link lautet:<BR>
'.$domain.'/spiel.php?id='.$id.'
</div>';
?>
was ist falsch an dem script ?
ich hoffe auf hilfe ... liebe grüße ^^
EDIT : ich hatte das gestern schon gelöst aber irgendwie hat sich wieder verändert .. weiß gott wie >_<
und jetzt weiß ich nicht mehr wie ich das geschafft hatte .. hab alles ausprobiert aber nichts funktioniert ..
p.s. register globals ist ausgeschaltet (wenn das wichtig ist !? )
Beitrag geändert: 2.1.2009 16:43:36 von dieb -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Vor dem Aufruf von header darf keine Ausgabe kommen, bei dir wird aber schon echo $template ausgegeben. Setze deine Überprüfung am besten direkt unter require('config.inc.php');, dann sollte sich das Problem von selbst lösen.
-
okay ..damit ist das header problem gelöst =) danke
aber dann wird man direkt weitergeleitet .. man soll aber ja nicht weitergeleitet werden ..
-
Wenn nur eine Meldung kommen soll, dass man nicht eingeloggt ist, würde ich das header dort lassen wo es jetzt ist, aber durch ein echo "Sie sind nicht eingeloggt"; erstezen. Wenn auch keine Meldung kommen soll, sondern eine Weiterleitung nach z.B. 5 sek, machst du einen "normalen" meta-refresh echo '<meta http-equiv="refresh" content="5; URL=login.php">'; auch ganz ohne header.
-
okay danke.. aber mein problem is ja jetzt das man immer umgeleitet wird .. bzw immer diese meldung kommt ..
--->aber wenn man sich eingeloggt hat soll ja stattdessen der link und die punkte usw. angezeigt werden ..... -
Bist du dir sicher, dass $_SESSION['user'] überhaupt belegt ist? Was gibt echo oder var_dump($_SESSION) aus?
Wenn die Session stimmt, dann könnte auch die Logik deiner Überprüfung nicht stimmen. Bei negativen Überprüfungen, die man verknüpft, ist && besser als ||, denn sobald sonst nur eine Sache nicht erfüllt ist, wird die ganze Bedingung wahr. Außerdem kannst du dir sparen session_is_registered zu prüfen, das ist veraltet, $_SESSION['user']=='' sollte ausreichen. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage