met php op site naar id brengen
Weet iemand hoe je met php iemand naar een id stuurt op de pagina? heb dit namelijk nodig als die door post gaat en dan helemaal beneden aan de pagina is.
Ja maar hij mag de website niet herladen. hij moet met php gewoon naar het id gaan, want daar staat de melding dat het berict verzonden is
Dan kan je toch je fragment-identifier (#sectie) in je action-attribuut plaatsen?
hier is trouwens mijn script:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php
// E-mailadres verificatie
function isEmail($email) {
return(preg_match("/^[-_.[:alnum:]]+@((([[:alnum:]]|[[:alnum:]][[:alnum:]-]*[[:alnum:]])\.)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)$|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i", $email));
// als er op de submit knop gedrukt wordt, dan wordt dit uitgevoerd
if($_SERVER['REQUEST_METHOD'] == "POST")
{
// waar de mail naartoe verzonden moet worden
$emailTo = '[email protected]';
// variabelen die informatie uit form halen
$clientName = trim($_POST['name']);
$clientEmail = trim($_POST['emailornumber']);
$subject = "Mail aan edelsmid: " . trim($_POST['subject']);
$message = trim($_POST['message']);
if($clientName != '' && isEmail($clientEmail) && $subject != '' && $message != '') {
// verstuurd mail als de velden niet leeg zijn
$headers = "From: " . $clientName . " <" . $clientEmail . ">" . "\r\n" . "Reply-To: " . $clientEmail;
mail($emailTo, $subject, $message, $headers);
//geeft melding als mail is verzonden
$melding = "Uw bericht is verzonden!";
}
}
?>
<div class="one_two">
<form action="#contact" method="post">
<input type="text" placeholder="Naam" name="name" />
<input type="text" placeholder="Email en/of telefoonnummer" name="emailornumber" />
<input type="text" placeholder="Betreft" name="subject" />
<textarea placeholder="Bericht" name="message"></textarea>
<input type="submit" value="Verstuur" />
<?php
//geeft melding als die niet leeg is
if (!empty($melding)) {
echo $melding;
}
?>
</form>
</div>
// E-mailadres verificatie
function isEmail($email) {
return(preg_match("/^[-_.[:alnum:]]+@((([[:alnum:]]|[[:alnum:]][[:alnum:]-]*[[:alnum:]])\.)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)$|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i", $email));
// als er op de submit knop gedrukt wordt, dan wordt dit uitgevoerd
if($_SERVER['REQUEST_METHOD'] == "POST")
{
// waar de mail naartoe verzonden moet worden
$emailTo = '[email protected]';
// variabelen die informatie uit form halen
$clientName = trim($_POST['name']);
$clientEmail = trim($_POST['emailornumber']);
$subject = "Mail aan edelsmid: " . trim($_POST['subject']);
$message = trim($_POST['message']);
if($clientName != '' && isEmail($clientEmail) && $subject != '' && $message != '') {
// verstuurd mail als de velden niet leeg zijn
$headers = "From: " . $clientName . " <" . $clientEmail . ">" . "\r\n" . "Reply-To: " . $clientEmail;
mail($emailTo, $subject, $message, $headers);
//geeft melding als mail is verzonden
$melding = "Uw bericht is verzonden!";
}
}
?>
<div class="one_two">
<form action="#contact" method="post">
<input type="text" placeholder="Naam" name="name" />
<input type="text" placeholder="Email en/of telefoonnummer" name="emailornumber" />
<input type="text" placeholder="Betreft" name="subject" />
<textarea placeholder="Bericht" name="message"></textarea>
<input type="submit" value="Verstuur" />
<?php
//geeft melding als die niet leeg is
if (!empty($melding)) {
echo $melding;
}
?>
</form>
</div>
Verder is je reguliere expressie voor de mail niet meer 2015-proof. Gebruik gewoon filter_var().
Gewijzigd op 04/06/2015 20:43:46 door - Ariën -
Toevoeging op 04/06/2015 20:52:52:
EDIT: het werkt heel erg bedankt Aar :)
Gewijzigd op 04/06/2015 20:51:23 door racoon smasher
Ha, ik dacht al. Hier werkt het gewoon!
Waarom stuur je iemand niet door naar een aparte pagina met deze mededeling? Je kunt nu iemand spammen door de pagina continu te verversen?