php werkt niet op de server

Status
Niet open voor verdere reacties.

arienlans

Gebruiker
Lid geworden
15 aug 2008
Berichten
172
moet je je server instellen om php bestanden te laten draaien

ik zit bij infopact en ik vraag me af hoe je .php bestanden aan de praat krijg

wat ik ook probeer ik krijg mijn captcha.php niet aan de praat

wie heeft er een tip
 
Als je de PHP-code direct op je scherm ziet dan is er geen PHP geïnstalleerd op de webserver.

infopact zegt wel ondersteuning te geven dus je zult meer moeten uitleggen wat er precies niet werkt want met de huidige informatie valt weinig te doen :confused:
 
captcha plaatje werkt niet

de volgende twee bestanden heb ik op mijn site staan maar het captcha plaatje werkt niet?
HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
	<title>contact lanstomaten</title>
  	<meta name="description" content="contact lanstomaten">
	
	
	<style type="text/css">
        @import url("../basis.css");
  	</style>

<script type="text/javascript">
function aan(cid){
document.getElementById(cid).style.display="inline"}
function uit(cid){
document.getElementById(cid).style.display="none"}
</script>

<script type="text/javascript">
function invoercontrole(){
var controle;

// 1. controleren op een leeg veld
if (document.formulier.$voornaam.value == "") 
{document.getElementById(11).style.display="inline"; controle='FOUT';}
if (document.formulier.$voornaam.value !== "") 
{document.getElementById(11).style.display="none"; controle='OK';}

if (document.formulier.$achternaam.value == "") 
{document.getElementById(31).style.display="inline"; controle='FOUT';}
if (document.formulier.$achternaam.value !== "") 
{document.getElementById(31).style.display="none"; controle='OK';}

if (document.formulier.$telefoon.value == "") 
{document.getElementById(41).style.display="inline"; controle='FOUT';}
if (document.formulier.$telefoon.value !== "") 
{document.getElementById(41).style.display="none"; controle='OK';}

// 2. controleren op een geldig emailadres
atteken=document.formulier.emailveld.value.indexOf("@"); 
puntteken=document.formulier.emailveld.value.lastIndexOf(".");
compleet=document.formulier.emailveld.value.length-1;
if (atteken<1 || puntteken-atteken<2 || compleet-puntteken>3 || compleet-puntteken<2)
{document.getElementById(21).style.display="inline"; controle='FOUT';}
else {document.getElementById(21).style.display="none"; controle='OK';}

// 5. controleren op een leeg commentaarvak
if (document.formulier.$commentaar.value == "") 
{document.getElementById(71).style.display="inline"; controle='FOUT';}
if (document.formulier.$commentaar.value !== "") 
{document.getElementById(71).style.display="none"; controle='OK';}

if (controle=='OK'){document.formulier.submit(); return true;}
else {return false;}
} // einde functie invoercontrole()
</script>

	
</head>
<body bgcolor="red">
<center>

	<table id="hoofdtabel" CELLSPACING="0">
    <body>
      <td id="balk_1" colspan="2"><img style="width: 329px; height: 86px;" alt="" src="../web%20tomaten.gif"><img style="width: 608px; height: 90px;" alt="" src="../logoprom1%20web.gif"><br></td>
	  </body>
	  </tr>
	
	<tr>
	  <td id="balk_2a">
	
	
	  </td>
		
	
	
      <td id="balk_2b">
	  
	  <table align="right" CELLSPACING="0">
       		<a href="../index.html" class="mainlevel">home </a>
			<a href="../bedrijf/bedrijf.html" class="mainlevel">bedrijf </a>
			<a href="../werken bij/werken bij.html" class="mainlevel">werken bij </a>
			<a href="../foto/foto.html" class="mainlevel">foto's </a>
			<a href="../links/links.html" class="mainlevel">links </a>
			<a href="../contact/contact.html" class="mainlevelak">contact </a>
	  </table>
	</tr>  
	   

	<tr>
	  	<td id="kolom_links">
		
	 	</td>
				
      	<td id="hoofdvak">
		<h4>Adres:<h4>
		<h6>Groeneweg 125<br>
		2691 ML 's-Gravenzande<br>
		Telefoon: 0174 622904<br>
		Fax: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0174 622864<br>
		<br>
		<br>
		<h4>E-mail contact:</h4>
		<h6>Vul de volgende velden in en wij nemen zo spoedig mogelijk contact met U op.
		  	<form name="formulier" method="post" action="contact.php" enctype="text/plain">
Voornaam: <br>
<input type="text" name="$voornaam" onBlur="uit(1)" onFocus="aan(1);uit(11)">
<span id="1" style="display:none"></span>
<span id="11" style="display:none"><img src="vraag.gif"> u heeft uw voornaam niet ingevuld</span>
<br>
Achternaam: <br>
<input type="text" name="$achternaam" onBlur="uit(3)" onFocus="aan(3);uit(31)">
<span id="3" style="display:none"><img src="info.gif"> uw achternaam incl. tussenvoegsels</span>
<span id="31" style="display:none"><img src="vraag.gif"> u heeft uw achternaam niet ingevuld</span>
<br>
Telefoonnummer: <br>
<input type="text" name="$telefoon" onBlur="uit(4)" onFocus="aan(4);uit(41)">
<span id="4" style="display:none"><img src="info.gif"> vul hier uw telefoonnummer in waar u overdag te bereiken bent</span>
<span id="41" style="display:none"><img src="vraag.gif"> u heeft uw telefoonnummer niet ingevuld</span>
<br>
emailveld <br>
<input type="text" name="emailveld" onBlur="uit(2)" onFocus="aan(2);uit(21)">
<span id="2" style="display:none"><img src="info.gif"> info bij emailveld</span>
<span id="21" style="display:none"><img src="vraag.gif"> geen geldig emailadres</span>
<br>
Opmerkingen <br>
<textarea name="$commentaar" cols="30" rows="5" wrap="virtual" onBlur="uit(7)" onFocus="aan(7);uit(71);"></textarea><br>
<span id="7" style="display:none"><img src="info.gif"> stel hier uw vraag</span>
<span id="71" style="display:none"><img src="vraag.gif"> u heeft geen vraag gesteld</span>
<br>
	<?php
session_start();
?>
	<img src="captchaffs.php"><br /><br />
	
	<input type="text" name="input">
	
<?php
if($_SERVER['REQUEST_METHOD'] == "POST"){
	if(strtoupper($_POST['input']) != $_SESSION['captchaffs']){
		echo 'Code is incorrect.';
	} else {
		echo 'Code is correct.';
	}
}
?>
<input type="button" value="versturen" onClick="invoercontrole()">
</form>

		</td>
    </tr>







  
  
</body>
</table>
</center>
</body>
</html>

PHP:
<?php
ob_start();
session_start();

/***************************************************************************
*File: captcha.php
*Version: 1.4
*Date: 10th of February 2007
*Creator: Wouter van Eekelen
*Website: [url]http://www.woutervaneekelen.nl[/url]
*
*Copyright Wouter van Eekelen. All Rights Reserved.
***************************************************************************/

$lines = 15; // How many lines should cross the captcha? (Default: 15)
$chars = 5; // How many characters to type? (Default: 5)
$random = 0; // Random lengths between 3 and the amount of characters? (Default: 0)
$tilt = 1; // Should the letters be tilted? (Default: 1)
$fonts = "font.ttf|font2.ttf|font3.otf"; // Define the fonts to use, seperate with a | (Paths should be relative to captchaffs.php)
$font_perletter = 1; // Should fonts be different per letter? (Default: 1)
$letters = 0; // Should there be letters in the captcha?
$random_size = 1; // Should the characters differ
$delay = 0; // Should there be a delay in seconds before showing the image? (Default: 1)
$random_chars = 20; // How many small random characters should polute the captcha? (Default: 20)
$random_chars_input = array("!","@","#","$","%","^","&","*","-","_"); // Which random characters should polute the captcha?

// Wait the amount of seconds 
usleep($delay * 1000000);

// Needed for correct font paths
putenv('GDFONTPATH=' . realpath('.'));

// Create the image
$width = $chars * 40;
$image = imagecreate($width, 40);
$background = imagecolorallocate($image, rand(150,255), rand(150,255), rand(150,255));

// Create an empty captcha
$session = "";

// Lets create random length of characters
if($random == 1 && $chars > 3){
	$random = rand(3,$chars);
}

// Lets look at which fonts we can use
if($font_perletter == 0){
	$explode = explode("|", $fonts);
	$count = count($explode) - 1;
	$rand = rand(0,$count);
	$font = $explode[$rand];
}

// Put the characters on the captcha
for($i = 0; $i < $chars; $i++){

	if($font_perletter == 1){
		$explode = explode("|", $fonts);
		$count = count($explode) - 1;
		$rand = rand(0,$count);
		$font = $explode[$rand];
	}
	
	$colour = imagecolorallocate($image, rand(1,150), rand(1,150), rand(1,150));
	$colour_error = imagecolorallocate($image, 1, 1, 1);
		
	if($letters == 1){
		if(rand(0,1) == 0){
			$explode = range('A', 'Z');
			$rand = rand(0,25);	
			$text = $explode[$rand];
		} else {
			$text = rand(0,9);
		}
	} else {
		$text = rand(0,9);
	}

	if($tilt == 1){
		$angle = rand(-25,25);
	} else {
		$angle = 0;
	}

	if($random_size == 1){
		$size = rand(20,23);
	} else {
		$size = 20;
	}

	// Error if the font doesnt exist.
	if(!file_exists($font)){
		if(!isset($error) || $error != 1){
			imagestring($image, 2, 10, 15, "Error loading font: ".$font, $colour_error);
		}

		$error = 1;
	} else {
		imagettftext($image, $size, $angle, rand(0,5) + ($i * 30) + 10, rand(25,30), $colour, $font, $text);
	}

	$session .= $text;
}

// Lines on it
if(!isset($error) || $error != 1){
	for($i = 0; $i < $lines; $i++){
		$colour = imagecolorallocate($image, rand(150,255), rand(150,255), rand(150,255));
	
		imageline($image, rand(0,$width), rand(0,50), rand(0,$width), rand(0,50), $colour);
	}
}

// Random characters on it
if(!isset($error) || $error != 1){
	for($i = 0; $i < $random_chars; $i++){
		// Which font?
		$explode = explode("|", $fonts);
		$count = count($explode) - 1;
		$rand = rand(0,$count);
		$font = $explode[$rand];
	
		// Which character?
		$count = count($random_chars_input) - 1;
		$rand = rand(0,$count);
		$char = $random_chars_input[$rand];
		$colour = imagecolorallocate($image, rand(200,255), rand(200,255), rand(200,255));
	
		// Default font if the font doesnt exist
		if(!file_exists($font)){
			imagestring($image, 1, rand(0,$width), rand(0,40), $teken, $colour);
		} else {
			imagettftext($image, rand(7,9), rand(0,360), rand(0,$width), rand(0,40), $colour, $font, $char);
		}
	}
}

// Session
$_SESSION['captchaffs'] = $session;

// Show the image
header("Content-type: image/jpg"); 
imagejpeg($image); 
imagedestroy($image);
?>
wie kan hier wat mee ik zo graag captcha willen gebruiken in dit formulier
 
Laatst bewerkt door een moderator:
Is de extensie van het bestand .php?

Als het nog steeds file.html is, dan wordt php niet uitgevoerd namelijk.

Tevens kun je [ php] tags gebruiken om code heen, dan wordt het een stuk leesbaarder.
 
Als je ook maar één komma vergeet in de php code zal er niks op je scherm verschijnen.

in zo'n geval moet je je site decimaliseren, net zolang tot je wel wat ziet verschijnen.
Dan weet je waar je ongeveer moet zoeken naar waar de fout zit.

Het overnemen van andermans code leidt vaker tot ellende dan dat het wat oplevert.
Waarom zelf niet gemaakt ?

Dan denk ik aan wat tekenwerk of vervorming van alfabetletters.
Vervolgens in een random kies je enkele letters uit en laat die zien.

Aangezien je elke letter de bijbehorende naam gegeven hebt (a.jpg, b.jpg enz) kun je
heel makkelijk controleren of de invoer klopt met je randomreeks.
 
Als je ook maar één komma vergeet in de php code zal er niks op je scherm verschijnen.

Dan mag jij wel eens gauw je error_reporting op E_ALL zetten en display_errors aan gaan zetten als dit bij jou zo is.

Wanneer PHP een fout ontdekt dan geeft deze een melding, zonder die melding kun je uren gaan zoeken. Met die melding weet je meteen waar je moet zoeken omdat het regelnummer er bij staat.
 
Met die melding weet je meteen waar je moet zoeken omdat het regelnummer er bij staat

Geld dat ook als je een bewerking uitvoert met een variabele die ergens anders verkeerd gedeclareerd word ?

$a=0;
$b=($c/$a;)
 
Misschien vanwege:

HTML:
<img src="captchaffs.php">

PHP:
*File: captcha.php

Dat is natuurlijk niet zo gek dat dat niet werkt.
 
Waarom niet? <img src="x.php"> is gewoon normaal hoor. Als er header(image); in de code staat (en dat staat er), is er niets aan de hand.
 
Geld dat ook als je een bewerking uitvoert met een variabele die ergens anders verkeerd gedeclareerd word ?

$a=0;
$b=($c/$a; )

Zelfs dan krijg je een redelijk goeie pointer. Iig hoef je nooit je hele site door te pluizen.

En ik denk dat ErikBooy007 doelt op het feit dat in de src verwezen wordt naar een ander bestand dan in de captcha. Die twee moeten wel op elkaar aansluiten.
 
Waarom niet? <img src="x.php"> is gewoon normaal hoor. Als er header(image); in de code staat (en dat staat er), is er niets aan de hand.

Ja, maar is er naar het goede bestand verwezen in de img tag?

Hoe heten de bestanden waar je de source van hebt gegeven, arienlans?

Gr. Robin
 
Het staat toch in z'n PHP-code. Volgens regel 6 heet de file captcha.php, in de HTML verwijst hij naar captchaffs.php .

Ik kan me vergissen, maar het lijkt zo simpel.
 
Natuurlijk zal één en ander wel kunnen, maar is het niet zo, dat als je (vooral als beginner) een script maakt, dat je die zo duidelijk mogelijk maakt ?

img=file.php draagt daar niet echt aan bij vind ik.

Wat mij ook best wel stoort: mensen halen ergens een script vandaan, dit wordt op goeddunken aangepast en vervolgens mogen wij de fouten er uit halen.

Beter is om klein te beginnen en zelf php te leren, daar heb je later ook nog wat aan. :thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan