Session_start()

Jemand bereits Erfahrungen mit Sessions gemacht? Habe versucht folgendes

auszuführen und bekam folgenden Fehler:

[quote]Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /users/unics/www/test/01_Test/test.php:12) in /users/unics/www/test/01_Test/test.php on line 5

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /users/unics/www/test/01_Test/test.php:12) in /users/unics/www/test/01_Test/test.php on line 5[/quote]

poste mal den code hier, ich hab da so ne ahnung

Da gibt es eigentlich nicht viel Quellcode:

test.php:

[code]

<?php function test() { session_start(); } ?> [/code]

01_Einfuehrung.php:

<?php

include 'test.php';
include '../../structure.php';

test();

$content = '

Ich bin der Content.

';

echo_begin( $content, "07.07.2011", "07.07.2011");

?>

echo_begin baut nur die Standard-Seite mit der üblichen Struktur und Layout mit dem content $content auf und macht ansonsten nichts mit Sessions.

hi,

vor dem session_start(); darf keine ausgabe sein weißt du oda?

lg

[quote=“unics”]
01_Einfuehrung.php:

[code]<?php
session_start();
include ‘test.php’;
include ‘…/…/structure.php’;

$content = ’

‘.a(“Definition”,“h4”).’

';

echo_begin( $content, “07.07.2011”, “07.07.2011”);

?>
[/code][/quote]

[quote]Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /users/unics/www/test/01_Test/test.php:12) in /users/unics/www/test/01_Test/test.php on line 5

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /users/unics/www/test/01_Test/test.php:12) in /users/unics/www/test/01_Test/test.php on line 5[/quote]

Das ist so ziemlich der häufigste Fehler, den es gibt. 5 Sekunden googeln hätte das Problem gelöst :wink:

@ Ryon

ok das klappt. Aber wenn ich zuerst test.php inkludiere und anschließend test() aufrufe klappt es nicht mehr. Die Möglichkeit Funktionen zu definieren und auszuführen möchte ich jedoch nicht missen. Und ein include gibt doch nichts aus?

es reicht einfach nur ein leerzeichen vor dem <?php oder nach dem ?> … was du probieren kannst wäre die test.php nicht sauber abzuschließen also z.b.

[quote]<?php
function bla blab la

KEIN ?>[/quote]

lg flo

Meine Fresse. Das das klappt. Wie dreckig dieses PHP doch eigentlich ist !haue.

Danke.

was macht denn die

[quote]
include ‘…/…/structure.php’;[/quote]
sicher, dass da keine ausgabe drin is?
du rufst nämlich die funktion auf, nachdem du die structure.php includierst.

[quote=“emil”]sicher, dass da keine ausgabe drin is?
du rufst nämlich die funktion auf, nachdem du die structure.php includierst.[/quote]

Problem habe ich bereits durch den kleinen “Hack” gelöst. Und daran lag es ja auch nicht, da ich bereits ausprobierte als erstes test.php zu inkludieren und gleich sofort test() auszuführen (ohne Erfolg).

[quote=“hummer”]
Das ist so ziemlich der häufigste Fehler, den es gibt. 5 Sekunden googeln hätte das Problem gelöst :wink:[/quote]

Da kannst du mal sehen wie kompetent und schnell hier einen geholfen wird :smiley: . Und sind 5 Minuten für dich tatsächlich akzeptabel? Bei der Häufigkeit der Probleme, die ich bekomme, liegt die Grenze bei mir bei 2 Minuten (zumindest bei kleineren Fehlern). Ansonsten würde man doch 25 - 30% der Arbeitszeit mit suchen verbringen und das will doch keiner.

Was kann bitte PHP dafür wenn du nen Fehler machst?
Hier hat PHP richtig gehandelt, schließlich ist alles außerhalb von <?php ?> normaler Text.

Selbst der gepostete Code von der test.php hat nen Leerzeichen :ps: [size=85](solltest also mal nen Editor nutzen der auch Leerzeichen anzeigen kann, sowas sollte man immer anhaben als Programmierer. Theoretisch sogar das Zeilenende… nur das wiederum stört mich ein „wenig“ :wink:)[/size]

Eine Scriptsprache, die nicht mit Leerzeichen umgehen kann :unamused:

Oh, da verstehst du was falsch.
PHP geht sehr sensibel mit Leerzeichen in Ausgaben um. Alles außerhalb von „<?php ?>“ wird in PHP als Ausgabe gehandelt und EXAKT so ausgegeben, wie es in den jeweiligen Dateien vorzufinden ist. Da wird nichts ignoriert. Wäre ja auch fatal wenn PHP einfach Bestandteile der Ausgabe ignorieren würde.
Die eigene Unwissenheit über diese Tatsache der Scriptsprache in die Schuhe zu schieben ist da meiner Meinung nach der falsche Ansatz.

mfg Balmung

So ein Blödsinn. Man schiebt aus Unwissenheit immer anderen die Schuld zu. Zumindest mache ich es immer so :wink: .

Ja, das ist traurig.

Moralapostel! Du gehst wohl auch zum Lachen in den Keller :neutral_face: .

Naja, ich bin ein bisschen naiv was Scherze angeht. Bekomme das nicht immer gleich mit.

Oh, da verstehst du was falsch.
PHP geht sehr sensibel mit Leerzeichen in Ausgaben um. Alles außerhalb von „<?php ?>“ wird in PHP als Ausgabe gehandelt und EXAKT so ausgegeben, wie es in den jeweiligen Dateien vorzufinden ist. Da wird nichts ignoriert. Wäre ja auch fatal wenn PHP einfach Bestandteile der Ausgabe ignorieren würde.
[][/quote]ist leider nicht gänzlich korrekt^^

Result: “Line 1” and “Line 2” r written on the same line…

Sowas haben leider einige Sprachen… eben um einigen “schlauen” alles recht zu machen um eben Fehlermeldungen oder vermeidliche Bugs zu verhindern… Ich persönlich finde dieses verhalten falsch da Programmiersprachen gefälligst einem gescheiten Syntax folgen sollten und nicht für “dumme” Leute variable sein sollen^^ [size=85](Programmiersprachen sollten nicht zu sehr vermenschlicht werden da wir kein gescheites Vorbild sind, außerdem haben die PCs darunter zu leiden…)[/size]