2016-07-20 7 views
0

Ich möchte ein Cookie für meine shoppingcart setzen.PHP: KannKookie aufgrund Header nicht setzen

Dies ist das Formular zum Senden der Informationen.

<form action="winkelwagenValidatie.php" method="POST"> 
      Aantal: <input class="form-control" type="number" name="aantal" value="1" min="1"><br> 
      <input type="hidden" name="id" value="<?php echo($product->getProductId()); ?>"> 
      <button class="button_red" type="submit">Plaats in winkelwagen</button> 
</form> 

Ich schicke es auf diese php-Datei

<?php 
    if(isset($_POST["id"])){ 
    require_once './DAO/WinkelwagenDAO.php'; 
    WinkelwagenDAO::vermeerderAantalItems(new WinkelwagenItem($_POST["aantal"], $_POST["id"])); 
} 

Aber ich bekomme diese Fehlermeldung:

Warning: Cannot modify header information - headers already sent by (output started at /home/supermarktcoppen/public_html/DAO/Verbinding/DatabaseFactory.php:25) in /home/supermarktcoppen/public_html/DAO/WinkelwagenDAO.php on line 103

So in der DAO on line 103 i dieses:

setcookie("winkelwagen", serialize($winkelwagenItemArray)); 

Alles funktioniert gut, aber ich kann th nicht einstellen ein Cookie.

Ich suchte nach Lösungen, aber nicht davon kann mein Problem helfen.

+0

, wenn Sie die Ausgabe-Pufferung verwenden Sie nicht Header festlegen können, ob es eine html ausgegeben wurde, bevor Sie versuchen, die Header zu setzen. – RamRaider

+0

das half. Ich habe ob_start(); vor dem Setzen des Cookies. – Joris

Antwort

0

Dies trug dazu bei:

<?php 
ob_start(); 
if(isset($_POST["id"])){ 
    require_once './DAO/WinkelwagenDAO.php'; 
    WinkelwagenDAO::vermeerderAantalItems(new WinkelwagenItem($_POST["aantal"], $_POST["id"])); 
    header('location: winkelwagen.php'); 
}else{ 
    header('location: bestellen.php'); 
}