advertentie

Dit forum is niet langer actief. Voor vragen kun je voortaan terecht in de Vraag & Antwoord-rubriek van PCMweb.nl

 

Ga terug   PCM Forum > Scripting > Scripting

Antwoord
 
Discussietools Weergave
Oud 23 August 2009, 19:34   #1
jordytjuh16
PCM Newbie
 
Geregistreerd: 15 April 2009
Berichten: 60
Stuur een bericht via Skype™ naar jordytjuh16
Standaard probleem met mijn contact formulier

Hallo,,

Ik ben da afgelopen tijd druk bezig geweest van een nieuwe website, met een beetje hulp van een ander forum lid hier.
Nu is het probleem dat als ik het contact formulier heb ingevuld en ik druk op verzenden krijg ik dit te zien:Fout - Het formulier is tijdelijk niet bruikbaar, gebruik mijne-mail@.nl om contact op te nemen.

Weet iemand misschien wat dit kan zijn?

Gr jordy

Laatst gewijzigd door jordytjuh16 : 24 August 2009 om 11:49
jordytjuh16 is offline   Met citaat antwoorden
Oud 24 August 2009, 08:28   #2
gvanvoor
PCM Lord
 
gvanvoor's schermafbeelding
 
Geregistreerd: 26 January 2006
Locatie: De gezelligste stad ter wereld: Gent
Berichten: 928
Standaard

Niet als we de achterliggende php (of andere) code niet te zien krijgen...
BTW Met betrekking tot spammers e.d. is het niet echt een goed idee je email adres zomaar in de tekst van een post te plaatsen.
__________________
If you want to work on your computer: buy a PC. If you want to do work on your computer: buy a Mac.
gvanvoor is offline   Met citaat antwoorden
Oud 24 August 2009, 11:49   #3
jordytjuh16
PCM Newbie
 
Geregistreerd: 15 April 2009
Berichten: 60
Stuur een bericht via Skype™ naar jordytjuh16
Standaard

dit zijn de 2 code's die gebruikt zijn:
Code:
<?
$your_email_address="mijn e-mail@.nl";

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['your_email_address']) || eregi("\n",$_POST['your_email_address'])){
     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;
}



?>
Code:
     <form id="form1" name="form1" method="post" action="mailformulier.php"> 
<!-- bij action moet je verwijzen naar mailformulier.php -->

<input type="hidden" name="required_fields" value="voornaam, achternaam, email, vragen" />
<!-- bij value moet je id's van de verplichte velden ingeven -->

<input type="hidden" name="subject" value="Mail van website" />
<!-- bij value moet je de titel van de verstuurde mail ingeven -->

<input type="hidden" name="check_email_address" value="yes" />
<!-- bij value moet yes of no ingeven voor het checken van het email adres -->

<input type="hidden" name="after_url" value="bedankt.html" />
<!-- bij value moet je de pagina ingeven naar waar de bezoeker moet omgeleid worden na
het versturen van de mail -->

 
  <table width="400" border="0">
    <tr>
      <td width="91"><div align="left">Voornaam :*</div></td>

      <td width="299"><label>
        <input name="voornaam" type="text" id="naam" size="35" />
      </label></td>
    </tr>
    <tr>
      <td><div align="left">Achternaam :*</div></td>
      <td><label>
        <input name="achternaam" type="text" id="voornaam" size="35" />

      </label></td>
    </tr>
    <tr>
      <td><div align="left">Telefoon :</div></td>
      <td><label>
        <input name="telefoon" type="text" id="telefoon" size="35" />
      </label></td>
    </tr>

    <tr>
      <td><div align="left">E-mail : <span class="rood">*</span></div></td>
      <td><label>
        <input name="email" type="text" id="email" size="35" />
      </label></td>
    </tr>
    <tr>
      <td colspan="2"><div align="left"></div></td>

    </tr>
    <tr>
      <td valign="top"><div align="left">Vragen :*</div></td>
      <td><label>
        <textarea name="vragen" id="vragen" cols="30" rows="5"></textarea>
      </label></td>
    </tr>

    <tr>
      <td><div align="left"></div></td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td><div align="left"></div></td>
      <td><label>
        <input type="submit" name="button" id="button" value="Versturen" />
      </label>

      <label>
        <input type="reset" name="button2" id="button2" value="Formulier wissen" />
      </label></td>
    </tr>
    <tr>
      <td><div align="left"></div></td>
      <td>&nbsp;</td>
    </tr>
    <tr>

      <td colspan="2"><div align="left" class="rood">* = Verplicht veld</div></td>
    </tr>
  </table>
</form>
Ik hoop dat jullie mij nu wel kunnen helpen..

Gr jordy
jordytjuh16 is offline   Met citaat antwoorden
Oud 24 August 2009, 12:19   #4
gvanvoor
PCM Lord
 
gvanvoor's schermafbeelding
 
Geregistreerd: 26 January 2006
Locatie: De gezelligste stad ter wereld: Gent
Berichten: 928
Standaard

Ik heb nog nooit zo een ingewikkeld script voor de verwerking van een contactformulier gezien
'k Zal er mij later op de dag wat dieper in verdiepen...
__________________
If you want to work on your computer: buy a PC. If you want to do work on your computer: buy a Mac.
gvanvoor is offline   Met citaat antwoorden
Oud 24 August 2009, 12:34   #5
StevenT
PCM Lord
 
StevenT's schermafbeelding
 
Geregistreerd: 10 March 2008
Locatie: The Amsterdamn.....
Berichten: 2.409
Stuur een bericht via Skype™ naar StevenT
Standaard

Hij bestaat uit 2 delen een php pagina die er voor zorgt dat de mail verstuurt word buiten je mailprogramma om EN het contactformulier die naar de php verwijst.

Zelf gebruik ik hem ook en gaat normaal goed. Echter nu met server van woelmuis gaat er iets fout.
Net ook gemerkt met iets posten op een gastenboek.

Blokt woelmuis php oid??

Groet Steven

(ps ik help hem met de site vandaar dat ik even inspring
http://www.webtutorials.be/2007/07/1...tlook-opstart/
Hier komt hij vandaan.)
__________________



AMD Athlon64 X2 5200+ 2048 DDR2 Nvidia GeForce 8600GTS 320 GIG


StevenT is offline   Met citaat antwoorden
Oud 24 August 2009, 12:44   #6
gvanvoor
PCM Lord
 
gvanvoor's schermafbeelding
 
Geregistreerd: 26 January 2006
Locatie: De gezelligste stad ter wereld: Gent
Berichten: 928
Standaard

Citaat:
Hij bestaat uit 2 delen een php pagina die er voor zorgt dat de mail verstuurt word buiten je mailprogramma om EN het contactformulier die naar de php verwijst.
Dat had ik wel begrepen; ik vind het php gedeelte dat voor het versturen zorgt (onnodig?) ingewikkeld.
Je kan heel eenvoudig testen of de server php ondersteunt door onderstaand html in een bestand met de naam phptest.php op te slaan
HTML-code:
<html>
<body>
<?php phpinfo(); ?>
</body>
</html>
op de server te plaatsen en aan te roepen.

Correctie: Ik heb een beetje beter naar dat script gekeken en uit de verkregen medling kan ik afleiden dat de server php ondersteunt maar om een of andere reden geeft de mail functie false terug. Check in de uitvoer van bovenstaand script of je daar ergens iets m.b.t. mail ziet staan (ik weet dat er hosting bedrijven zijn die de php mail functionaliteit uitschakelen m.b.t. spam; misschien is dat daar het geval)
__________________
If you want to work on your computer: buy a PC. If you want to do work on your computer: buy a Mac.

Laatst gewijzigd door gvanvoor : 24 August 2009 om 12:52
gvanvoor is offline   Met citaat antwoorden
Oud 24 August 2009, 13:11   #7
StevenT
PCM Lord
 
StevenT's schermafbeelding
 
Geregistreerd: 10 March 2008
Locatie: The Amsterdamn.....
Berichten: 2.409
Stuur een bericht via Skype™ naar StevenT
Standaard

Wat ik heb kunnen vinden wat mij aanleiding geeft om het te posten is deze regel:

Citaat:
disable_functions system,exec,shell_exec,passthru,set_time_limit,err or_log,ini_alter,dl,mb_send_mail,proc_open,pfsocko pen,openlog,syslog,readlink,symlink,link,leak,fsoc kopen,popen,escapeshellcmd,apache_child_terminate apache_get_modules,apache_get_version,apache_geten v,apache_note,apache_setenv,virtual
Het staat dan wel onder local value maar ook onde master value.

Dusss.... Klopt mijn bedenkingen?

Disabled
__________________



AMD Athlon64 X2 5200+ 2048 DDR2 Nvidia GeForce 8600GTS 320 GIG


StevenT is offline   Met citaat antwoorden
Oud 24 August 2009, 13:27   #8
mathijsie
PCM Lord
 
mathijsie's schermafbeelding
 
Geregistreerd: 11 February 2006
Locatie: Vlakbij Nijmegen, Gelderland
Berichten: 2.004
Standaard

Plaats deze code eens bovenin het script:
PHP-code:
<?php
error_reporting
(E_ALL);
ini_set('display_errors'1);
?>
En post even wat voor output je nu krijgt.
__________________
Wie het kleine niet leert, doet het grote verkeerd.
mathijsie is offline   Met citaat antwoorden
Oud 24 August 2009, 13:33   #9
StevenT
PCM Lord
 
StevenT's schermafbeelding
 
Geregistreerd: 10 March 2008
Locatie: The Amsterdamn.....
Berichten: 2.409
Stuur een bericht via Skype™ naar StevenT
Standaard

het script van html of ehm de php
__________________



AMD Athlon64 X2 5200+ 2048 DDR2 Nvidia GeForce 8600GTS 320 GIG


StevenT is offline   Met citaat antwoorden
Oud 24 August 2009, 13:33   #10
mathijsie
PCM Lord
 
mathijsie's schermafbeelding
 
Geregistreerd: 11 February 2006
Locatie: Vlakbij Nijmegen, Gelderland
Berichten: 2.004
Standaard

Sorry, bovenaan het PHP script.
__________________
Wie het kleine niet leert, doet het grote verkeerd.
mathijsie is offline   Met citaat antwoorden
Antwoord


Discussietools
Weergave

Regels voor berichten
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Aan
Smileys zijn Aan
[IMG]-code is Aan
HTML-code is Uit

Forumnavigatie


Alle tijden zijn GMT +1. Het is nu 21:40.



Powered by vBulletin Version 3.8.6
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
Nederlandse vBulletin-vertaling door Alacer beschikbaar gesteld door Applinet.