Contactformulier

Status
Niet open voor verdere reacties.

jappertjeh

Gebruiker
Lid geworden
2 jan 2006
Berichten
432
Ik heb weinig verstand van php, dus dacht even een formuliertje van internet te halen en deze vervolgens in mijn html bestand te plakken, en klaar contact formulier. Nu staat hij er prima, maar als ik op verzenden druk geeft hij deze error:
Er is geen webpagina gevonden voor het webadres: file:///C:/Documents%20and%20Settings/Mijn%20documenten/Website/%3C?=%20$_SERVER['PHP_SELF'];%20?%3E

Misschien goed om er bij te zeggen: de site staat nog niet online, ik probeer dit via C://.. etc gewoon in de map je bestand openen dus. Zou ook daar aan kunnen liggen?
Hier is mijn PHP. Graag hoor ik wat ik moet veranderen:
Dit deel staat nog boven mijn <!DOCTYPE...> in mijn html document
PHP:
<?
ob_start(); // Voor het cookie setten, anders zal dat hoogst waarschijnlijk niet werken.
$cNaam = 'Website'; // Je naam...
$cEmail = '******@live.nl'; // email waar het heen moet
$cOndPre = ''; // prefix voor onderwerp
$cOndSuf = ''; // suffix achter onderwerp
$cSpam = 10; // Anti Spam, X aantal minuten?>

En dit staat dan binnen mijn <div> waarin ik mijn formulier heb:
PHP:
<div id="formulier"><?
if(!empty($_POST['verstuur']))
	{ // Er is op de knop 'verstuur e-mail' gedrukt...
	$pError = ''; // Een begin met de errors als die er zijn
	$pI = 0; // Deze telt het aantal erros.
	if(strlen($_POST['naam']) < 2)
		{ $pError .= '- Je hebt je naam niet ingevuld!<br>'; $pI++; }
	if(strlen($_POST['email']) < 6 || !ereg('@',$_POST['email']) || !ereg('.',$_POST['email']))
		{ $pError .= '- Je hebt geen geldig email-adres ingevuld!<br>'; $pI++; }
	if(strlen($_POST['onderwerp']) < 3)
		{ $pError .= '- Je hebt geen geldig onderwerp ingevuld!<br>'; $pI++; } 
	if(strlen($_POST['bericht']) < 10)
		{ $pError .= '- Je hebt geen geldig bericht ingevuld!<br>'; $pI++; }
		
	if(!empty($pError))
		{ // Als er dan toch errors zijn..
		echo ($pI == 1) ? 'De volgende fout is opgetreden:<br>' : 'De volgende fouten zijn opgetreden:<br>'; // even kijken of het meervoud of enkelvoud is.
		echo $pError; // echoën van de error(s)
		}
	else
		{
		// uiteindelijk toch mailen :)
		$pHeader  = "MIME-Version: 1.0\r\n";
		$pHeader .= "Content-type: text/html; charset=iso-8859-1\r\n";
		$pHeader .= "To: ".$cNaam." <".$cEmail.">\r\n";
		$pHeader .= "From: ".$_POST['naam']." <".$_POST['email'].">\r\n";
		$website = (!empty($_POST['website'])) ? '<br><br>Website: '.$_POST['website'] : '';
		$pBericht = 'Het volgende bericht is gestuurd via het contact formulier:<br><hr><br>'.$_POST['bericht'].$website;
		mail($cEmail,$cOndPre.' '.$_POST['onderwerp'].' '.$cOndSuf,$pBericht,$pHeader);
		
		if(isset($_POST['usermail']))
			{ // Als de persoon het vakje 'Ook naar mezelf mailen' heeft aangevinkt...
			$pBerichtUser = 'Het volgende bericht heb je verstuurd via contact formulier:<br><hr><br>'.$_POST['bericht'];
			mail($_POST['email'],$cOndPre.' '.$_POST['onderwerp'].' '.$cOndSuf,$pBerichtUser,$pHeader);
			}
			
		echo 'Uw bericht is succesvol verstuurd';
		setcookie('mailform',1,time()+($cSpam*60)); // cookie zetten tegen spam
		
		$pShow = true; // formulier wordt niet weer getoond
		}
	}
	// Kijken of er een waarde moet worden gegeven aan velden...
	$pNaam = (isset($_POST['naam'])) ? $_POST['naam'] : '';
	$pEmail = (isset($_POST['email'])) ? $_POST['email'] : '';
	$pWebsite = (isset($_POST['website'])) ? $_POST['website'] : '';
	$pOnderwerp = (isset($_POST['onderwerp'])) ? $_POST['onderwerp'] : '';
	$pBericht = (isset($_POST['bericht'])) ? $_POST['bericht'] : '';
	
	// kijken of het cookie bestaat, zoja dan wordt het formulier niet getoond.
	if(isset($_COOKIE['mailform']))
		{ $pShow = true; echo 'Je kunt maar eens in de '.$cSpam.' minuten een e-mail versturen!'; }
		
	if(!isset($pShow))
		{ // het formulier als $pShow niet bestaat.?>
        
		<form method="post" action="<?= $_SERVER['PHP_SELF']; ?>">
		<dl>
			<dt><b>Naam Bedrijf:</b> <font color="#999999"><i>(verplicht)</i></font></dt>
				<dd><input type="text" name="naam" size="15" value="Naam Bedrijf"></dd>
				<dt><b>Naam contactpersoon:</b> <font color="#999999"><i>(verplicht)</i></font></dt>
				<dd><input type="text" name="naam" size="15" value="Naam Contactpersoon"></dd>
			<dt><b>Email:</b> <font color="#999999"><i>(verplicht)</i></font></dt>
		        		<dd><input type="text" name="email" size="15" value="E-mail"></dd>
			<dt><b>Website:</b></dt>
				<dd><input type="text" name="website" size="15" value="Website"></dd>
			<dt><b>Onderwerp:</b> <font color="#999999"><i>(verplicht)</i></font></dt>
				<dd><input type="text" name="onderwerp" size="15" value="Onderwerp" /></dd>
			<dt><b>Bericht:</b> <font color="#999999"><i>(verplicht)</i></font></dt>
				<dd><textarea name="bericht" cols="40" rows="10"></textarea></dd>
			<dt><b>Kopie naar uw eigen mailadres sturen:</b></dt>
				<dd><input type="checkbox" name="usermail"></dd>
				<dd>
				<input type="submit" value="Verstuur e-mail" name="verstuur"> <input type="reset" value="Wis velden"></dd>
		</dl>
		</form>
		<?
		}
		?>
</div>
 
Zo niet, download USBwebserver (hier) en zet je bestanden in de map htdocs.

Vervolgens het programmaatje opstarten en in je browser naar http://localhost gaan
 
Nadat je USB webserver geinstalleerd hebt, moet in de map waar je die gedropt hebt ook ergens de map htdocs staan.
 
Heb het geinstalleerd en heb een hoop mappen, maar htdocs staat er niet tussen. Heb mijn pc af laten zoeken op htdocs maar geen resultaat..
 
Het kan ook een andere benaming hebben.

"htdocs" is redelijk algemeen maar het kan net zo goed "www", "httpd" of "root" zijn.

Het staat vast in de handleiding, op de site kan ik het zo gauw niet vinden.
 
Dat is allemaal gelukt, ik krijg mijn pagina goed weergegeven in mijn browser, alleen krijg ik nu bij het invullen van mijn eigen formulier en als ik dan op versturen druk de volgende melding:

Forbidden

You don't have permission to access /< on this server.
 
Op regel 57 gebruik je een short tag (<?=) maar blijkbaar ben je vergeten om shorttags aan te zetten in de php configuratie. Probeer het eens te vervangen door een normale tag (<?php echo) of pas de php.ini aan (short_open_tag = On).
 
ik heb het vervangen zoals jij zei. Is de eindtag nog wel gewoon ?> ? Hij blijft de zelfde foutmelding geven.. waar vind ik die php.ini? heb erg weinig php verstand..plukte dit alleen toevallig van een site dat formulier
 
"No permission" lijkt mij weinig met PHP te maken hebben.
uit de openingspost:
file:///C:/Documents%20and%20Settings/Mijn%20documenten/Website/%3C?=%20$_SERVER['PHP_SELF'];%20?%3E
$_SERVER['PHP_SELF'] wordt niet geparsed. Uit het bericht van gisteren, 19:24:
access /< on this server
Een normale url bevat geen < teken. Dus waar komt die < vandaan? Ik denk regel 57.

De twee bovenstaande problemen hebben, naar mijn mening, dezelfde oorzaak: php kan zijn werk niet doen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan