session start() macht Fehler ?

  • Wenn ich mich im Chat einlogge und dann auf einer anderen Seite mit der session mein Profil bearbeiten will fragt man doch die session ab

    PHP
    <?php
    session_start();
     
    $werbistdu=$_SESSION['userid'];
    if(empty($_SESSION['userid'])){
    echo "Du bist nicht eingeloggt";
    }else{
    echo "Hallo ".$werbistdu;
    }
    ?>

    weiter unten will ich dann das Profil bearbeiten wenn ich der user bin bzw auf ein Fremden Profil bin dann nur kucken dürfen.


    Bekomme aber jetzt den Fehler und habe kein Plan wie ich den beseitigen kann

    http://sebastian1012.bplaced.n…ofil.php?profil=basti1012


    Wie zu sehen steht da jetzt nix von Profil bearbeiten ,ist ja Logisch . Wenn ich mich einlogge steht da hallo Basti und profil bearbeiten,also muß es ja irgendwie doch funktionieren mit der session() aber der Fehler ist der gleiche ob eingeloggt oder nicht

  • Zitat

    Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /users/sebastian1012/www/homepagebasti1012/chat/eigener_chat/php/profil.php:2) in /users/sebastian1012/www/homepagebasti1012/chat/eigener_chat/php/profil.php on line 5

    Das wäre dann der Fehler, den Du hättest posten können.


    Cannot send session cookie - headers already sent -- headers werden gesendet, sobald das erste Zeichen an raus geht (gesendet wird).

    by (output started at -- output|Ausgabe (echo, var_dump, ...) started at ...


    session_start muss immer ausgeführt werden, bevor das erste Zeichen ausgegeben wird.

  • das session() ganz am Anfang stehen muß das wußte ich ja eigentlich,habe ich auch gemacht .Dachte ich zumindest.

    Davor wahr nix auser eine Leerzeile und das <?php .

    Habe jetzt die Leerzeile weg gemacht und auch die Leerzeichen davor und jetzt geht es auch.

    Dachte immer das Leerzeilen nicht zum Code gehöhren.

    Innerhalb des <?php ?> hätte ich es vieleicht noch verstanden ,aber die leerzeile wahr noch vor den <?php.

    Nagut es läuft jetzt Dank dir

  • die Leerzeile ist schon ein Output in PHP

    ???? ... ist es nicht die Leerzeile im HTML Teil (vor dem <?php)? Diese wird ja vom Server direkt ausgeliefert.... der PHP Pharser würde ja nur was an den Browser liefern, wenn es mit 'echo' oder 'print' getriggert wird - oder bin ich da auf dem Holzweg?

  • Nein, der Begriff ist nicht korrekt gewählt, aber die Begründung trotzdem richtig.

    Jede Ausgabe, egal ob in PHP oder ausserhalb initiiert eine "Ausgabe" an den Browser über HTTP, wenn man jetzt mal das OutputBuffering vernachlässigt.

    Jedes Zeichen ausserhalb des PHP Scope ist eine direkte Ausgabe an den Browser.


    Vor einem session_start() darf keine Ausgabe erfolgen, ganz egal welcher Art.


    Was die Verwirrung angeht, Du kannst ja auch folgendes schreiben:

    PHP
    <?php
    echo '<table>';
    ?>
    <tr>
      <td>...</td>
    <tr>
    <?php
    echo '</table>';

    An den Browser wird alles gesendet, also der komplette Table. Wenn nur das gesendet werden würde, was der PHP Interpreter verarbeitet, würde das kaputtes HTML ergeben. PHP ist im Grunde nur eine Template-Sprache. Der Interpreter springt bei bspw. <?php ein und lässt den Rest ausserhalb seines Zuständigkeitsbereiches quasi "links liegen". Gesendet wird es allerdings dennoch.


    und das vor session_start() oder header() nicht sein.

    Hier ist nochmal eine kurze allgemeine Erklärung dazu: http://www.php-rocks.de/thema/…headers-already-sent.html

  • Schön. Ich habe den Fehler wieder ,

    Code
    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /users/sebastian1012/www/homepagebasti1012/chat/eigener_chat/php/profilbearbeiten.php:1) in /users/sebastian1012/www/homepagebasti1012/chat/eigener_chat/php/profilbearbeiten.php on line 1

    und diesmal habe ich gar nix vor der session stehen ,nur das


    <?php session_start();


    Hat einer nee Idee wie man das jetzt beheben kann. Im Netzt finde ich nur das was hier auch schon gesagt wurde,nur es steht nix davor das < ist Zeichen 1 vom document

  • Ja das komische ist Zeile1 ist das

    <?php

    session_start();

    ?>


    Welches Script mußt du den sehen ? Das einlog Script oder dieses wo mit ich das vorhanden Profil bearbeiten will?

    Wo könnte den der Fehler noch sein ,weil im rest des Scriptes greife ich nur noch auf der Db zu wo die Daten des Profils geändert werden,ansonsten benutze ich die Session gar nicht .

  • Was auch in dem Link erklärt ist, wenn er sich den durchlesen würde...

    Im Link selber habe ich nix mit bom gefunden. Nachdem ihr es gesagt habt ,habe ich auf der Seite gesucht und auch was darüber gefunden und GELESEN.


    Gibt es ein Editor der das erkennen kann ? Habe in meinen nix gefunden wie man das sichtbar machen könnte.


    Habe jetzt neues Document auf gemacht und alles unterhalb session_start() Kopiert und das davor nochmal neu geschrieben.

    Jetzt ist der Fehler weg . Also wahr es wohl BOM ,wie immer auch der da hin kommt

  • Ist das normal. Ich habe meine Scripte immer über live.access geschrieben und bearbeitet. Da die den Server umbauen komme ich da zur Zeit nicht mehr rein. Habe dann eben meine Chat index Datei über Filezilla geholt und im Editor geladen ,aber nix dran geändert .Habe zwar speichern gedrückt aber trotzdem nix geändert . Jetzt kucke ich im Chat und schon wieder der Fehler da.

    Was mache ich da falsch? Muß man da im Editor was bestimmtes einstellen?

    Ich habe den Notpas++ v6.9.2 ,fals den einer kennt.


    Das kann doch nicht wa(h)r sein.

    Mit H Richtig ?

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!