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.
Esther schreef op 20.06.2009 15:55
maarre....gezien wat jij allemaal fout vind
maak jij dan maar eens een script voor mij, als jij het allemaal zo goed weet.
Ho even, zo werkt het hier niet! Ik (en vele anderen met mij) ben graag bereid om je te helpen als je een probleem hebt met een script of ergens niet uitkomt. Maar dat betekent niet dat je even kunt verlangen dat ik een kant en klaar script voor je maak.

Op dit forum is het de bedoeling dat je er zelf ook moeite voor doet en tijd in steekt, dan helpen we je graag. Maar mensen die voor een dubbeltje op de eerste rang willen zitten, hoeven niet op hulp te rekenen, in ieder geval niet van mij.

Succes verder en doe vooral niets met de gegeven adviezen in dit topic!
Blanche schreef op 20.06.2009 16:02
[quote='Esther schreef op 20.06.2009 15:55']maarre....gezien wat jij allemaal fout vind
maak jij dan maar eens een script voor mij, als jij het allemaal zo goed weet.
Ho even, zo werkt het hier niet! Ik (en vele anderen met mij) ben graag bereid om je te helpen als je een probleem hebt met een script of ergens niet uitkomt. Maar dat betekent niet dat je even kunt verlangen dat ik een kant en klaar script voor je maak.

Op dit forum is het de bedoeling dat je er zelf ook moeite voor doet en tijd in steekt, dan helpen we je graag. Maar mensen die voor een dubbeltje op de eerste rang willen zitten, hoeven niet op hulp te rekenen, in ieder geval niet van mij.

Succes verder en doe vooral niets met de gegeven adviezen in dit topic![/quote]

nou wat bovenstaande script heb ik juist alle moeite er voor gedaan hoor
maar ik heb nu de volgende code er in geplaatst

//Tijd, datum, en IP-adres worden gecontroleerd
$tijd = time();
$datum = strftime("%d/%m/%y %H:%M", $tijd);
$ip = getenv("REMOTE_ADDR");


maar die pakt ie niet
dus ik ben hoe dan ook allemaal aan het uitspitten, al weken lang namelijk
Deze had ik nog liggen.
<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);

function checkemail($email)
{
// Kijk of er een @ in zit, zo nee false
if(!stristr($email, '@'))
{
return false;
}
$email_split = explode("@", $email);
// Er mag slecht 1 @ inzitten dus het array moet 2 records tellen
if(count($email_split) != 2)
{
return false;
}
$email_user = $email_split[0];
$email_host = $email_split[1];
// Kijk of er MX-servers zijn, zo nee false
if(!getmxrr($email_host, $var))
{
return false;
}
// Kijk of het usergedeelte okee is, zo nee false
if(!eregi("^[0-9a-z]([-_.~]?[0-9a-z])*$", $email_user))
{
return false;
}
return true;
}

$email = (isset($_POST['email'])) ? $_POST['email'] : '';

if(!checkemail($email))
{
echo 'Je emailadres is niet geldig<br />';
}
else
{
echo 'Je emailadres is geldig<br />';
}

echo '<br />
<form action= "" method="post">
<input name="email" type="text" />
<input type="submit" value="Check Emailaddress" />
</form>';
?>
Esther schreef op 20.06.2009 15:55


maarre....gezien wat jij allemaal fout vind
maak jij dan maar eens een script voor mij, als jij het allemaal zo goed weet.



Omg,
Zei je dit vroeger ook tegen je leraar als je een onvoldoende had voor een toets?

Maar heb je al geprobeerd adviezen van hier op te volgen, of blijf je gewoon aankloten, zoals je nu eigenlijk aan t doen bent.

Ik weet niet eens meer van wie die tip kwam, maar het had met PHP Filter te maken.
Voor de rest probeert blanche je alleen maar te helpen, en als ik jou was, zou ik hem daar dankbaar voor zijn, dat kan je later namelijk nog heel wat uren schelen.
Esther schreef op 20.06.2009 16:05
nou wat bovenstaande script heb ik juist alle moeite er voor gedaan hoor
Een script genereren op een of andere website is nou niet direct het meest nuttige dat je had kunnen doen. Je zult er best tijd in gestoken hebben, maar helaas ben je nog niets opgeschoten. Maar waar zou dat aan liggen?

Je bent gewoon met iets bezig dat te hoog gegrepen is omdat je kennis van PHP zoals je zelf al zegt nihil is. Het stukje code dat je in je vorige post plaatst, getuigd daar ook van.

Er zijn in dit topic al genoeg goede suggesties gedaan, suggesties die wel een effectieve investering van je tijd zouden zijn. Maar klaarblijkelijk wil je daar niet aan beginnen. Dus nogmaals het advies: begin nu eens bij het begin en zorg dat je de basis van PHP onder de knie krijgt.

ps. @SanThe: goed stukje code, ben alleen bang dat Esther er op dit moment niet veel aan heeft. Het komt toch weer aan op hetzelfde probleem dat de hele tijd al speelt in dit topic: niet voldoende kennis hebben om de gegeven oplossingen toe te passen in een bestaand script.
voorlopig doe ik het nog wel op de oude manier
zie verzoekbox www.radio-happystar.nl
zonder email controle
en ik zal me 100% in gaan verdiepen
en hopen dat ik er dan uit kom

en ik zal kijken of ik iemand kan vinden
die bij mij thuis kan komen
en mij php kan gaan leren
stap voor stap

en anders ga ik of ik via html alleen wat voor elkaar krijg
en ze dan niet het emailadres zien
misschien is dat wel een heel veel betere optie
alleen maar HTML en GEEN php

Reageren