Ik ben nieuw met php. En een form en send php.

Maar gaat iets fout en ik weet niet waar.

De form:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">;
<html xmlns="http://www.w3.org/1999/xhtml">;
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
<style type="text/css">
<!--
.style47 {
font-size: 10px;
font-family: Arial, Helvetica, sans-serif;
}
.style49 {color: #112D5F; font-weight: bold;}
.style51 {font-size: 10px; font-family: Arial, Helvetica, sans-serif; font-weight: bold; }
-->
</style>
</head>

<body>
<table width="734" border="0">
<tr>
<td><form action="../mailformulier.php" method="post" enctype="multipart/form-data" class="style47">
<div class="style47" id="buttons">
<table width="454" border="1" id="Kandidaat">
<tr>
<td colspan="2"><a href="../mailformulier.php">
<input type="hidden" name="required_fields"
value="Aanhef,Aanhef2,Naam.Naam2.E-mail,E-mail2,Telefoon,Telefoon2,CV" />
<input type="hidden" name="check_email_address" value="yes" />
</a>
<fieldset>
<a href="/mailform Folder/mailformulier.php">
<legend></legend>
<label for="field1"></label>
</a>
</fieldset>
<div id="buttons2"></div>
<a href="/mailform Folder/mailformulier.php">
<label for="field4"></label>
</a></td>
<td><span class="style49">Voorgestelde kandidaat</span></td>
<td class="style49">Gegevens kandidaat</td>
</tr>
<tr>
<td width="10"><a href="/mailform Folder/mailformulier.php">
<label for="field4"></label>
</a></td>
<td width="42" class="style49">Aanhef</td>
<td width="175"><a href="/mailform Folder/mailformulier.php">
<input name="Aanhef" id="field4"
title="Vul hier uw Aanhef." size="20" maxlength="20" />
</a></td>
<td><a href="/mailform Folder/mailformulier.php">
<input name="Aanhef2" type="text" id="Aanhef2" size="20" maxlength="20" />
</a></td>
</tr>
<tr>
<td><a href="/mailform Folder/mailformulier.php">
<label for="field5"></label>
</a></td>
<td class="style49">Naam</td>
<td><a href="../mailformulier.php">
<input name="Naam" id="field5"
title="Vul hier uw naam in." size="20" maxlength="20" />
</a></td>
<td><a href="/mailform Folder/mailformulier.php">
<input name="Naam2" type="text" id="Naam2" size="20" maxlength="20" />
</a></td>
</tr>
<tr>
<td><a href="../mailformulier.php">
<label for="field6"></label>
</a></td>
<td class="style49">E-mail</td>
<td><a href="../mailformulier.php">
<input name="E-mail" id="field6"
title="Vul hier uw E-mail in." size="20" maxlength="20" />
</a></td>
<td><a href="../mailformulier.php">
<input name="E-mail2" type="text" id="E-mail2" size="20" maxlength="20" />
</a></td>
</tr>
<tr>
<td><a href="../mailformulier.php">
<label for="field7"></label>
<label for="field8"></label>
</a></td>
<td>
<label for="label" class="style49">Telefoon</label>
<label for="field8"></label> </td>
<td><a href="../mailformulier.php">
<input name="Telefoon" id="field7"
title="Vul hier uw Tlefoon in." size="20" maxlength="20" />
</a></td>
<td><a href="../mailformulier.php">
<input name="Telefoon2" type="text" id="Telefoon2" size="20" maxlength="20" />
</a></td>
</tr>

<tr>
<td>&nbsp;</td>
<td class="style49">CV</td>
<td><a href="../mailformulier.php">
<input name="CV" type="file" class="style47" id="CV" size="20" maxlength="30" />
</a></td>
<td><div align="right" class="style49">
<a href="../mailformulier.php">
<input name="Reset" type="reset" class="style47" id="button2"
onclick="valid.reset(); return false" value="Herstel" />
<input name="Verzend" type="submit" class="style51" id="button1" title="Verstuur bovenstaande informatie."
value="Verzend" />
</a></div></td>
</tr>
</table>
</div>
</form></td>
</tr>
</table>
</body>
</html>

DE send php:
<?
$your_email_address="[email protected]";

if(empty($_GET) && empty($_POST)) {
die('Ongeldige actie');
}

// Emular register_globals on
if (!ini_get('register_globals')) {
$superglobales = array($_SERVER, $_ENV, $_FILES, $_COOKIE, $_POST, $_GET);
if (isset($_SESSION)) {
array_unshift($superglobales, $_SESSION);
}
foreach ($superglobales as $superglobal) {
extract($superglobal, EXTR_SKIP);
}
}

// to prevent header injection
if (eregi("\r",$_POST['[email protected]']) || eregi("\n",$_POST['[email protected]'])){
exit;
}

// kick anyone whoever tried to inject a header in the form
foreach( $_POST as $value ){
if( strpos($value,'Content-Type:') !== FALSE ){
exit;
}
}


$fields = array_keys($_POST);

function headfunction($url) {
header ("Location: $url");
}

// protect the variable $reserved_vars
if(isset($reserved_vars)) {
unset($reserved_vars);
}
$reserved_vars = array("css_file", "background_color", "background_image", "text_color", "link_color", "visited_link_color", "active_link_color", "font_name", "font_size", "highlight_color", "required_fields", "after_url", "check_email_address", "subject", "your_email_address", "env_report", "owner_name", "autoresponse", "response_subject", "response_mail", "dodosmail_header_file", "dodosmail_footer_file");

function include_dodosmail_header($dodosmail_header_file) {
global $reserved_vars;
foreach($reserved_vars as $reserved_var) {
global $$reserved_var;
}

if(is_file($dodosmail_header_file)) {
include_once($dodosmail_header_file);
return;
} else {
echo "<html>\n";
echo "<head>\n";
echo "<title>\n";
echo "DodosMail\n";
echo "</title>\n";
if($css_file != "")
echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"$css_file\">\n";
echo "</head>\n";
echo "<body bgcolor=\"$background_color\" background=\"$background_image\" text=\"$text_color\" link=\"$link_color\" vlink=\"$visited_link_color\" alink=\"$active_link_color\">\n";
echo "<font face=\"$font_name\" size=\"$font_size\">\n";
}
}

function include_dodosmail_footer($dodosmail_footer_file) {
global $reserved_vars;
foreach($reserved_vars as $reserved_var) {
global $$reserved_var;
}
if(is_file($dodosmail_footer_file)) {
include_once($dodosmail_footer_file);
return;
} else {
echo "</font>\n</body>\n</html>";
}
}

function dodosmail_error_handle($msg) {
global $highlight_color;
if(isset($highlight_color)) {
$extra_begin = "<font color=\"".$highlight_color."\">";
$extra_end = "</font>";
} else {
$extra_begin = "<span class=\"DodosMailErrorHighLight\">";
$extra_end = "</span>";
}

return $extra_begin.$msg.$extra_end;
}

// checking required fields
// in case they used comma and space, replace
if(strstr($required_fields, ", ")) {
$required_fields = str_replace(", ", ",", $required_fields);
} else {
$required_fields = $required_fields;
}
$required_fields = explode(",", $required_fields);

for($i = 0; $i < count($required_fields); $i++) {
$required_var_name = $required_fields[$i];
if(empty($$required_var_name)) {
include_dodosmail_header($dodosmail_header_file);
echo "<p class=\"DodosMailError\">Fout! - het verplichte veld ".dodosmail_error_handle($required_var_name)." is niet ingevuld.\n";
echo "<br /><br /><a href=\"javascript:history.back(1)\">Terug</a>\n";
echo "</p>\n";
include_dodosmail_footer($dodosmail_footer_file);
exit;
}
}
if($check_email_address == "yes" && !empty($email)) {
if(!check_email($email)) {
include_dodosmail_header($dodosmail_header_file);
echo "<p class=\"DodosMailError\">Fout - het adres ".dodosmail_error_handle($email)." is niet geldig.\n";
echo "<br /><br /><a href=\"javascript:history.back(1)\">Terug</a>\n";
echo "</p>\n";
include_dodosmail_footer($dodosmail_footer_file);
exit;
}
}


for($i = 0; $i < count($fields); $i++) {
$actual_var = $fields[$i];
if(in_array($actual_var, $reserved_vars)) {
$inside_mail = $inside_mail;
} else {
if(is_array($$actual_var)) {
$inside_mail.= "$actual_var: ";
foreach($$actual_var as $actual_val) {
$inside_mail.= "$actual_val ";
}
$inside_mail.= "\n";
} else {
$actual_val = stripslashes($$actual_var);
$inside_mail.= "$actual_var: $actual_val\n";
}
}
}

// getting other information from the form
$cname = gethostbyaddr($_SERVER[REMOTE_ADDR]);
$inside_mail.=
"
-----------------------------------------------------------------------
SENDER INFO:
IP: $_SERVER[REMOTE_ADDR]
Computer Name: $cname
Browser Type: $_SERVER[HTTP_USER_AGENT]
Page Referer: $_SERVER[HTTP_REFERER]
-----------------------------------------------------------------------
";






$headers .= "MIME-Version: 1.0\r\n";
$headers .= "X-Priority: 3\r\n";
$headers .= "X-MSMail-Priority: Normal\r\n";
$headers .= "X-Mailer: DodosMail 2.0 http://regretless.com/scripts/\r\n";;
$headers .= "Content-type: text/plain; charset=\"iso-8859-1\"\r\n";
//$headers .= "Date: ".date("R")."\r\n";
$headers .= "From: $name <$email>\r\n";



$success = mail($your_email_address, $subject, $inside_mail, $headers);
if($success) {
if($autoresponse == "yes") {
$response_subject = stripslashes($response_subject);
$response_mail = stripslashes($response_mail);
mail($email, $response_subject, $response_mail, "From: $owner_name <$your_email_address>");
}
if($after_url == "") {
// out put send info
include_dodosmail_header($dodosmail_header_file);


echo "<p>\n";

echo "Het formulier is verzonden!</p><ul>";
for($i = 0; $i < count($fields); $i++) {
$actual_var = $fields[$i];
if(in_array($actual_var, $reserved_vars))
echo "";
else {
if(is_array($$actual_var)) {
echo "<li>$actual_var: ";
foreach($$actual_var as $actual_val) {
echo "$actual_val ";
}
echo "</li>\n";
} else {
$actual_val = stripslashes($$actual_var);
echo "<li>$actual_var: $actual_val</li>\n";
}
}
}
echo "</ul>\n<p></p>";
include_dodosmail_footer($dodosmail_footer_file);
exit;
} else {
headfunction($after_url);
}
} else {
include_dodosmail_header($dodosmail_header_file);
echo "<p class=\"DodosMailError\">Fout - Het formulier is tijdelijk niet bruikbaar, gebruik ".dodosmail_error_handle($your_email_address)." om contact op te nemen.\n";
echo "<br /><br /><a href=\"javascript:history.back(1)\">Terug</a>\n";
echo "</p>\n";
include_dodosmail_footer($dodosmail_footer_file);
exit;
}



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



?>




Andy schreef op 01.01.2010 15:31

Maar gaat iets fout en ik weet niet waar.

Dit is geen vraag.
Wees duidelijk.

Post alléén relevante code en geen compleet script.

Je script in je post is nu niet echt leesbaar. Pas je post even aan en gebruik [ignore]
 en 
[/ignore] tags om je code heen. Om php code zet je uiteraard dit:<?php en ?>Gebruik je knop om dit te doen.

SanThe.
Ik zag alweer zaken voorbij komen die terug gaan naar het stenentijdperk

<?php
// Emular register_globals on
if (!ini_get('register_globals')) {
$superglobales = array($_SERVER, $_ENV, $_FILES, $_COOKIE, $_POST, $_GET);
if (isset($_SESSION)) {
array_unshift($superglobales, $_SESSION);
}
foreach ($superglobales as $superglobal) {
extract($superglobal, EXTR_SKIP);
}
}
?>
hoort in geen enkel script thuis

- gebruik de superglobals op de juiste manier
- controleer en valideer op correcte manier

En er zijn functies die wel bestaan maar die je in veel gevallen links dient te laten liggen:
-> empty (zeer zeker fout als je superglobals er mee gaat evalueren)
-> ereg functies zijn in feite bijna verleden tijd
-> global definities binnen functies vooral daar aan vasthouden maar niet heus

En zo zijn er waarschijnlijk wel meer zaken die aangehaald kunnen worden als niet logisch / bruikbaar
In de senphp staat:
<?
$your_email_address="[email protected]";

if(empty($_GET) && empty($_POST)) {
die('Ongeldige actie');ongeldige actie.

Als ik op een tekst vlak in de tabel probeer te tikken verspringt hij naar : naar een volgende pagina met ongeldige actie
Noppes schreef op 01.01.2010 15:51
Ik zag alweer zaken voorbij komen die terug gaan naar het stenentijdperk

<?php
// Emular register_globals on
if (!ini_get('register_globals')) {
$superglobales = array($_SERVER, $_ENV, $_FILES, $_COOKIE, $_POST, $_GET);
if (isset($_SESSION)) {
array_unshift($superglobales, $_SESSION);
}
foreach ($superglobales as $superglobal) {
extract($superglobal, EXTR_SKIP);
}
}
?>
hoort in geen enkel script thuis

- gebruik de superglobals op de juiste manier
- controleer en valideer op correcte manier

En er zijn functies die wel bestaan maar die je in veel gevallen links dient te laten liggen:
-> empty (zeer zeker fout als je superglobals er mee gaat evalueren)
-> ereg functies zijn in feite bijna verleden tijd
-> global definities binnen functies vooral daar aan vasthouden maar niet heus

En zo zijn er waarschijnlijk wel meer zaken die aangehaald kunnen worden als niet logisch / bruikbaar
Ik ben een creatief en geen nurd. Noppes
@Andy: Gelieve Niet 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.

SanThe.
Drop scripts en zoek iets wat stamt van de laatste 2 a 3 jaar

En zorg er dan voor dat je het een en ander begrijpt van:
- html / css
- php
- sql

Begin met iets eenvoudigs zal ik zeggen.....

Edit:
En je hoeft ook geen nurt te zijn om te achterhalen, dat hetgeen je hebt niet meer van deze tijd is.
Andy schreef op 01.01.2010 15:56
Ik ben een creatief en geen nurd. Noppes
Deze reactie snap ik niet. Noppes wijst je - heel terecht - op het feit dat de code erg verouderd is en je dit script dus eigenlijk niet zou moeten gebruiken.

Programmeertalen zijn continue in ontwikkeling en als beginner doe je er verstandig aan om de meest PHP versie en functionliteiten te gebruiken.

Zie ook: PHP beginnershandleiding.
Maar een vraag is een vraag en ik dus, weet niet of dat wat ik heb gevonden op internet oud is en begin dan niet met stenentijdperk, maar geef dan een goed voorbeeld, waar ik wat aan heb. Ik moet nu eenmaal snel een formulier maken waarin ik een bijlage moet invoeren. Ik heb op deze site daar nu al genoeg discussie over gezien.

Reageren