Hallo, ik heb een volgende vraag.
Ik kom verschillende php scripts tegen.
Maar zoals ik 'm nu heb......
Ik kom er even niet uit.
Met verplichte velden heb ik alles wel voor elkaar gekregen.
Maar hoe krijg ik nu voor elkaar dat als mensen hun emailadres moeten invullen, dus [email protected] als voorbeeld.....
Nu kunnen ze gewoon maar iets intypen, gewoon iets wat niet eens een emailadres is.
En dat wil ik dus niet.

Dit is mijn script:



<?php

if(function_exists('date_default_timezone_set')) { date_default_timezone_set('Europe/Amsterdam'); }
define('LF', "\n");

// Get a value from the $_POST array (case insensitive!!)
function getPost($key, $trim = false, $lowercase = false, $int = false)
{
if(isset($_POST[$key]))
{
$v = stripslashes($_POST[$key]);

if($trim)
{
$v = trim($v);
}

if($int)
{
$v = intval($v);
}
elseif($lowercase)
{
$v = strtolower($v);
}

return $v;
}

return '';
}

// Default values
$field_1 = '';
$field_2 = '';
$field_3 = '';
$field_4 = '';
$field_5 = '';
$field_6 = '';

$sHtml = '';
$sFormError = '';

// Process form
if(empty($_POST['form']) == false)
{
$field_1 = getPost('field_1', true);
if(strlen($field_1) == 0) { $sFormError = 'Vul a.u.b. alle verplichte velden in.'; }
$field_2 = getPost('field_2', true);
if(strlen($field_2) == 0) { $sFormError = 'Vul a.u.b. alle verplichte velden in.'; }
$field_3 = getPost('field_3', true);
if(strlen($field_3) == 0) { $sFormError = 'Vul a.u.b. alle verplichte velden in.'; }
$field_4 = getPost('field_4', true);
if(strlen($field_4) == 0) { $sFormError = 'Vul a.u.b. alle verplichte velden in.'; }
$field_5 = getPost('field_5', true);
if(strlen($field_5) == 0) { $sFormError = 'Vul a.u.b. alle verplichte velden in.'; }
$field_6 = getPost('field_6', true);
}

// Show form
if(empty($_POST['form']) || $sFormError)
{
$sHtml .= '<form action="" method="post">
<input name="form" type="hidden" value="form1">
<h1>Vul hieronder uw verzoekje in</h1>
' . $sFormError . '
<table border="0" cellpadding="3" cellspacing="0"><tr>
<td align="left" valign="top">aangeboden door *</td>
<td align="left" valign="top"><input name="field_1" type="text" value="' . htmlentities($field_1) . '"></td>
</tr>
<tr>
<td align="left" valign="top">uw emailadres *</td>
<td align="left" valign="top"><input name="field_2" type="$emailadres" value="' . htmlentities($field_2) . '"></td>
</tr>
<tr>
<td align="left" valign="top">artiest *</td>
<td align="left" valign="top"><input name="field_3" type="text" value="' . htmlentities($field_3) . '"></td>
</tr>
<tr>
<td align="left" valign="top">titel *</td>
<td align="left" valign="top"><input name="field_4" type="text" value="' . htmlentities($field_4) . '"></td>
</tr>
<tr>
<td align="left" valign="top">bestemd voor *</td>
<td align="left" valign="top"><input name="field_5" type="text" value="' . htmlentities($field_5) . '"></td>
</tr>
<tr>
<td align="left" valign="top">kleine reactie</td>
<td align="left" valign="top"><input name="field_6" type="text" value="' . htmlentities($field_6) . '"></td>
</tr>
<tr>
<td align="left" valign="top">&nbsp;</td>
<td align="left" valign="top"><input type="submit" value="Verzenden"></td>
</table>
</form>';
}
else // Send form
{
$mail_to = '[email protected]';
$mail_from = '[email protected]';
$mail_subject = 'verzoekje radio';
$mail_message = 'Online verzoek: ' . LF . LF
. 'aangeboden door: ' . $field_1 . LF
. 'uw emailadres: ' . $field_2 . LF
. 'artiest: ' . $field_3 . LF
. 'titel: ' . $field_4 . LF
. 'bestemd voor: ' . $field_5 . LF
. 'kleine reactie: ' . $field_6 . LF
. LF
. 'IP: ' . $_SERVER['REMOTE_ADDR'] . ', Datum: ' . date('d-m-Y') . ', Tijd: ' . date('H:i:s');

mail($mail_to, $mail_subject, $mail_message, 'From: ' . $mail_from);

$sHtml .= '<h1>Formulier verzonden</h1><p>Dankje voor Uw verzoek, deze wordt spoedig gedraaid.</p>';
}

echo $sHtml;

?>


En op http://www.radio-happystar.nl/verzoekje.php
vind u een voorbeeld, dat u gewoon wat in kunt typen.
Iets van een activatie mail?
nee dit gaat om een verzoekje te doen op http://www.radio-happystar.nl

maar nu kun je gewoon invoeren bij email bijvoorbeeld alleen een letter.....en je kunt 'm gewoon versturen.
maar wat ik dus wil is dat je ook echt [email protected] moet invoeren
dus echt je emailadres
en vul je alleen een letter in en je verstuurd op verzenden, dat hij dan ook een foutmelding geeft dat je geen geldig emailadres hebt ingevoerd.
Er zijn hier wel wat scripts om met regexp na te kijken of te kijken of het domein wel bestaat.

Beste manier is natuurlijk activatiemail.
maar wat moet ik er in zetten dan in de php script
ik kan wel aardig goed met html overweg
maar php is abracadabra voor mij
deze heb ik namelijk via via gekregen en alleen de emails hoeven te veranderen namelijk
zoek eens op regex email
of php validator in google :-)
Yearupie schreef op 19.06.2009 22:17
Je kan denk ik het beste een activerings mail gebruiken.

topicstarter heeft al aangegeven dat ie dit niet van toepassing vindt...

Probeer het eens met een PHP filter:
<?php
if (filter_var($email, FILTER_VALIDATE_EMAIL))
{
echo 'valid';
}
else
{
echo 'invalid';
}
?>
ik heb nu wel het volgende gevonden op http://devzone.zend.com/article/1247

<?php
if ($submit) {
$okay = preg_match(
'/^[A-z0-9_\-]+[@][A-z0-9_\-]+([.][A-z0-9_\-]+)+[A-z]{2,4}$/',
$emailfield
);
if ($okay) {
echo "E-mail is validated";
} else {
echo "E-mail is incorrect";
}
}else {
?>
<form method="POST" action="email.php">
E-mail address: <input type="text" name="emailfield">
<br><input type="submit" name="submit" value="Validate">
</form>
<?php
}
?>

maar waar plaats ik deze??
Rens schreef op 19.06.2009 22:41
[quote='Yearupie schreef op 19.06.2009 22:17']Je kan denk ik het beste een activerings mail gebruiken.

topicstarter heeft al aangegeven dat ie dit niet van toepassing vindt...

Probeer het eens met een PHP filter:
<?php
if (filter_var($email, FILTER_VALIDATE_EMAIL))
{
echo 'valid';
}
else
{
echo 'invalid';
}
?>[/quote]

nou wat ik ook doe....
het wilt niet lukken...
ik heb geen flauw idee waar ik dat moet plaatsen
waar ik het ook plaats, waarvan ik denk dat ik het neer moet zetten....
dan zie ik helemaal niks meer
Esther, het script dat je daar hebt zit niet echt lekker in elkaar. Ik weet niet of je het zelfs geschreven hebt of dat je het ergens vandaan hebt, maar eigenlijk zou dit niet meer verdienen dan een enkele reis prullenbak.

http://www.phptuts.nl/view/34/

Kijk eens naar bovenstaande link. Dat is een voorbeeld van een uitgebreide formuliercontrole die je zou kunnen hanteren. In dat script kun je het voorstel van Rens, dat overigens een goed voorstel is, prima toepassen. Waar je dat moet doen, spreekt redelijk voor zich.

Ik zou zeggen kijk er zelf even naar, en mocht je er toch niet uit komen dan horen we dat wel.

Succes!

Reageren