hallo,
ik heb op javascript.webmastercity.nl een emailvalidatiescriptje gevonden:
<?php
if( preg_match( "/^[0-9a-z_\-]+(\.[0-9a-z_\-]+)*@[0-9a-z\-]+(\.[0-9a-z\-]+)*(\.([a-z]){2,6})$/i", $email ) )
{
list( , $domein ) = explode( "@", $email );
if( checkdnsrr( $domein ) )
{
return TRUE;
}
}
return FALSE;
?>
ik weet alleen helemaal niet hoe ik dit moet verwerken... kan iemand me hlpen of weet iemand ergens een goeie tutorial?
<?php
function val_email($email){
if( preg_match( "/^[0-9a-z_\-]+(\.[0-9a-z_\-]+)*@[0-9a-z\-]+(\.[0-9a-z\-]+)*(\.([a-z]){2,6})$/i", $email ) )
{
list( , $domein ) = explode( "@", $email );
if( checkdnsrr( $domein ) )
{
return true;
}else{ return false;}
}
return false;
}
if(val_email($_POST['email'])){
echo 'Email is goed';
}else{
echo 'email is fout';
}
?>
owkej dankje, zo zal het wel lukken
Het lukt tog niet helemaal, want ik wil het verwerken in een hele reeks van controles.
<?php

if($submit){

if ( $_POST['email'] == '' ) { echo '<font face="verdana" color="#FF0000">Je hebt geen emailadres ingevuld.</font><br>'; }

function val_email($email){
if( preg_match( "/^[0-9a-z_\-]+(\.[0-9a-z_\-]+)*@[0-9a-z\-]+(\.[0-9a-z\-]+)*(\.([a-z]){2,6})$/i", $email ) )
{
list( , $domein ) = explode( "@", $email );
if( checkdnsrr( $domein ) )
{
return true;
}else{ return false;}
}
return false;
}
if(val_email($_POST['email'])){
echo 'Email is goed';
}else{
echo 'email is fout';
}

}
?>
Het is nu zo dat ie zegt "goed" of "fout". maar hij moet hierna weer doorgaan met andere dingen cheken en dan het formulier versturen...
ik wil 'm eigenlijk hierin verwerken:
<?
if($submit) {

$to = "$ontvangeremail";
$extra = "From: $email\r\nReply-To: $email\r\n";
$message = "Hallo ".$ontvangernaam.".\nDeze email is verzonden door ".$naam."\nIP-adres: ".$REMOTE_ADDR."\n\n".$bericht."";

if ( $_POST['ontvangernaam'] == '' ) { echo '<font face="verdana" color="#FF0000">Je bent vergeten de naam van de geadresseerde in te vullen.</font><br>'; }
elseif ( $_POST['ontvangeremail'] == '' ) { echo '<font face="verdana" color="#FF0000">Je bent vergeten het emailadres van de geadresseerde in te vullen.</font><br>'; }
elseif ( $_POST['naam'] == '' ) { echo '<font face="verdana" color="#FF0000">Je bent vergeten je naam in te vullen.</font><br>'; }
elseif ( $_POST['email'] == '' ) { echo '<font face="verdana" color="#FF0000">Je bent vergeten je emailadres in te vullen.</font><br>'; }
elseif ( $_POST['subject'] == '' ) { echo '<font face="verdana" color="#FF0000">Je bent vergeten een onderwerp in te vullen.</font><br>'; }
elseif ( $_POST['bericht'] == '' ) { echo '<font face="verdana" color="#FF0000">Je bent vergeten een bericht te schrijven.</font><br>'; }
else { mail ($to, $subject, $message, $extra, $headers); echo '<font face="verdanan"color="#FF0000">Het bericht is met succes verzonden!</font>'; }}

else {
?>
hier komt dan het formulier
wil je me nog ff helpen?
Met
if(val_email($_POST['email'])){
controleer jij of dit een TRUE of FALSE oplevert. Dat jij vervolgens nog andere controles wilt doen, moet je helemaal zelf weten.

Verder is $submit waarschijnlijk fout, zet maar eens error_reporting(E_ALL); bovenaan je script.

if($_SERVER['REQUEST_METHOD'] == 'POST'){
is een veel betere controle, deze kijkt of er een formulier met POST is verstuurd en niet of er een variabele met de naam $submit beschikbaar is. Niet iedere browser stuurt deze namelijk mee.
owkej,
maar euhm als je op submit drukt stuurt ie die tog mee?
<input type="submit" value="Verzenden" name="submit"> zoiets.
dus dan heeft ie vanzelf die submit, en als ie die submit niet meestuurd, dan zal ie de rest ook wel niet opsturen, dus dan is die zoiezo niet handig
Wanneer je op de knop drukt, zul je $_POST['submit'] op de server ontvangen en dus geen $submit. Wanneer je een enter geeft, dan is het afhankelijk van de browser of je deze waarde ook krijgt meegestuurd. En daar wil je niet van afhankelijk zijn.
je had idd gelijk met dat ie dan tog stiekem een error geeft:P
dat heb ik dus ff veranderd... maar het lukt nogsteeds niet helemaal...
ik krijg 'm niet zo dat ie de email checked en dan verder gaat met cheken en versturen...
Dan is jouw structuur nog steeds niet goed. Voorbeeldje:

if(formulier is verstuurd){ // TRUE
  if(emailadres is ok){ // TRUE
    verzend email
  }
  else { // FALSE, email niet ok
    foutmelding
  }
}
else { FALSE, geen formulier verstuur
  toon formulier
}

dit mag je zelf in php-code gaan uitschrijven.
owkej dankje,
ga ik doen...

Reageren