Goede avond,

Bij deze ben ik bezig met een project voor informatica en heb hier voor een inschrijvings formulier geschreven, met controle.

Als ik iets verkeerd invoer wordt dit vertelt en ga ik terug naar de vorige pagina om deze invoer te wijzigen.

Maar als ik alles goed invul krijg ik een fout melding: Kan de pagina niet weergeven. (http 500- fout)

(er is niks in de DB geschreven)

Nu heb ik met mijn informatica leraar ook al naar de code gekeken maar die kwam er ook al niet uit.

bij deze het script dat controleerd en in de db zet.

invoergegevens.php

<?php
ini_set('display_errors', 'on');
error_reporting(E_ALL);
?> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4?loose.dtd">

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>

<?php
include("config.php");

$mijnemail = "[email protected]";
$onderwerp = "Consult Aanvraag";
$voornaam = ($_POST["voornaam"]);
$tussenvoegsel = ($_POST["tussenvoegsel"]);
$achternaam = ($_POST["naam"]);
$straatnaam = ($_POST["straatnaam"]);
$huisnummer = ($_POST["huisnummer"]);
$postcode_c = ($_POST["postcode_cijfers"]);
$postcode_l = ($_POST["postcode_letters"]);
$woonplaats = ($_POST["woonplaats"]);
$email = ($_POST["email"]);
$telefoon = ($_POST["telefoon"]);
$geboortedatum = ($_POST["geboortedatum"]);
$verwijzing = ($_POST["verwijzing"]);
$verzekering = ($_POST["verzekering"]);
$polisnummer = ($_POST["polisnummer"]);
$reedsbevallen = ($_POST["reeds_bevallen"]);

function check_email_mx($email) {
if( (preg_match('/(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/', $email))||
(preg_match('/^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/',$email)) ) {
$host = explode('@',$email);
	if(checkdnsrr($host[1].'.', 'MX') ) return true;
	if(checkdnsrr($host[1].'.', 'A') ) return true;
	if(checkdnsrr($host[1].'.', 'CNAME') ) return true;
}
return false;
}

if($_POST){
if (empty($voornaam))
{echo "<p>U bent vergeten uw voornaam in te vullen.</p><p>
Klik <a href=\"javascript:history.back(1)\">hier</a> om terug te gaan.";
}
elseif (empty($tussenvoegsel))
{echo "<p>U bent vergeten uw tussenvoegsel in te vullen.</p><p>
Klik <a href=\"javascript:history.back(1)\">hier</a> om terug te gaan.";
}
elseif (empty($achternaam))
{echo "<p>U bent vergeten uw achternaam in te vullen.</p><p>
Klik <a href=\"javascript:history.back(1)\">hier</a> om terug te gaan.";
}
elseif (empty($email))
{echo "<p>U bent vergeten uw emailadres in te vullen.</p><p>
Klik <a href=\"javascript:history.back(1)\">hier</a> om terug te gaan.";
}
elseif (!check_email_mx($email))
{echo "<p>U heeft geen geldig emailadres opgegeven.</p><p>
Klik <a href=\"javascript:history.back(1)\">hier</a> om terug te gaan.";
}
elseif (empty($straatnaam))
{echo "<p>U bent vergeten uw straatnaaam in te vullen.</p><p>
Klik <a href=\"javascript:history.back(1)\">hier</a> om terug te gaan.";
}
else
{
  
$query = "INSERT INTO client(Client_voornaam,Client_Tussenvoegsels,Client_Achternaam,Client_Straatnaam,Client_huisnummer,Postcode_cijfers,Postcode_letters,Client_Woonplaats,Client_Email,Client_Telefoonnummer,Client_Geboortedatum,Client_Verwijzing,Client_Verzekering,Client_Polisnummer,Client_Bevallen) 
VALUES('$voornaam','$tussenvoegsel','$achternaam','$straatnaam','$huisnummer','$postcode_c','$postcode_l','$woonplaats','$email','$telefoon','$geboortedatum','$verwijzing','$verzekering','$polisnummer','$reedsbevallen')";

mail("$mijnemail",$onderwerp,"\n Naam:\t\t $voornaam $tussenvoegsel $achternaam \n Adres: \t\t $adres \n Woonplaats: \t $postcode_c $postcode_l $woonplaats \n Tranche: \t $tranche \n Locatie: \t $locatie \n\n Opmerking:\n $opmerking");
$result = mysql_query($query)or die (mysql-errror());

echo "<p>Bedankt voor uw opgave. Uw gegevens zijn verstuurd naar Piet:";
echo "<p>". stripsslashes($voornaam). "".stripslashes($tussenvoegsel)."". stripslashes($achternaam);
echo "<br>". stripslashes($adres);
echo "<br>". stripslashes($postcode_c)."". strisplashes($postcode_l)."". stripslashes($woonplaats);
echo "<br>". stripslashes($email);
echo "<br><br>Tranche:".stripslashes($tranche);
echo "<br>Locatie: ".stripslashes($locatie);
echo "<p>Opmerking:" .stripslashes($opmerking);
?>
<p>Neem contact op met <a href="mailto:[email protected]?subject=Contact">Jacquline ???</a>Als er iets aan de
gegevens gewijzigd moet worden</p>
<?
	}
}
?>
</body>
</html>


Het config bestand.
config.php


<?

$dbserver = "localhost";
$dbuser = "fsdf";
$dbpassword = "fsdf";
$db = "lactatiekunde_praktijk";

mysql_connect($dbserver, $dbuser, $dbpassword) or die("Er gaat iets mis.");
mysql_select_db($db) or die;

?>


En tot slot het formulier zelf, de html site.
invoer.php

<html>
<head>
</head>

<body>
<form action="invoergegevens.php" method="POST">
<td>Gegevens Moeder</td>
<table summary="">
<tr><td>Voornaam</td><td><input type="text" name="voornaam" /></td></tr>
<tr><td>Tussenvoegsels</td><td><input type="text" name="tussenvoegsel" /></td></tr>
<tr><td>Naam</td><td width="380"><input type="text" name="naam" /></td></tr>
<tr>
    <td>Straatnaam<td width="380"><input type="text" name="straatnaam" />
    Huisnummer<input type="text" size="5" name="huisnummer" />
</tr>
<tr><td>Postcode</td><td width="380"><input type="text" name="postcode_cijfers" SIZE="3" /><input type="text" name="postcode_letters" SIZE="1" />
	Woonplaats<input type="text" name="woonplaats" />
</tr>
<tr><td>Telefoonnr.</td><td width="380"><input type="text" name="telefoon" /></td></tr>
<tr><td>E-Mail</td><td width="380"><input type="text" name="email" /></td></tr>
<tr><td>Geboortedatum</td><td width="380"><input type="text" name="geboortedatum" /></td></tr>
<tr>
<td>Verwijzing:</td>
<td><input type="radio" name="verwijzing" value="ja" checked="true" />Ja
<input type="radio" name="verwijzing" value="nee" />Nee</td>
</tr>
<tr><td>Verzekering</td><td><input type="text" name="verzekering" /></td></tr>
<tr><td>Polisnummer</td><td><input type="text" name="polisnummer" /></td></tr>
<tr>
<td>Reeds bevallen:</td>
<td><input type="radio" name="reeds_bevallen" value="ja" checked="true" />Ja
<input type="radio" name="reeds_bevallen" value="nee" />Nee</td>
</tr>

<td>Gegevens kind</td>

<tr><td>Naam</td><td><input type="text" name="naamkind" /></td></tr>
<tr><td>Tussenvoegsels</td><td><input type="text" name="tussenvoegselkind" /></td></tr>
<tr><td>Voornaam</td><td><input type="text" name="voornaamkind" /></td></tr>
<tr>
<td>Geslacht:</td>
<td><input type="radio" name="geslacht" value="jongen" checked="true" />Jongen
<input type="radio" name="geslacht" value="meisje" />Meisje</td>
</tr>
<tr><td>Geboortedatum</td><td><input type="text" name="geboortedatumkind" /></td></tr>
<tr><td>Gewicht bij Geboorte</td><td><input type="text" name="gewichtkind" /></td></tr>
<tr><td>Huidig gewicht</td><td><input type="text" name="huidiggewichtkind" /></td></tr>
<td>Manier van aanvraag:</td>
<td><input type="radio" name="aanvraag" value="huisbezoek" checked="true" />Huisbezoek
<input type="radio" name="aanvraag" value="Praktijk bezoek" />Praktijk bezoek</td>
</tr>
<tr>
<td></td>
<td><textarea name="vraag" ROWS="7" COLS="45">Hier kunt uw, uw vragen stellen!</textarea></td></tr>
<tr>
<td></td><td><input type="submit" value="Bevestigen" /></td></tr>

<tr><td>Dank u voor het invullen van uw gegevens<br>
U hoort zo spoedig mogelijk van ons.</td></tr>
</table>
</form>
</body>
</html>


Alvast bedankt voor de moeite,

Leroy M
Dankje, nu alleen relevante code, a.u.b.
zet je script even tussen [ignore]
[/ignore], dat leest wat makkelijker :)


Zet dit eens helemaal bovenaan je script:<?php
ini_set('display_errors', 'on');
error_reporting(E_ALL);
?>

Er zitten namelijk nogal wat fouten in je code. Zo controleer je of er data gepost is dmv:

<?php
    if($_SERVER['REQUEST_METHOD'] = 'POST') {
    //formulier afhandelen
    }
?>


En je kunt $_POST variabelen pas gebruiken als ze bestaan. Dit controleer je niet, jij gebruikt ze meteen in het begin, zonder dat er een formulier gepost is.

Er bestaan vanaf PHP 5 zogenaamde filters hiermee kun je dingen zoals een email adres makkelijker controleren.
Sorry Erwin maar die laatste snap ik niet helemaal, in welk script moet ik die zetten en waardan?

Ik heb de eerste bovenaan gezet maar nog steeds:


Kan de pagina niet weergeven
HTTP 500
Meest waarschijnlijke oorzaken:
Aan deze website wordt gewerkt.
De website bevat een programmeerfout.

Mogelijke acties:
De pagina vernieuwen

Ga terug naar de vorige pagina

Meer informatie

Deze fout (HTTP-fout 500 - Interne serverfout) houdt in dat de bezochte website een serverprobleem heeft waardoor de webpagina niet goed kan worden weergegeven.

Raadpleeg Help voor meer informatie over HTTP-fouten.


Gr. Leroy
Erwin wat bedoel je met als de post variabelen pas bestaan. Deze worden toch vanuit invoer.php door gestuurd naar invoergegevens.php?

Leroy
[google]http 500[/google]
misschien dat hier wat tussen staat, de eerste twee site's lijken mij iig wel handig.
Welke browser gebruik je?


En die eerste code die ik je gaf, schakelt de foutmelding van php in. Deze moet je helemaal bovenaan(dus voor je doctype) in invoergegevens.php zetten.

Daar heb je gelijk in, maar wat nou als iemand gewoon naar de pagina toegaat? Dan moet je eerst controleren of er wat gepost is, en dan verdere afhandeling of terugsturen.

ps
Bumpen:
Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig de knop om je tekst aan te passen.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4?loose.dtd">

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>

<?php
include ("config.php");

function check_email_mx($email)
{
    if ((preg_match('/(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/', $email)) || (preg_match('/^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/',
        $email))) {
        $host = explode('@', $email);
        if (checkdnsrr($host[1] . '.', 'MX'))
            return true;
        if (checkdnsrr($host[1] . '.', 'A'))
            return true;
        if (checkdnsrr($host[1] . '.', 'CNAME'))
            return true;
    }
    return false;
}

if ($_SERVER['REQUEST_METHOD'] == "POST") {
	$mijnemail = "[email protected]";
	$onderwerp = "Consult Aanvraag";
	$voornaam = mysql_real_escape_string($_POST["voornaam"]);
	$tussenvoegsel = mysql_real_escape_string($_POST["tussenvoegsel"]);
	$achternaam = mysql_real_escape_string($_POST["naam"]);
	$straatnaam = mysql_real_escape_string($_POST["straatnaam"]);
	$huisnummer = mysql_real_escape_string($_POST["huisnummer"]);
	$postcode_c = mysql_real_escape_string($_POST["postcode_cijfers"]);
	$postcode_l = mysql_real_escape_string($_POST["postcode_letters"]);
	$woonplaats = mysql_real_escape_string($_POST["woonplaats"]);
	$email = mysql_real_escape_string($_POST["email"]);
	$telefoon = mysql_real_escape_string($_POST["telefoon"]);
	$geboortedatum = mysql_real_escape_string($_POST["geboortedatum"]);
	$verwijzing = mysql_real_escape_string($_POST["verwijzing"]);
	$verzekering = mysql_real_escape_string($_POST["verzekering"]);
	$polisnummer = mysql_real_escape_string($_POST["polisnummer"]);
	$reedsbevallen = mysql_real_escape_string($_POST["reeds_bevallen"]);
	
    if (empty($voornaam)) {
        echo '<p>U bent vergeten uw voornaam in te vullen.</p><p>
Klik <a href="javascript:history.back(1);">hier</a> om terug te gaan.';
    } elseif (empty($tussenvoegsel)) {
        echo '<p>U bent vergeten uw tussenvoegsel in te vullen.</p><p>
Klik <a href="javascript:history.back(1);">hier</a> om terug te gaan.';
    } elseif (empty($achternaam)) {
        echo '<p>U bent vergeten uw achternaam in te vullen.</p><p>
Klik <a href="javascript:history.back(1);">hier</a> om terug te gaan.';
    } elseif (empty($email)) {
        echo '<p>U bent vergeten uw emailadres in te vullen.</p><p>
Klik <a href="javascript:history.back(1);">hier</a> om terug te gaan.';
    } elseif (!check_email_mx($email)) {
        echo '<p>U heeft geen geldig emailadres opgegeven.</p><p>
Klik <a href="javascript:history.back(1);">hier</a> om terug te gaan.';
    } elseif (empty($straatnaam)) {
        echo '<p>U bent vergeten uw straatnaaam in te vullen.</p><p>
Klik <a href="javascript:history.back(1);">hier</a> om terug te gaan.';
    } else {

        $query = "INSERT INTO client(Client_voornaam,Client_Tussenvoegsels,Client_Achternaam,Client_Straatnaam,Client_huisnummer,Postcode_cijfers,Postcode_letters,Client_Woonplaats,Client_Email,Client_Telefoonnummer,Client_Geboortedatum,Client_Verwijzing,Client_Verzekering,Client_Polisnummer,Client_Bevallen) 
VALUES('".$voornaam."','".$tussenvoegsel."','".$achternaam."','".$straatnaam."','".$huisnummer."','".$postcode_c."','".$postcode_l."','".$woonplaats."','".$email."','".$telefoon."','".$geboortedatum."','".$verwijzing."','".$verzekering."','".$polisnummer."','".$reedsbevallen."')";

        if(mail($mijnemail, $onderwerp, "\n Naam:\t\t ".$voornaam." ".$tussenvoegsel." ".$achternaam." \n Adres: \t\t ".$adres." \n Woonplaats: \t ".$postcode_c." ".$postcode_l." ".$woonplaats." \n Tranche: \t ".$tranche." \n Locatie: \t ".$locatie." \n\n Opmerking:\n ".$opmerking."")) {
	        $result = mysql_query($query);
	        if($result) {
		        echo "<p>Bedankt voor uw opgave. Uw gegevens zijn verstuurd naar Piet:";
		        echo "<p>" . stripslashes($voornaam) . "" . stripslashes($tussenvoegsel) . "" .
		            stripslashes($achternaam);
		        echo "<br>" . stripslashes($adres);
		        echo "<br>" . stripslashes($postcode_c) . "" . stripslashes($postcode_l) . "" .
		            stripslashes($woonplaats);
		        echo "<br>" . stripslashes($email);
		        echo "<br><br>Tranche:" . stripslashes($tranche);
		        echo "<br>Locatie: " . stripslashes($locatie);
		        echo "<p>Opmerking:" . stripslashes($opmerking);
		        
		        echo '<p>Neem contact op met <a href="mailto:[email protected]?subject=Contact">Jacquline ???</a>Als er iets aan de
gegevens gewijzigd moet worden</p>';
		    } else {
				echo 'Query niet uitgevoerd. '.mysql_error().' in '.$query.'.';
			}
		} else {
			echo 'Niet gemaild.';
		}
    }
} else {
	header("Location: delocatievanjeformulier.php"); // vul voor de bestandsnaam de naam in van het bestand waar het formulier staat.
}
?>
</body>
</html>


Ga het nou niet klakkeloos overnemen, maar kijk wat ik heb veranderd en leer daarvan. Als het goed is werkt hij zo, je zult nog een paar dingen naar eigen wensen in moeten vullen ;-).
Oke er is schot in de zaak, met IE nog steeds http- 500
maar met firefox , zegt die in invoergegevens.php
:Fatal error: Call to undefined function checkdnsrr() in C:\Documents and Settings\Elroy\Bureaublad\UsbWebserver Lactatiekunde\UsbWebserver\Root\Site Lars en Leroy\invoergegevens.php on line 38


PS ik krijg
<?php
    if($_SERVER['REQUEST_METHOD'] = 'POST') {
    //formulier afhandelen
    }
?> 


maar niet in invoergegevens.php geplaats :S









PSS---> nu zit dezelfde fout van jou aanpassing op regel 17 :S
En als je 'checkdnsrr' eens vervangt door 'dns_check_record'?
nu is het deze melding: Fatal error: Call to undefined function dns_check_record() op de zelfde regel:S

Leroy
Oké, dan vervang regels 17 t/m 22 maar eens voor dit:

<?php
if(gethostbyname($host[1]))
return true;
?>

Reageren