Add nodig voor niet ingevulde hokjes form. (Opgelost)
DieHard - 16/04/2008 14:31 (laatste wijziging 16/04/2008 14:32)
PHP interesse
Kan iemand mij uitleggen hoe ik ervoor kan zorgen via het php script dat deze het aangeeft als er een vakje niet ingevuld is en voor een geldig email address?
<?php
$to = "email@hotmail.com";
$subject = $_POST['subject'] ;
$bericht = $_POST['message'] ;
$header = "From: " . $_POST['name'] . " <" . $_POST['email'] . ">\n";
$header .= "Reply-To: " . $_POST['name'] . " <" . $_POST['email'] . ">\n";
$header .= "X-Priority: 1";
mail ($to, $subject, $bericht, $header);
?>
<SCRIPT language="JavaScript">
<!--
window.location="http://website.com";
//-->
</SCRIPT>
<?php
$to = "email@hotmail.com" ;
$subject = $_POST [ 'subject' ] ;
$bericht = $_POST [ 'message' ] ;
$header = "From: " . $_POST [ 'name' ] . " <" . $_POST [ 'email' ] . ">\n " ;
$header .= "Reply-To: " . $_POST [ 'name' ] . " <" . $_POST [ 'email' ] . ">\n " ;
$header .= "X-Priority: 1" ;
mail ( $to , $subject , $bericht , $header ) ; ?>
<SCRIPT language="JavaScript">
<!--
window.location="http://website.com";
//-->
</SCRIPT>
<form id="form" action="contact.php" method="post">
<table width="80%" border="0">
<tr>
<td>Name:</td>
<td><input type="text" name="name" id="name" /></td>
</tr>
<tr>
<td height="23">Email Address:</td>
<td><input type="text" name="email" id="email" /></td>
</tr>
<tr>
<td height="23">Subject:</td>
<td><input type="text" name="subject" id="subject" /></td>
</tr>
<tr>
<td>Message:</td>
<td><textarea name="message" id="textarea" cols="50" rows="6"></textarea></td>
</tr>
<tr>
<td height="23"><input type="submit" name="button" id="button" value="Send" />
<td><input type="reset" name="button2" id="button2" value="Reset" /></td>
</form>
<form id = "form" action = "contact.php" method = "post" > <table width = "80%" border = "0" > <td ><input type = "text" name = "name" id = "name" / ></ td >
<td height = "23" > Email Address:
</ td > <td ><input type = "text" name = "email" id = "email" / ></ td >
<td height = "23" > Subject:
</ td > <td ><input type = "text" name = "subject" id = "subject" / ></ td >
<td height = "23" ><input type = "submit" name = "button" id = "button" value = "Send" / > <td ><input type = "reset" name = "button2" id = "button2" value = "Reset" / ></ td >
13 antwoorden
Gesponsorde links
Berten - 16/04/2008 14:37 (laatste wijziging 16/04/2008 14:38)
PHP beginner
Met deze if test kan je testen of een veld in is gevuld
if($_POST['name'] == "") {
echo "vul eerst je naam in";
}
// of gebruik
if(!isset($_POST['name']) {
echo "vul eerst je naam in";
}
if ( $_POST [ 'name' ] == "" ) {
echo "vul eerst je naam in" ; }
// of gebruik
if ( ! isset ( $_POST [ 'name' ] ) { echo "vul eerst je naam in" ; }
Voor de email gebruiken we een Google.be: Reguliere expressie
Via google vond ik volgende functie die gebruik maakt van reguliere expressie
/**
*
* PHP validate email
* http://www.webtoolkit.info/
*
**/
function isValidEmail($email){
return eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email);
}
if (!isValidEmail($_POST['email'])) {
echo "Vul een geldig email adres in aub";
}
/**
*
* PHP validate email
* http://www.webtoolkit.info/
*
**/
function isValidEmail( $email ) {
return eregi ( "^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$" , $email ) ; }
if ( ! isValidEmail( $_POST [ 'email' ] ) ) {
echo "Vul een geldig email adres in aub" ; }
DieHard - 16/04/2008 15:09
PHP interesse
Waar moet ik die regels dan zetten in het php script onder wat ik al heb of er boven?
Berten - 16/04/2008 15:31 (laatste wijziging 16/04/2008 15:32)
PHP beginner
ik zou het volgende doen
<?php
if($_POST['name'] == "") {
echo "vul eerst je naam in";
} elseif (!isValidEmail($_POST['email'])) {
echo "Vul een geldig email adres in aub";
} else {
$to = "email@hotmail.com";
$subject = $_POST['subject'] ;
$bericht = $_POST['message'] ;
$header = "From: " . $_POST['name'] . " <" . $_POST['email'] . ">\n";
$header .= "Reply-To: " . $_POST['name'] . " <" . $_POST['email'] . ">\n";
$header .= "X-Priority: 1";
mail ($to, $subject, $bericht, $header);
}
?>
<?php
if ( $_POST [ 'name' ] == "" ) {
echo "vul eerst je naam in" ; } elseif ( ! isValidEmail( $_POST [ 'email' ] ) ) {
echo "Vul een geldig email adres in aub" ; } else {
$to = "email@hotmail.com" ;
$subject = $_POST [ 'subject' ] ;
$bericht = $_POST [ 'message' ] ;
$header = "From: " . $_POST [ 'name' ] . " <" . $_POST [ 'email' ] . ">\n " ;
$header .= "Reply-To: " . $_POST [ 'name' ] . " <" . $_POST [ 'email' ] . ">\n " ;
$header .= "X-Priority: 1" ;
mail ( $to , $subject , $bericht , $header ) ; }
?>
DieHard - 16/04/2008 16:57 (laatste wijziging 16/04/2008 17:07)
PHP interesse
Nee dat had ik niet veranderd inderdaad, gelukkig heb ik er maar 75 binnen gekregen. Volgens mij is het nu wel automatisch even geblokkeerd hierdoor dus ik kan niet meer testen nu.
Edit:// Ik heb het nu omgezet naar ander email adress.
Het werkt nu wel ja de message als er geen email adress instaat,
maar als ik nu alles geldig invoer en verstuur dan loopt ie vast op form.php en verstuurd ie nix.
DieHard - 16/04/2008 17:08 (laatste wijziging 16/04/2008 17:12)
PHP interesse
Ja dat wil ik ook, maar als ik alles nu goed invul verstuurd hij het niet eens. Dan blijft ie hangen op .php.
Dat heb ik gemaakt nu.
Maar er komt nu geen email meer aan.
DieHard - 16/04/2008 17:21 (laatste wijziging 16/04/2008 18:00)
PHP interesse
Beide email adressen doen het niet meer nu, ik wacht wel af en probeer het later nog wel.
Edit:// hij doet het weer dus ik ga verder testen.
in regel 6 staat naaml, moet dat niet zonder die l zijn?
DieHard - 16/04/2008 19:16
PHP interesse
Maarja het werk nu, maar als je geen email address invuld staat er van vul je email adress in. En daarna laad ie door en krijg ik wel een leeg emailtje.
DieHard - 16/04/2008 19:29 (laatste wijziging 16/04/2008 20:21)
PHP interesse
Dat is niet het probleem. Met alle velden leeg kan je 1000x op send drukken en er komt geen foutmelding.
Er komt alleen een fout melding als je iets invult bij email of een fout email adress, maar als je het leeg houd komt er geen fout melding?
<?php
ob_start();
function isValidEmail($email){
return eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email);
}
if (isset($_POST['email']) and $_POST['email']!="" and !isValidEmail($_POST['email'])) {
echo "Fill in a valid Email Address!";
header("Refresh: 3; URL=contact.html"); //het e-mail formulier
exit();
}
$to = "email@hotmail.com";
$subject = $_POST['subject'] ;
$bericht = $_POST['message'] ;
$header = "From: " . $_POST['email'] . " <" . $_POST['email'] . ">\n";
$header .= "Reply-To: " . $_POST['email'] . " <" . $_POST['email'] . ">\n";
$header .= "X-Priority: 1";
mail ($to, $subject, $bericht, $header);
header("location: go.php"); //bewerk dit stukje naar een pagina die je zelf wilt.
?>
<?php
function isValidEmail( $email ) {
return eregi ( "^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$" , $email ) ; }
if ( isset ( $_POST [ 'email' ] ) and
$_POST [ 'email' ] != "" and
! isValidEmail
( $_POST [ 'email' ] ) ) {
echo "Fill in a valid Email Address!" ; header ( "Refresh: 3; URL=contact.html" ) ; //het e-mail formulier
}
$to = "email@hotmail.com" ;
$subject = $_POST [ 'subject' ] ;
$bericht = $_POST [ 'message' ] ;
$header = "From: " . $_POST [ 'email' ] . " <" . $_POST [ 'email' ] . ">\n " ;
$header .= "Reply-To: " . $_POST [ 'email' ] . " <" . $_POST [ 'email' ] . ">\n " ;
$header .= "X-Priority: 1" ;
mail ( $to , $subject , $bericht , $header ) ; header ( "location: go.php" ) ; //bewerk dit stukje naar een pagina die je zelf wilt. ?>
Dit heb ik nu.
DieHard - 16/04/2008 20:49 (laatste wijziging 16/04/2008 21:09)
PHP interesse
Hij is perfect nu en geen problemen meer!
Dit is 'em
Bedankt voor de hulp!!
}
if (isset($_POST['email']) and $_POST['email']!="" and !isValidEmail($_POST['email'])) {
echo "Fill in a valid Email Address!";
header("Refresh: 3; URL=contact.html"); //het e-mail formulier
exit();
}
// configureren van de gegevens
$to = "email@hotmail.com";
$subject = $_POST['subject'] ;
$bericht = $_POST['message'] ;
$message = " boxmessage ".$_POST['boxmessage'] . ">\n";
$message .= " name ".$_POST['name'] . ">\n";
$header = "From: " . $_POST['email'] . " <" . $_POST['email'] . ">\n";
$header .= "Reply-To: " . $_POST['email'] . " <" . $_POST['email'] . ">\n";
$header .= "X-Priority: 1";
//een array 'faults' maken
$faults = array();
if (isset($_POST['button'])) // als je op verzenden klikt
{
if (empty($_POST['subject'])) // het veld subject moet ingvult zijn
{
$fouten [] = "* You need to fill in the subject!";
}
if (empty($_POST['email'])) // het veld email moet ingevult zijn
{
$fouten [] = "You need to fill in a valid Email Address!";
}
if (empty($_POST['message'])) // het veld bericht met ingevult zijn
{
$fouten [] = "You need to fill in a message!";
}
if (count($fouten)==0) // als er 0 fouten zijn moet die het verzenden
{
mail ($to, $subject, $bericht, $header);
header("location: go.php"); //bewerk dit stukje naar een pagina die je zelf wilt.
exit;
}
else{
echo "Couldn't send the message! Next errors have accured: ";
foreach($fouten as $fout)
echo "<br />" . $fout;
echo "<br /><br />";
}
}
?>
}
if ( isset ( $_POST [ 'email' ] ) and
$_POST [ 'email' ] != "" and
! isValidEmail
( $_POST [ 'email' ] ) ) {
echo "Fill in a valid Email Address!" ; header ( "Refresh: 3; URL=contact.html" ) ; //het e-mail formulier
}
// configureren van de gegevens
$to = "email@hotmail.com" ;
$subject = $_POST [ 'subject' ] ;
$bericht = $_POST [ 'message' ] ;
$message = " boxmessage " . $_POST [ 'boxmessage' ] . ">\n " ;
$message .= " name " . $_POST [ 'name' ] . ">\n " ;
$header = "From: " . $_POST [ 'email' ] . " <" . $_POST [ 'email' ] . ">\n " ;
$header .= "Reply-To: " . $_POST [ 'email' ] . " <" . $_POST [ 'email' ] . ">\n " ;
$header .= "X-Priority: 1" ;
//een array 'faults' maken
if ( isset ( $_POST [ 'button' ] ) ) // als je op verzenden klikt {
if ( empty ( $_POST [ 'subject' ] ) ) // het veld subject moet ingvult zijn {
$fouten [ ] = "* You need to fill in the subject!" ;
}
if ( empty ( $_POST [ 'email' ] ) ) // het veld email moet ingevult zijn {
$fouten [ ] = "You need to fill in a valid Email Address!" ;
}
if ( empty ( $_POST [ 'message' ] ) ) // het veld bericht met ingevult zijn {
$fouten [ ] = "You need to fill in a message!" ;
}
if ( count ( $fouten ) == 0 ) // als er 0 fouten zijn moet die het verzenden {
mail ( $to , $subject , $bericht , $header ) ; header ( "location: go.php" ) ; //bewerk dit stukje naar een pagina die je zelf wilt. }
else {
echo "Couldn't send the message! Next errors have accured: " ; foreach ( $fouten as $fout )
}
}
?>
TotempaaltJ - 17/04/2008 07:46
PHP interesse
(Opgelost knopje)
Gesponsorde links
Dit onderwerp is gesloten .