Header(); und setcookie();

12/02/2012 19:34 xExtension#1
Also ich hab ein Kleines porblem mit meinem aktuellem Projekt.. ich bin an einer neuen webseite dran und wollte Cookies setzen für die Aktuelle Session..

Jedoch will das nicht so wie ich will.. Ich kann nicht umleiten und auch keine Cookies setzen..

Ich benutze PHP 5.4 (5.4.9) mit SQLSRV Treiber...

PHP Code:

setcookie
("TestCookie"'Test'time()+3600); 

header('Location: http://google.com/'); 
PHP Code:
[02-Dec-2012 19:24:18 Europe/BerlinPHP Warning:  Cannot modify header information headers already sent by (output started at C:\inetpub\vhosts\wwwhome\index.php:164in C:\inetpub\vhosts\wwwhome\function\func.login.php on line 89 
12/02/2012 19:56 Mikesch01#2
Hi,

es kommt darauf an, wo sich dieser Code im Quelltext befindet.

Header müssen gesetzt werden, bevor eine HTML-Ausgabe erscheint.
12/02/2012 20:07 xExtension#3
Quote:
Originally Posted by Mikesch01 View Post
Hi,

es kommt darauf an, wo sich dieser Code im Quelltext befindet.

Header müssen gesetzt werden, bevor eine HTML-Ausgabe erscheint.
Das funkt nicht...

PHP Code:
<?php

    
if (isset($_POST['Einloggen'])) {

        
//Bla Bla Bla Daten aus Datenbank überprüfen

        //Wenn Richtig
        
setcookie("TestCookie"'111'time()+3600); // Funkt nicht...

    
}elseif (isset($_POST['Register'])) {
        
header('Location: http://google.com/'); // Funkt nicht...
    
}else{

?>
<form>

    Hier mein scheiss input, Label, usw usw

</form>
<?php ?>
12/02/2012 21:17 Synatex#4
Hast du denn schon einmal beides getrennt versucht? Includest du den Teil da oben noch irgendwo, oder ist das wirklich dein kompletter Code?
12/02/2012 22:01 xExtension#5
Quote:
Originally Posted by Synatex View Post
Hast du denn schon einmal beides getrennt versucht? Includest du den Teil da oben noch irgendwo, oder ist das wirklich dein kompletter Code?
einzeln funkt das wunderbar . auch wenn ich die datei über die url aufrufe.. aber wenn ich sie mitten in der seite einbinde funkt es nicht.. was mich wundert denn bis jz hab ich es immer so gemacht.. aber bei php 5.4.9 will das nicht mehr ...

<head>
Bla Bla Bla
</head>
<body>
<div div div> bla bla bla

<div class="content">
<?php
hier wird die datei dynamisch eingebunden...
?>
</div>
</body>
12/02/2012 22:06 Synatex#6
Ja, du hast den kompletten <head> Teil schon ausgegeben.. Das ganze muss wirklich (jedenfalls die Cookies) an Anfang von der Datei. Wenn du den Header auch sonst anders verschicken willst musst du mit ob_flush() und ob_start() arbeiten. ob_start() ganz an den Anfang und ob_flush() ganz ans Ende (nicht in der Include Datei, sondern in der übergeordneten). Damit werden die Header-Daten erst nach dem kompletten laden rausgehauen.
12/02/2012 22:08 xExtension#7
Quote:
Originally Posted by Synatex View Post
Ja, du hast den kompletten <head> Teil schon ausgegeben.. Das ganze muss wirklich (jedenfalls die Cookies) an Anfang von der Datei. Wenn du den Header auch sonst anders verschicken willst musst du mit ob_flush() und ob_start() arbeiten. ob_start() ganz an den Anfang und ob_flush() ganz ans Ende (nicht in der Include Datei, sondern in der übergeordneten). Damit werden die Header-Daten erst nach dem kompletten laden rausgehauen.
Danke ich weiß wie ob_flush(); funktioniert ^^ und werde es gleich mal versuchen...

oder ich bin heute zu doof um etwas zu coden xDD


Edit: Danke hat geklappt...