Formulier zegt verzonden, maar geen bericht in inbox

Status
Niet open voor verdere reacties.

rolfohtar

Gebruiker
Lid geworden
23 aug 2008
Berichten
136
Ik heb in WordPress een plugin geïnstalleerd (Download Manager) om mijn downloads bij te houden. Deze genereert op de front-end zijde een lijst met downloads. Wanneer je op een download klikt verschijnt er een pop-up in een lightbox met de download button.
Nu wil ik het zo maken dat voordat er gedownload kan worden er eerst een formulier ingevuld moet worden en dat na het sturen de download begint.

Het is mij gelukt om dat zover te krijgen. De pop-up verschijnt en er verschijnt een werkend formulier. Na het verzenden komt er een melding dat het zenden gelukt is en begint de download. Tot zover ben ik tevreden. Alleen.... ik ontvang geen formulier in mijn inbox met de ingevulde gegevens :(. Kan iemand mij hiermee helpen? De code staat hieronder:

PHP:
<?php
global $wpdb;
$dl = isset($_REQUEST['download'])?(int)$_REQUEST['download']:0;
if($dl>0){
    $data = $wpdb->get_row("select * from ahm_files where id='$dl'",ARRAY_A);

    if($_POST['password']==$data['password']&&isset($_POST['password'])){
        $did = uniqid();
        file_put_contents(dirname(__FILE__).'/cache/'.$did,serialize($data)); 
        die($did);
    }


//If the form is submitted
if(isset($_POST['download'])) {

	//Check to see if the honeypot captcha field was filled in
	if(trim($_POST['checking']) !== '') {
		$captchaError = true;
	} else {
	
		//Check to make sure that the name field is not empty
		if(trim($_POST['DName']) === '') {
			$nameError = __('U bent vergeten uw naam in te vullen.', 'cc_language');
			$hasError = true;
		} else {
			$name = trim($_POST['DName']);
		}
		
		//Check to make sure that the company field is not empty
		if(trim($_POST['DCompany']) === '') {
			$companyError = __('U bent vergeten uw bedrijfsnaam in te vullen.', 'cc_language');
			$hasError = true;
		} else {
			$company = trim($_POST['DCompany']);
		}

		//Check to make sure that the phone field is not empty
		if(trim($_POST['DPhone']) === '') {
			$phoneError = __('U bent vergeten uw telefoonnummer in te vullen.', 'cc_language');
			$hasError = true;
		} else {
			$phone = trim($_POST['DPhone']);
		}
		
		//Check to make sure sure that a valid email address is submitted
		if(trim($_POST['DMail']) === '')  {
			$emailError = __('U bent vergeten uw e-mailadres in te vullen.', 'cc_language');
			$hasError = true;
		} else if (!eregi("^[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,4}$", trim($_POST['email']))) {
			$emailError = __('U heeft een ongeldig e-mailadres ingevoerd.', 'cc_language');
			$hasError = true;
		} else {
			$email = trim($_POST['DMail']);
		}
			
		$options = get_option( 'cc-contact_theme_options' );
		
		//If there is no error, send the email
		if(!isset($hasError)) {
			$emailTo = 'rolf@rolf.nl';
			$subject = '[Website] bericht van '.$name.' (' .$company.')';
			$body = "Naam: $name \n\nBedrijfsnaam: $company \n\nTelefoon: $phone \n\nE-mail: $email \n\n$dl";
			$headers = 'Van: Rolf <' . $emailTo . '>' . "\r\n" . 'Reply-To: ' . $email;
			
			mail($emailTo, $subject, $body, $headers);

				$subject = 'Uw mail aan ' . $options['contactnaam'];
				$headers = 'Van: ' . $options['contactnaam'] . ' <' . $options['contactmail'] . '>';
				mail($email, $subject, $body, $headers);

			$emailSent = true;
		}
	}
} ?>
        <script language="JavaScript">
        <!--
		$(document).ready(function() {
			$('form#contactForm').submit(function() {
				$('form#contactForm .error').remove();
				var hasError = false;
				$('.requiredField').each(function() {
					if(jQuery.trim($(this).val()) == '') {
						var labelText = $(this).prev('label').text();
						$(this).parent().append('<span class="error">You forgot to enter your '+labelText+'.</span>');
						hasError = true;
					} else if($(this).hasClass('email')) {
						var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
						if(!emailReg.test(jQuery.trim($(this).val()))) {
							var labelText = $(this).prev('label').text();
							$(this).parent().append('<span class="error">You entered an invalid '+labelText+'.</span>');
							hasError = true;
						}
					}
				});
				if(!hasError) {
					var formInput = $(this).serialize();
					$.post($(this).attr('action'),formInput, function(data){
						$('form#contactForm').slideUp("fast", function() {				   
							$(this).before('<p class="thanks"><strong>Thanks!</strong> Your email was successfully sent. I check my email all the time, so I should be in touch soon.</p>');
							jQuery.post("<?php echo home_url('/'); ?>",{'download':'<?php echo $dl; ?>','password':jQuery('#pass').val()},function(res){                  
							location.href='<?php echo get_option('siteurl'); ?>/?wpdmact=process&did='+res; })
						});
					});
				}
				return false;
			});
		});
        //-->
        </script>

<?php	if($data){
    
    echo "<div style='min-weight:300px;min-height:200px;padding:30px;background:#fff;color:#000'><h1><nobr>$data[title]</nobr></h1><br/><p>".wpautop(stripcslashes($data[description]))."</p>";
	        /*
        if($_POST&&$data[password]==''){
        echo "<script>
                    window.opener.location.href='$_SERVER[HTTP_REFERER]'; self.close();</script>"; die(); }
        */            
      }  ?>
		
<?php if(isset($emailSent) && $emailSent == true) { ?>

	<div class="thanks">
		<h1><?php _e( 'Bedankt', 'cc_language' ); ?> <?=$name;?></h1>
		<p><?php _e( 'Uw e-mail is succesvol verzonden. We zullen spoedig contact met u opnemen.', 'cc_language' ); ?></p>
	</div>

	<?php } else { ?>
		
		<?php if(isset($hasError) || isset($captchaError)) { ?>
			<p class="error"><?php _e( 'Er zijn &eacute;&eacute;n of meerdere velden niet of niet juist ingevuld. Controleer uw gegevens en verstuur het formulier opnieuw.', 'cc_language' ); ?><p>
		<?php } ?>
		
        <form id="contactForm" action="<?php the_permalink(); ?>" method="post">
            <?php 
                if($_POST['password']==$data['password']&&count($_POST)>0){

                    mysql_query("update ahm_files set `download_count`=`download_count`+1 where id='{$data[id]}'");
                    echo "Please Wait... Download starting in a while...
                    </form>
                    
                    <script>
                    window.opener.location.href='".get_option('siteurl')."/?wpdmact=process&did={$did}'; 
                    self.close();
                    </script>
                    ";     
                                        
                    die();
                } else {
                    if($data['password']!=''){
                        if($_POST['password']!=$data['password']&&count($_POST)>0) echo "<span style='color:red'>Wrong password!</span><br>";
                ?>
                Enter Password: <input type="password" id="pass" size="10" name="password" />  
           <?php }else{?>
           <input type="hidden" id="pass" name="password" value="" /> 
           <?php }} ?>
		   

		   <ol class="forms">
				<li><label for="DName"><?php _e( 'Naam', 'cc_language' ); ?></label>
					<input type="text" name="DName" id="DName" value="<?php if(isset($_POST['DName'])) echo $_POST['DName'];?>" class="requiredField" />
					<?php if($nameError != '') { ?>
						<span class="error"><?=$nameError;?></span> 
					<?php } ?>
				</li>
				
				<li><label for="DCompany"><?php _e( 'Bedrijfsnaam', 'cc_language' ); ?></label>
					<input type="text" name="DCompany" id="DCompany" value="<?php if(isset($_POST['DCompany'])) echo $_POST['DCompany'];?>" class="requiredField" />
					<?php if($companyError != '') { ?>
						<span class="error"><?=$companyError;?></span> 
					<?php } ?>
				</li>

				<li><label for="DPhone"><?php _e( 'Telefoon', 'cc_language' ); ?></label>
					<input type="text" name="DPhone" id="DPhone" value="<?php if(isset($_POST['DPhone']))  echo $_POST['DPhone'];?>" class="requiredField" />
					<?php if($phoneError != '') { ?>
						<span class="error"><?=$phoneError;?></span>
					<?php } ?>
				</li>
				
				<li><label for="DMail"><?php _e( 'E-mail', 'cc_language' ); ?></label>
					<input type="text" name="DMail" id="DMail" value="<?php if(isset($_POST['DMail']))  echo $_POST['DMail'];?>" class="requiredField DMail" />
					<?php if($emailError != '') { ?>
						<span class="error"><?=$emailError;?></span>
					<?php } ?>
				</li>
				<li class="screenReader"><label for="checking" class="screenReader"><?php _e( 'Als u dit bericht wilt sturen, laat dit veld dan leeg.', 'cc_language' ); ?></label><input type="text" name="checking" id="checking" class="screenReader" value="<?php if(isset($_POST['checking']))  echo $_POST['checking'];?>" /></li>
				<li class="buttons"><input type="hidden" name="download" id="download" value="true" /><button type="submit"><?php _e( 'Download', 'cc_language' ); ?></button></li>
			</ol>
        </form>

        <?php
        die();
		}

			die();
		}
?>
 
Ik zie niet in waarom dat relevant is hiervoor. Ik heb natuurlijk met een reden mijn e-mail er nu niet ingezet. Het echte e-mail adres dat er hoort te staan klopt en een contactformulier dat op dezelfde code gebaseerd is werkt in ieder geval wél. Er zal hier wel een conflict in de code zitten, maar zelf heb ik deze nog niet kunnen vinden.
 
Oke, sorry ik dacht dat je misschien niet begrepen had dat je daar een werkend eigen mailadres in moest vullen om het formulier ergens te ontvangen. Misschien kun je er een messagebox in zetten (op het plek van versturen) om te zien of de code daadwerkelijk langs het versturen komt.
 
I meant no offense ;). Ik vermoed dat hij niet langs het versturen komt, omdat hij regel 14-72 van bovenstaande overslaat. Dit vermoeden heb ik omdat de daar staande validation niet zichtbaar is bij fouten bij het verzenden. Zelf zat ik te denken dat het bij isset() ergens fout moet gaan, omdat er daar twee van staan. Maar ik weet dat totaal niet zeker.
 
Ik zou alle code uitzetten op iets heel simpels na waarvan je zeker weet dat het werkt.
En kijken of je mail krijgt. Misschien is het wel een instelling van je locale mail server of weet ik veel.
Check dat eerst. Als dat werkt ga je verder en zet je steeds meer code aan. Op een gegeven moment vind je de boosdoener.
Check ook je hp log en apache log.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan