[function.session-start]: Cannot send session cache limiter

  • Hallo
    Vorab möchte ich sagen, das ich noch ein totaler Anfänger bin. Die testseite ist http://onlinewetten.myfacepage.de

    Meine Fehlermeldung ist :
    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/www/web413/html/onlinewetten/index.php:2) in /home/www/web413/html/onlinewetten/header.php on line 3

    header.php
    <?php
    <?php
    session_name("cls");
    session_start();
    ?>
    <?php

    // Wenn Kein Register Globals an
    /*
    if (!ini_get('register_globals')) {
    $types_to_register = array('GET','POST','COOKIE','SESSION','SERVER');
    foreach ($types_to_register as $type) {
    if (@count(${'HTTP_' . $type . '_VARS'}) > 0) {
    extract(${'HTTP_' . $type . '_VARS'}, EXTR_OVERWRITE);
    }}}
    */

    include("config.inc.php");
    mysql_connect("$dbserver","$dbuser","$dbpass");
    mysql_select_db($dbdata);


    // Variablen, unter anderem auch GLOBAL
    $d = $_REQUEST[d];
    $user = $_POST[user];
    $pass = $_POST[pass];
    $s_user = $_SESSION[user];
    $s_pass = $_SESSION[pass];
    $s_login = $_SESSION[login];

    // Einloggen bearbeiten, nur wenn User und PW nicht leer sind und wenn aktuelle Seite nicht Logout ist.
    if($d !== "logout" && isset($user) && isset($pass)){

    // DB Anfragen
    $mdc = mysql_query("SELECT * FROM w_user WHERE user = '".addslashes(strtolower($user))."' AND pass = '".addslashes(strtolower($pass))."'");
    $usrd = mysql_fetch_array($mdc);

    // Wenn Daten stimmen nach Session reggen
    if($usrd[id] !== "" && $usrd[pass] == $pass){
    $_SESSION[user] = $user;
    $_SESSION[pass] = $pass;
    $_SESSION[login] = "ok";
    $lg = "ok";
    // Wenn Nicht, dann keine Session
    }else{
    session_unset();
    session_destroy();
    $lg="";
    }

    // Wenn User und PW leer sind dann nicht
    }else{

    // Prüfung ob eingeloggt:
    if($_SESSION[login] == "ok"){
    $lg = "ok";

    $wuser0 = mysql_query("SELECT * FROM w_user WHERE user='$s_user'");
    $usrd = mysql_fetch_array($wuser0);

    }

    }

    ?>

    <?php
    echo "<html><head><title>".$wstitel." - ".$wssbttl."</title><meta http-equiv=\"expires\" content=\"0\"><meta http-equiv=\"pragma\" content=\"no-cache\"><meta http-equiv=\"cache-control\" content=\"no-cache\"><meta http-equiv=\"content-language\" content=\"de\"><meta http-equiv=\"content-type\" content=\"text/html; charset=iso-8859-1\"><meta http-equiv=\"imagetoolbar\" content=\"no\"><link rel=stylesheet href=style.css type=text/css></head><body bgcolor=white topmargin=25 marginheight=25>";
    ?>
    <style type="text/css">
    body {
    background-color: #FCF;
    }
    </style>


    <table width="1200" border="0">
    <tr>
    <td width="147" rowspan="2">&nbsp;</td>
    <td width="1030">&nbsp;</td>
    <td width="9">&nbsp;</td>

    <td rowspan="10"><table width="990" border="0">
    <td colspan="2"><div align="left">
    <img src="images/header.jpg" width="1000" height="100" alt="wetten.myfacepage.de" longdesc="http://wetten.myfacepage.de" />

    index.php


    <?php
    include "header.php"
    ?>
    &nbsp;</td>
    </tr>
    <tr>
    <td width="150" valign="top"><?php
    include("menulinks.php");
    ?>&nbsp;</td>
    <td width="1020"><table border="0" cellspacing="0" cellpadding="0" width="718">
    <tr>
    <td width="674" align="center" valign="top"><table border="0" cellspacing="0" cellpadding="0" width="718" align="center">
    <tr>
    <td width="44" valign="top"><img src="images/space.gif" alt="" width="10" height="1" align="absmiddle" /></td>
    <td width="674" align="center"><p align="center" class="aws">Wir wetten auf alle Sportarten Weltweit<br />
    <script type="text/javascript"><!--
    google_ad_client = "ca-pub-7884126651227815";
    /* 728X90 Leaderboard */
    google_ad_slot = "5543259361";
    google_ad_width = 728;
    google_ad_height = 90;
    //-->
    </script>
    <script type="text/javascript"
    src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
    </script>
    <br />
    </p></td>
    </tr>
    <tr valign="top" class="qwe">
    <td colspan="2" class="qwe">&nbsp;</td>
    </tr>
    <tr valign="top">
    <td colspan="2"></td>
    </tr>
    <tr valign="top">
    <td colspan="2">&nbsp;
    <?php

    // Variablen
    $wette = $_REQUEST[wette];
    $tag = $_REQUEST[tag];


    // Wenn wette nicht "" ist, dann Seite istgleich wette, falls nicht - Wenn tag nicht "" ist, dann Seite istgleich tag
    if($wette!=""){
    $d = "wette";
    }else
    if($tag!=""){
    $d = "tag";
    }

    // Wenn keine Seite dann Seite istgleich home
    if(file_exists($d.".inc.php")==1){
    include($d.".inc.php");
    }else{
    if($d == "logout"){
    session_unset();
    session_destroy();
    $lg="";
    echo " <font size=3><b>Logout</b></font><br><br><br>Sie wurden efolgreich ausgeloggt... ";
    echo "<meta http-equiv=\"refresh\" content=\"3; URL=index.php\">";
    }else{
    include("home.inc.php");
    }
    }

    ?></td>
    </tr>
    <tr valign="top">
    <td colspan="2" align="left"><script type='text/javascript' src='http://www.BannerChange.net/showbanner.php?u=Pitter1803&amp;t=2&amp;f='></script>
    <script language="JavaScript" type="text/javascript">function hit(hitlink) {if(document.images) {(new Image()).src=''+hitlink+'';}return true;}</script><br />
    <img src="images/square.gif" alt="" width="700" height="1" /><br />
    <br />
    <span class="footer">Ein Service von <?php echo $wstitel; ?> &nbsp;|&nbsp; <a href="index.php?d=impressum" class="footer">Impressum</a><br />
    <br />
    Copyright &copy; by <a href="http://wetten.myfacepage.de">Wetten.MyFacePage.de</a><a href="http://wetten.myfacepage.de" class="footer" target="_blank"></a> - Alle Rechte vorbehalten</span></td>
    </tr>
    </table>
    <p>&nbsp;</p></td>
    </tr>
    </table>
    </td>
    <td width="6">&nbsp;</td>
    </tr>
    <tr>
    <td>&nbsp;</td>
    <td><div align="center">Sie m&ouml;chten sich eine Private MyFacePage erstellen, oder Sie m&ouml;chten Ihre Homepage oder Ihre Hobbys Interessen anderen im Internet zeigen. Dann sind Sie hier richtig. Hier k&ouml;nnen Sie v&ouml;llig kostenlos Ihre W&uuml;nsche verwirklichen.<br />
    Lassen Sie Ihrer Kreativit&auml;t freien lauf bei <a href="http://www.myfacepage.de">http://www.myfacepage.de</a></div></td>
    <td>&nbsp;</td>
    </tr>
    <tr>
    <td>&nbsp;</td>
    <td><p class="test"><a href="http://www.myfacepage.de">http://www.myfacepage.de</a></p></td>&nbsp;</td>
    <td width="6">&nbsp;</td>
    </tr>
    <tr>
    <td>&nbsp;</td>
    <td><a href="http://www.germantop.com/" onmousedown="return hit('http://www.germantop.com/in.php?id=3753')" target="_blank"><img src="http://www.germantop.com/images/vote2.gif" alt="Topliste GermanTop" border="0" align="baseline" />&nbsp;<a href="http://www6.topsites24.de/ts/ts.cgi?klick=178&tl=nongjo" target="_blank"><img src="http://logo.topsites24.de/pics/top.gif" alt="Joeys International - Topsites" border="0" align="top" /></td>
    <td>&nbsp;</td>
    </tr>
    </table>
    </body></html>


    Danke schonmal im vorraus
    Peter


  • Hast du das Script selber geschrieben?
    Falls ja:
    Da du wie du selber sagst noch Anfänger bist, fang gar nicht erst mit sowas an:

    PHP
    if (!ini_get('register_globals')) {
    $types_to_register = array('GET','POST','COOKIE','SESSION','SERVER');
    foreach ($types_to_register as $type) {
    if (@count(${'HTTP_' . $type . '_VARS'}) > 0) {
    extract(${'HTTP_' . $type . '_VARS'}, EXTR_OVERWRITE);
    }}}


    Das ist ganz übler Programmierstil, register_globals sollte auf Servern grundsätzlich deaktiviert sein und das ist auch gut so. Mindestens zwischen Daten vom Server (SESSION) und Daten vom Client (GET, POST, COOKIE, teilweise SERVER) muss unterschieden werden. Tipp-Faulheit ist kein Argument. ;)

    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

  • Zu meiner Verteidigung, muss ich sagen, das ich das script mal erworben habe, und es jetzt nur mit einer header.php und menu.php verändert habe.

  • Habe ich schon vermutet, daher die Frage vorab. Wenn du selber noch andere Sachen programmieren willst guck dir diese Praxis da bloß nicht ab :D

    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook