Ik probeer een cookie script te maken, maar ik krijg steeds deze melding:
Warning: Cannot modify header information - headers already sent by (output started at /home/xx/domains/xx/public_html/index.php:1) in /home/xx/domains/xx/public_html/index.php on line 7
In config zit Session_Start();PHP Code:
<?php
@include "config/index.php";
$id = $_GET['ref'];
if(isset($_GET['ref'])) {
ob_start();
setcookie("ref", $id, time()+604800);
ob_end_flush();
}
?>
Hoe kan ik het verhelpen? Bedankt!!
- Cookie
-
26-01-2010, 22:36 #1
- Berichten
- 217
- Lid sinds
- 16 Jaar
Cookie
-
In de schijnwerper
-
26-01-2010, 23:06 #2
- Berichten
- 571
- Lid sinds
- 17 Jaar
Voordat je iets print al ob_start(); gebruiken lijkt mij.
-
27-01-2010, 06:34 #3
- Berichten
- 217
- Lid sinds
- 16 Jaar
Het gaat erom dat Cookie als eerste verzonden moet worden.
Maar config moet ook als eerste omdat daar Session_Start(); zit.
Daarom heb ik ob_start(); toegevoegd.
Weet iemand nog iets? Bedankt!
-
27-01-2010, 08:14 #4
- Berichten
- 5
- Lid sinds
- 15 Jaar
Code:<?php ob_start(); @include "config/index.php"; $id = $_GET['ref']; if(isset($_GET['ref'])) { setcookie("ref", $id, time()+604800); } ob_end_flush(); ?>
-
27-01-2010, 09:03 #5
- Berichten
- 330
- Lid sinds
- 18 Jaar
Controleer tevens of er geen whitespaces voor de openingstag van php staan (<?php).
-
27-01-2010, 09:31 #6
- Berichten
- 21
- Lid sinds
- 15 Jaar
Op een juiste manier programmeren :-)
De @ weghalen !!
Met error_reporting(E_ALL) boven in kan je achterhalen waar je fouten zitten. Je krijgt dan alle mogelijke errors te zien.
En de ?> (closing tag) weglaten in je PHP scripts. Daarmee voorkom je dat er enige output gegenereerd wordt. Dit kan je een heeeele hoop zoekwerk besparen, want wanneer zie je nou een spatie? In mijn editor toon ik whitespace characters om deze reden. Vele editors bieden deze optie wel. In Eclipse staat deze onder General->Editors->Text Editors->Show whitespace characters, misschien even wennen maar zeer handig!
-
27-01-2010, 09:33 #7
- Berichten
- 376
- Lid sinds
- 18 Jaar
Heeft er niets mee te maken, maar waarom een @ voor de include?! Mocht daar iets fout gaan, moet je het zeker weten lijkt mij.
-
27-01-2010, 09:37 #8
- Berichten
- 21
- Lid sinds
- 15 Jaar
-
27-01-2010, 12:25 #9
- Berichten
- 376
- Lid sinds
- 18 Jaar
-
27-01-2010, 14:03 #10
- Berichten
- 217
- Lid sinds
- 16 Jaar
Ik heb steeds een zeer vervelende probleem.
Ik krijg boven iedere pagina dat ik upload (of bewerk, ik weet het niet) deze tekens: 
Ik kwam erachter omdat ik steeds het melding kreeg van headers already sent en via Directadmin zag ik deze tekens.
Heb het creatief opgelost door een @ voor het include bestand te doen.
Dus ik weet niet of het goed was...Laatst aangepast door Nathaniel : 27-01-2010 om 14:10
-
27-01-2010, 14:21 #11
- Berichten
- 330
- Lid sinds
- 18 Jaar
Een @ gebruiken is echt geen goede methode om problemen op te lossen, hiermee verbloem je eventuele errors wat niet echt netjes is aangezien alle fouten op te lossen zijn. Als het goed is weet je wat in de config/index.php gebeurd. Als hier wat geprint wordt (lees: echo) dan is dat het probleem van de foutmelding (ook controleren of daar geen whitespaces voor je openingstag staan). Aangezien je dit bestand boven de activatie van de cookie plaatst zorgt dit ervoor dat je de foutmelding krijgt.
-
27-01-2010, 14:32 #12
- Berichten
- 217
- Lid sinds
- 16 Jaar
Het config is niet anders dan dit:
<?php
session_start();
$mysql_server = "localhost";//mysql server
$mysql_pass = "xx_data";//wachtwoord
$mysql_login = "xx_data";//gebruikersnaam
$mysql_database = "xx_data";//database
$mysql_conn = mysql_connect ("$mysql_server", "$mysql_login", "$mysql_pass");
mysql_select_db("$mysql_database");
?>
-
27-01-2010, 15:02 #13
- Berichten
- 330
- Lid sinds
- 18 Jaar
Lees dit eens door ter verduidelijking: http://www.wmcity.nl/artikelen.php?actie=bekijk&id=147
En controleer nogmaals alles wat hier voorbij is gekomen (met name whitespaces). En zet de ob_start(); helemaal bovenaan je pagina. Dus net na <? . Wat de ob_start() doet is de output in de buffer opslaan zodat deze niet voor de headers weergegeven worden. Ook wanneer de mysql in je config een foutmelding vertoond is dit een output en krijg je de headers already sent output.
Aanvullend bericht:
En aangezien de foutmelding aangeeft dat op lijn 1 al de output begint heb ik sterk de indruk dat er spaties zijn toegevoegd voor de openingstag.Laatst aangepast door Arjen Rademaker : 27-01-2010 om 15:08 Reden: Automatisch samengevoegd.
-
27-01-2010, 15:15 #14
- Berichten
- 217
- Lid sinds
- 16 Jaar
Ik krijg boven iedere pagina dat ik upload (of bewerk, ik weet het niet) deze tekens: 
-
27-01-2010, 15:18 #15
- Berichten
- 330
- Lid sinds
- 18 Jaar
In welke editor maak jij je php bestanden? Kopieer de code eens naar kladblok en sla deze op. Controleer dan of met deze nieuwe bestanden het wel werkt. Want volgens mij slaat je editor de bestanden verkeerd op.
En anders moet je even in je editor zoeken naar een optie om BOM (byte order mark) uit te zetten, want dit veroorzaakt de foutmelding.
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic