Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   PHP + Sessions + Warnung: Cannot send session cache limiter (https://www.delphipraxis.net/20247-php-sessions-warnung-cannot-send-session-cache-limiter.html)

manuel 15. Apr 2004 08:54


PHP + Sessions + Warnung: Cannot send session cache limiter
 
Hi Leute,

ich habe mit PHP eine Session erzeugt, und einige Uservariablen angefügt.
Auf der nächsten Seite hole ich die Session wieder, und überprüfe, ob der Benutzer bereits angemeldet ist:
Code:
<?php
require("global_settings.php"); //hier stehen nur einige globale Variablen
session_start();
echo $s_username; // in Session gespeichert
echo $s_user_id; // in Session gespeichert


if(isset($s_username) && isset($s_user_id) && $s_username !='none' && $s_user_id != 0)
{
   echo "Logged In";
}
else {echo "<head><meta http-equiv='refresh' content='0;URL=./access_denied.html'></head>";die;}

?>
Beim ausführen erscheint jedoch folgende Warnung:
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/yp/inf/inf517/Publicite/reminder/verify_user.inc.php:2) in /home/yp/inf/inf517/Publicite/reminder/verify_user.inc.php on line 3

Zur Erklärung:
Die Datei heisst verify_user.inc.php

Hat jemand eine Idee, an was das liegen könnte? :gruebel:

Gruß

Manuel

DracoBlue 15. Apr 2004 09:17

Re: PHP + Sessions + Warnung: Cannot send session cache limi
 
Hatte dieses Problem auch schon mal.

Wahrscheinlich setzte deine "unwichtige" : global_settings.php.
Bereits einen eigenen Header.

Head, wegnehmen könnte etwas ändern.

Wozu programmierst du das? Ich hatte diesen Fehler bei dem phpBB-Board, als ich versucht habe eine Lehre Seite mit Sessions zu erstellen.

Mfg, Draco

manuel 15. Apr 2004 09:25

Re: PHP + Sessions + Warnung: Cannot send session cache limi
 
@DracoBlue:
Vielen Dank für deine Antwort, an dem einbinden hat es aber nicht gelegen.
Das gibt einen kleinen Kalender mit Erinnerungsmail und mehreren Benutzern. Die Sessions dienen der Benutzerverwaltung.
Benutze aber kein PHPbb, sondern programmiere per Hand...
so "unwichtig" ist die global_settings.php gar nicht.
Die Variablen brauche ich in jedem Script des Projektes.
Sie beinhalten Einstellungen für die Datenbank, usw...

Die Lösung:
vor session_start()
darf keine Ausgabe an den Browser erfolgen.
Bei mir war vor Session_start() eine Leerzeile, was auch schon als Output zählt.

Hätte nie gedacht, das Leerzeilen solche Fehler verursachen können :wall:

Gruß

Manuel

DracoBlue 15. Apr 2004 09:28

Re: PHP + Sessions + Warnung: Cannot send session cache limi
 
Hey wirklich? Cool, schau ich gleich mal nach :P vielleicht hilft mir das ja auch.

Mfg, Draco

manuel 15. Apr 2004 09:32

Re: PHP + Sessions + Warnung: Cannot send session cache limi
 
Ja wirklich ;-)

gib in Google mal
PHP + Sessions + Warnung: Cannot send session cache limit
ein. Da gibts jede Menge Infos dazu.
Die hatte ich schon gefunden, nur das mit der Leerzeile, war nicht gleich zu sehen...

Manuel

Jelly 12. Sep 2004 15:38

Re: PHP + Sessions + Warnung: Cannot send session cache limi
 
Ich muss diesen Thread nochmal aufgreifen, da ich jetzt auch an diesem Problem rumsitz.

Unter Dreamweaver kann man wunderbar mit Templates arbeiten, so auch ich in diesem Code:
Code:
<? include ("header.php") ; $URL = $_SERVER['REQUEST_URI'] ; ?>
<? if ($LoggedIn) { ?>

 
<h3>Das ist die Telefonliste (zu Testzwecken noch ohne Telefonnummern) </h3>
<?
  $Server = mysql_connect ("$member_dbhost","$member_dbuser","$member_dbpasswd") ;
  mysql_select_db ("$member_dbname",$Server) ;
  $sql = "SELECT * from tri_athleten order by Name, Vorname" ;
  $result = mysql_query ($sql,$Server) ;
  $Datensatz = mysql_fetch_array ($result) ;
  while ($Datensatz) {
    $NameVorname = $Datensatz["Name"] . " " . $Datensatz["Vorname"];
   echo "

$NameVorname</p>" ;
   $Datensatz = mysql_fetch_array ($result) ;               
  }
  mysql_close ($Server) ;
?>
 
<? } else {
     echo "<META HTTP-EQUIV=\"refresh\" content=\"0;URL=notyetloggedin.php\">";
   }
?>
<? include ("footer.php") ; ?>
In der ersten Zeile wird header.php eingebunden, in der session_start aufgerufen wird.

Ich krieg, wie der Titel besagt, auch die Fehlermeldung im Browser...

Schreib ich aber statt
Code:
<? include ("header.php") ; $URL = $_SERVER['REQUEST_URI'] ; ?>
einfach nur
Code:
<? include ("header.php") ; $URL = $_SERVER['REQUEST_URI'] ; ?>
klappt es. Also liegt es an dem Tag, was ja auch bereits diverse Seiten im Internet beschreiben, daß vor Aufruf von session_start keinerlei HTML Tags verwendet werden dürfen.

Mein Problem besteht nun darin, daß Dreamweaver aber genau diesen Tag braucht, um das Template intern zu verwalten... Das Ganze nervt mich bischen, da ich vermeiden will, diese Dreamweaver Tags jedesmal entfernen zu müssen. Ausserdem ist da ja nicht Sinn der Sache...

Hat da jemand einen Lösungsvorschlag?

Gruß,


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:17 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz