session_start(); probleem, includes er bij.

Status
Niet open voor verdere reacties.

jtheiner

Gebruiker
Lid geworden
4 mrt 2010
Berichten
104
Hallo!

Mijn captcha script werkt helaas niet omdat de session start niet echt lekker geplaatst kan worden. Wanneer ik hem boven aan het scirpt zet werkt hij wel maar krijk in een foutmelding:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/6/7/8/2974/2974/public_html/inc/head.php:2) in /home/6/7/8/2974/2974/public_html/contact2.php on line 70

script:
PHP:
<?php
session_start();
$ip = $_POST['ip']; 
$httpref = $_POST['httpref']; 
$httpagent = $_POST['httpagent']; 
$evenement = $_POST['evenement']; 
$naam = $_POST['naam']; 
$email = $_POST['email'];
$telefoon = $_post['telefoon']; 
$onderwerp = $_POST['onderwerp']; 
$bericht = $_POST['bericht'];
$norobot = $_post['norobot'];
enz.....

Wanneer ik sesion start boven aan mijn pagina zet krijg ik geen foutmelding maar erkend hij mijn captcha code niet meer:
HTML:
<?php
session_start();
?>
<?php
	include ('inc/head.php');
?>
<?php
	include ('inc/analystics.php');
?>
</head>

<body>

	<div id="container-site-header">

Moet ik nu bij mijn eerste contact pagina de captcha plaatje code al in een string zetten ofzo?

Bedankt!!!
 
Wat staat er op de plaatsen waar de foutmelding over gaat?
Dus contact2.php Line 70
 
Bij deze:
Contact.php
HTML:
<?php
	include ('inc/head.php');
?>
<?php
	include ('inc/analystics.php');
?>
</head>

<body>

	<div id="container-site-header">
    
    </div>

	<div id="container-site">

		<div id="site">
                    
                <?php
					include ('inc/header.php');
				?>
            
            </div>
            
           
            <div id="container-content">
            
            
                <div id="content-main_top">
                </div>

            	<div id="content-main">

                      <table width="100%" border="0" cellpadding="0" cellspacing="0">

                        <tr>
                          <td colspan="8" align="center">
    <div id="menu">

    <table width="100%" border="0" cellspacing="5" align="center"  cellpadding="0">
      <tr>
        <td width="13%" height="22" align="center" valign="middle"><a href="<?php echo $basePath; ?>/index.php"><img border="0" height="24" width="115" src="../img/site/home.png"/></a></td>
        <td width="13%" height="22" align="center" valign="middle"><a href="<?php echo $basePath; ?>/marianne.php"><img border="0" height="24" width="115" src="../img/site/marianne.png"/></a></td>
        <td width="13%" height="22" align="center" valign="middle"><a href="<?php echo $basePath; ?>/heelzijn.php"><img border="0" height="24" width="115" src="../img/site/heelzijn.png"/></a></td>
        <td width="13%" height="22" align="center" valign="middle"><a href="<?php echo $basePath; ?>/zang.php"><img border="0" height="24" width="115" src="../img/site/zang.png"/></a></td>
        <td width="13%" height="22" align="center" valign="middle"><a href="<?php echo $basePath; ?>/mediatatie.php"><img border="0" height="24" width="115" src="../img/site/mediatatie.png"/></a></td>
        <td width="13%" height="22" align="center" valign="middle"><a href="<?php echo $basePath; ?>/links.php"><img border="0" height="24" width="115" src="../img/site/links.png"/></a></td>
        <td width="13%" height="22" align="center" valign="middle"><a href="<?php echo $basePath; ?>/contact.php"><img border="0" height="24" width="115" src="../img/site/contact.png"/></a></td>      </tr>
      <tr>
        <td height="2" align="center" valign="middle"></td>
        <td height="2" align="center" valign="middle"></td>
        <td height="2" align="center" valign="middle"></td>
        <td height="2" align="center" valign="middle"></td>
        <td height="2" align="center" valign="middle"></td>
        <td height="2" align="center" valign="middle"></td>
        <td id="activecontact" height="2" align="center" valign="middle"></td>
      </tr>
        </table>
    </div>
                          <td>                        
                        </tr>
                        <tr>
                          <td colspan="4">&nbsp;</td>
                          <td>                        
                        </tr>
                        <tr>
                          <td id="pijll"><a href="../links.php" target="_self"><img src="img/site/pijll.png" width="22" height="38" border="0" /></a></td>
                          <td width="50%" align="left" valign="top">
                          
<form action="../contact2.php" method="post"> 
<table width="100%" cellpadding="1" cellspacing="0" border="0">
<tbody>
<tr>
  <td width="120">Naam:</td>
  <td><input size="40" name="naam" id="naam" /></td>
</tr>
<tr>
<td>E-mail:</td>
<td><input size="40" name="email" id="email" /></td>
</tr>
<tr>
  <td>Telefoon:</td>
  <td><input size="40" name="telefoon" id="telefoon" /></td>
</tr>
<tr>
<td>Onderwerp:</td>
<td><input size="40" name="onderwerp" id="onderwerp" /></td>
</tr>
<tr>
  <td valign="top">Bericht:</td>
  <td><textarea name="bericht" rows="6" cols="31" id="bericht"></textarea></td>
</tr>
<tr>
<td colspan="2">&nbsp;</td>
</tr>
<tr>
  <td>&nbsp;</td>
  <td><img src="../captcha.php"></td>
</tr>
<tr>
  <td>Code:</td>
  <td><input size="40" name="norobot" id="norobot" /> </td>
</tr>
<tr>
  <td colspan="2">&nbsp;</td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="Verzenden" /></td>
</tr>
</tbody>
</table>
</form>
<p>&nbsp;</p></td>
                          <td width="50%" align="left" valign="top"><p>Contact
                            </p>
                            <p>Naam                            </p>
                            <p>Adres                            </p>
                            <p>Tel: 0413-368891 </p></td>
                          <td id="pijlr"><a href="../index.php" target="_self"><img src="img/site/pijlr.png" width="22" height="38" border="0" /></a></td>
                          <td>                        
                        </tr>
                        <tr>
                          <td colspan="4" align="center">&nbsp;</td>
                          <td>                        
                  </table>
				
              </div>

             
          </div>
          <?php
			include ('inc/footer.php');
		?>   
         
        
        </div>
        

	</div>
    
    

    <div id="container-site-footer">
    
    </div>   


</body>
</html>

contact2.php:
HTML:
<?php
	include ('inc/head.php');
?>
<?php
	include ('inc/analystics.php');
?>
</head>

<body>

	<div id="container-site-header">
    
    </div>

	<div id="container-site">

		<div id="site">
                    
                <?php
					include ('inc/header.php');
				?>
            
            </div>
            
           
            <div id="container-content">
            
            
                <div id="content-main_top">
                </div>

            	<div id="content-main">

                      <table width="100%" border="0" cellpadding="0" cellspacing="0">

                        <tr>
                          <td colspan="8" align="center">
    <div id="menu">

    <table width="100%" border="0" cellspacing="5" align="center"  cellpadding="0">
      <tr>
        <td width="13%" height="22" align="center" valign="middle"><a href="<?php echo $basePath; ?>/index.php"><img border="0" height="24" width="115" src="../img/site/home.png"/></a></td>
        <td width="13%" height="22" align="center" valign="middle"><a href="<?php echo $basePath; ?>/marianne.php"><img border="0" height="24" width="115" src="../img/site/marianne.png"/></a></td>
        <td width="13%" height="22" align="center" valign="middle"><a href="<?php echo $basePath; ?>/heelzijn.php"><img border="0" height="24" width="115" src="../img/site/heelzijn.png"/></a></td>
        <td width="13%" height="22" align="center" valign="middle"><a href="<?php echo $basePath; ?>/zang.php"><img border="0" height="24" width="115" src="../img/site/zang.png"/></a></td>
        <td width="13%" height="22" align="center" valign="middle"><a href="<?php echo $basePath; ?>/mediatatie.php"><img border="0" height="24" width="115" src="../img/site/mediatatie.png"/></a></td>
        <td width="13%" height="22" align="center" valign="middle"><a href="<?php echo $basePath; ?>/links.php"><img border="0" height="24" width="115" src="../img/site/links.png"/></a></td>
        <td width="13%" height="22" align="center" valign="middle"><a href="<?php echo $basePath; ?>/contact.php"><img border="0" height="24" width="115" src="../img/site/contact.png"/></a></td>      </tr>
      <tr>
        <td height="2" align="center" valign="middle"></td>
        <td height="2" align="center" valign="middle"></td>
        <td height="2" align="center" valign="middle"></td>
        <td height="2" align="center" valign="middle"></td>
        <td height="2" align="center" valign="middle"></td>
        <td height="2" align="center" valign="middle"></td>
        <td id="activecontact" height="2" align="center" valign="middle"></td>
      </tr>
        </table>
    </div>
                          <td>                        
                        </tr>
                        <tr>
                          <td colspan="4">&nbsp;</td>
                          <td>                        
                        </tr>
                        <tr>
                          <td id="pijll"><a href="../links.php" target="_self"><img src="img/site/pijll.png" width="22" height="38" border="0" /></a></td>
                          <td width="50%" align="left" valign="top">                          
<?php
session_start();
$ip = $_POST['ip']; 
$httpref = $_POST['httpref']; 
$httpagent = $_POST['httpagent']; 
$evenement = $_POST['evenement']; 
$naam = $_POST['naam']; 
$email = $_POST['email'];
$telefoon = $_post['telefoon']; 
$onderwerp = $_POST['onderwerp']; 
$bericht = $_POST['bericht'];
$norobot = $_post['norobot'];
$foutmelding = "U heeft niet alles ingevuld, a.u.b. probeer opnieuw.";
$foutmelding2 = "U heeft de code niet juist overgetypt. <br> A.u.b. probeer opnieuw.";

if (!empty($naam))
{

if (md5($_POST['norobot']) == $_SESSION['randomnr2']) 
{ // plaats hier php code voor geslaagde captcha
 
$attn = $attn;
$subject = "Contactformulier mariannevanoorschot.nl";
$subject2 = "Contactformulier mariannevanoorschot.nl - Kopie";
$message = "Er is een bericht verstuurd vanaf mariannevanoorschot.nl /r
Naam: $naam \n
E-mail: $email \n
Telefoon: $telefoon \n
Onderwerp: $onderwerp \n
Bericht: $bericht \n
";


mail("joris@theiner.nl", $subject, $message, "From: $email");
mail("$email", $subject2, $message, "From: info@mariannevanoorschot.nl");

$tanx = "Bedankt voor de aanvraag! U krijgt een kopie van de mail ter controle.";

echo $tanx;
} else
{
echo $foutmelding2;
} 
}
else
{
echo $foutmelding;
}
?>
                          
                          </td>
                          <td width="50%" align="left" valign="top"><p><strong>Contact &nbsp;&nbsp;</strong><br />
                            Naam<br />
                            Adres<br />
                            Tel: 0413-368891</p>
<h1>&nbsp;</h1>
                            <p>&nbsp;</p>
<p>&nbsp;</p></td>
                          <td id="pijlr"><a href="../index.php" target="_self"><img src="img/site/pijlr.png" width="22" height="38" border="0" /></a></td>
                          <td>                        
                        </tr>
                        <tr>
                          <td colspan="4" align="center">&nbsp;</td>
                          <td>                        
                  </table>
				
              </div>

             
          </div>
          <?php
			include ('inc/footer.php');
		?>   
         
        
        </div>
        

	</div>
    
    

    <div id="container-site-footer">
    
    </div>   


</body>
</html>

Captcha.php:
HTML:
<?php 
// het random nr. aanmaken en gecodeerd opslaan in php sessie 

$randomnr = rand(1000, 9999); 
$_SESSION['randomnr2'] = md5($randomnr); 

// captcha plaatje met nummer maken - afmetingen kun je aanpassen gebruikte font
 
$im = imagecreatetruecolor(100, 38); 

// Kleurenbepaling 

$white = imagecolorallocate($im, 255, 255, 255); 
$grey = imagecolorallocate($im, 128, 128, 128); 
$black = imagecolorallocate($im, 0, 0, 0); 

// zwarte rechthoek tekenen - afmetingen kun je aanpassen aan verschillende fonts 

imagefilledrectangle($im, 0, 0, 200, 50, $white); 

// hier - font.ttf' vervangen met de locatie van je eigen font bestand 

$font = 'img/font.ttf'; 

// schaduw toevoegen 

imagettftext($im, 35, 0, 24, 43, $grey, $font, $randomnr); 

// randomnr. toevoegen 

imagettftext($im, 35, 0, 18, 37, $blake, $font, $randomnr); 

// voorkomen dat afbeelding ge-cached wordt 

header("Expires: Wed, 1 Jan 1997 00:00:00 GMT"); 
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); 
header("Cache-Control: no-store, no-cache, must-revalidate"); 
header("Cache-Control: post-check=0, pre-check=0", false); 
header("Pragma: no-cache"); 

// plaatje verzenden naar browser 

header ("Content-type: image/gif"); 
imagegif($im); 
imagedestroy($im); 
?>

Hopelijk is het zo duidelijker!
 
session_start() is een functie die een cookie verzend naar je browser met de headers mee. Deze cookie bevat het PHPSESSID. Echter, headers moeten worden verzonden VOORDAT er output wordt verstuurd (zoals foutmeldingen, html code, spaties, enters, enz). Als je output verstuurd, worden de headers dus mee gestuurd, en kun je niet nogmaals headers sturen!

Om session_start te laten werken moet je deze functie bovenaan de pagina aanroepen... en dan ook echt helemaal bovenaan!
PHP:
<?php

// Enters binnen de php code voor session_start() mogen weer wel, aangezien het geen output is

// Start sessie
session_start();

// Ook dit mag, de headers zijn namelijk al verzonden
echo 'boem';

?>
 
Kan je dan nog even de head.php posten?
Verwacht dat hierin headers verstuurd worden
 
session_start() is een functie die een cookie verzend naar je browser met de headers mee. Deze cookie bevat het PHPSESSID. Echter, headers moeten worden verzonden VOORDAT er output wordt verstuurd (zoals foutmeldingen, html code, spaties, enters, enz). Als je output verstuurd, worden de headers dus mee gestuurd, en kun je niet nogmaals headers sturen!

Om session_start te laten werken moet je deze functie bovenaan de pagina aanroepen... en dan ook echt helemaal bovenaan!
PHP:
<?php

// Enters binnen de php code voor session_start() mogen weer wel, aangezien het geen output is

// Start sessie
session_start();

// Ook dit mag, de headers zijn namelijk al verzonden
echo 'boem';

?>

Hoi!

Dank je wel voor je reactie!!

Dit had ik ook al geprobeerd. (zie eerste bericht).
Toen pakte het script het niet ofzo. Want toen werkte het niet.

Wat deed ik dan verkeerd? Of moet er die echo bij? nee toch??
 
word er in je include files niet de session geopend?
 
Hoi!

het waren inderdaad de includes... Deze aangepast en het document zelf van captcha ook nog! daar moest ook nog iets veranderd worden.

Bedankt allen!!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan