Contact Form "Succes messenge" op dezelfde pagina
Ik heb via een article in joomla een contact form gemaakt met een php mail script. Nu mijn vraag? Ik wil graag dat als ik op versturen druk dat de echo melding van bijvoorbeeld "Bedankt voor u bericht" op dezelfde pagina verschijnt, ik heb hem werkend maar nu krijg ik een aparte pagina met links boven in de echo melding. Ik wil het graag onder het forum hebben zo dat het forum dan weer leeg is of dat het form weggaat en dan het bericht komt, en misschien na een aantal seconden het form weer verschijnt.
Als ik het bericht maar op dezelfde pagina kan krijgen.
Ik heb er ook een ip melding in gestopt maar die werkt niet.
Hier volgt de code.
<p>
Tijdens onze live uitzendingen kunt u een verzoekje aanvragen of een reactie doen,<br />
dat kan via het onderstaande verzoek formulier.</p>
<form action="/mail.php" method="POST">
<p>
<strong>Naam:</strong></p>
<input name="name" size="25" type="text" />
<p>
<strong>Bericht:</strong></p>
<textarea cols="50" name="message" rows="20"></textarea><br />
<br />
<input type="submit" value="Versturen" /> </form>
en hier onder de mail.php >
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php $name = $_POST['name'];
$message = $_POST['message'];
$ip = $_SERVER['HTTP_CLIENT_IP'];
$formcontent = "Naam: $name \n
Bericht: $message \n
\n
IP adres van de luisteraar: $ip";
$recipient = "[email protected]";
$subject = "Verzoekje Radio Regenboog";
$mailheader = "From: $recipient \r\n";
mail($recipient, $subject, $formcontent, $mailheader, $ip) or die("Error!");
echo "Thank You!";
?>
$message = $_POST['message'];
$ip = $_SERVER['HTTP_CLIENT_IP'];
$formcontent = "Naam: $name \n
Bericht: $message \n
\n
IP adres van de luisteraar: $ip";
$recipient = "[email protected]";
$subject = "Verzoekje Radio Regenboog";
$mailheader = "From: $recipient \r\n";
mail($recipient, $subject, $formcontent, $mailheader, $ip) or die("Error!");
echo "Thank You!";
?>
<form action="/mail.php" method="POST">
naar:
<form action="" method="POST">
En mijn mail.php dan? Er is dan geen verwijzing meer, werkt die dan nog wel ?
Als het formulier en de afhandeling gescheiden zijn, in twee bestanden, dan moet je die action wel invullen.
Alvast bedankt
Code (php)
In de afhandelingen kan je de meldingen die je krijgt (mail niet verzonden, mail wel verzonden, gegevens niet goed ingevuld) opslaan in een vaste variabele, welke je in je formulier kan echo'en. Let hierbij wel op dat je isset() gebruikt om te kijken of de variabele bestaat.
Dus geen echo's meer in je losse mail.php
Gewijzigd op 18/10/2015 13:27:24 door - Ariën -
Toevoeging op 18/10/2015 20:00:58:
"; $subject = "Verzoekje Radio Regenboog"; $mailheader = "From: $recipient \r\n"; mail($recipient, $subject, $formcontent, $mailheader, $ip) or die("Error!"); echo "Thank You!"; } else { ?-->
???????????
Een nieuwe, die je voor het gemak $melding kan noemen.
De volgende code ingevoegd --->
<!--?php
$action=$_REQUEST['action'];
if ($action=="") /* display the contact form */
{
?---->
<form action="" enctype="multipart/form-data" method="POST">
<p>
<strong>Naam:</strong></p>
<p>
<input name="name" size="30" type="text" value="" /></p>
<p>
<strong><span style="line-height: 1.6;">Bericht:</span></strong></p>
<p>
<textarea cols="50" name="message" rows="14"></textarea></p>
<p>
<input type="submit" value="Verstuur" /> </p>
</form>
<!--?php
}
else /* send the submitted data */
{
$name=$_POST['name'];
$message=$_POST['message'];
if (($name=="")||($email=="")||($message==""))
else{
$from="From: $name";
$subject="Verzoekje Radio Regenboog";
mail("[email protected]", $subject, $message, $from);
echo "U verzoekje is verstuurt en wordt zo snel mogelijk bij de live dj gedraait";
}
}
-->
Nu krijg ik onder het form steeds dit te zien --->
", $subject, $message, $from); echo "Bedankt voor u bericht!"; } } -->
Ik vrees dat je PHP-code niet zomaar in Joomla werkend kan invoegen.
Dankje
Probeer je code eens met mijn opbouw-code te combineren. En sla deze op als bijv. verzoek.php
Alleen nu nog de text opmaak van de velden....
Zwarte text op een donkergrijze achtergrond is niet echt leesbaar?????
Andere kleur kiezen met CSS.
Nu nog de IP van de persoon die het form heeft ingevuld
maar dat was ook eenvoudig te Googlen ;-)
Hoe maak ik het zo dat ik de email weghaal en dat het bericht verstuurt en ontvangen wordt als en op ons mial adres?
en dan de velden niet verplicht zijn.
--->
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
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
<?php
$action=$_REQUEST['action'];
if ($action=="") /* display the contact form */
{
?>
<form action="" method="POST" enctype="multipart/form-data">
<input type="hidden" name="action" value="submit">
Your name:<br>
<input name="name" type="text" value="" size="30"/><br>
Your email:<br>
<input name="email" type="text" value="" size="30"/><br>
Your message:<br>
<textarea name="message" rows="7" cols="30"></textarea><br>
<input type="submit" value="Send email"/>
</form>
<?php
}
else /* send the submitted data */
{
$name=$_REQUEST['name'];
$email=$_REQUEST['email'];
$message=$_REQUEST['message'];
if (($name=="")||($email=="")||($message==""))
{
echo "All fields are required, please fill <a href=\"\">the form</a> again.";
}
else{
$from="From: $name<$email>\r\nReturn-path: $email";
$subject="Message sent using your contact form";
mail("[email protected]", $subject, $message, $from);
echo "Email sent!";
}
}
?>
$action=$_REQUEST['action'];
if ($action=="") /* display the contact form */
{
?>
<form action="" method="POST" enctype="multipart/form-data">
<input type="hidden" name="action" value="submit">
Your name:<br>
<input name="name" type="text" value="" size="30"/><br>
Your email:<br>
<input name="email" type="text" value="" size="30"/><br>
Your message:<br>
<textarea name="message" rows="7" cols="30"></textarea><br>
<input type="submit" value="Send email"/>
</form>
<?php
}
else /* send the submitted data */
{
$name=$_REQUEST['name'];
$email=$_REQUEST['email'];
$message=$_REQUEST['message'];
if (($name=="")||($email=="")||($message==""))
{
echo "All fields are required, please fill <a href=\"\">the form</a> again.";
}
else{
$from="From: $name<$email>\r\nReturn-path: $email";
$subject="Message sent using your contact form";
mail("[email protected]", $subject, $message, $from);
echo "Email sent!";
}
}
?>
- Aar -:
Gelieve in het vervolg bij code de [code][/code]-tags gebruiken.
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Gewijzigd op 19/10/2015 13:25:40 door - Ariën -
opbouw geplaatst in het forum. Waarom pas je die niet toe?
$_REQUEST variabelen zijn namelijk onbetrouwbaar.
En waarom zou je geen invoer-validatie willen?
Ik heb een mooie $_REQUEST variabelen zijn namelijk onbetrouwbaar.
En waarom zou je geen invoer-validatie willen?
Gewijzigd op 19/10/2015 13:26:36 door - Ariën -
Waarom regel 20, 21 en 22?
Waarom om je echo "" en niet '? Voorkomt ook dat je in je href moet escapen.
Is het niet netter om eerst de controles te doen en daarna het formulier te tonen? Je kunt dan de eventuele ingevulde waardes / foutmeldingen op de betreffende velden laten zien.
Volgens mij missen er nog wel wat headers bij je mail (regel 30)
Invoer controle kan ook nooit kwaad. Je krijgt dan dus de volgende drietrapsraket:
A: toon formulier, eventueel met terugkoppeling van fouten; action van formulier wijst naar B
B: verwerk formulier, te beginnen met invoercontrole
invoer niet OK: terug naar A met indicatie dat er iets fout is (geef dit bijvoorbeeld mee via ?errors=1 ofzo, de ingevulde data zul je tijdelijk in de sessie moeten opslaan ofzo, omdat je terug redirect naar A)
invoer OK: voer bewerkingen uit, zoals het sturen van e-mail etc., stuur door naar C
C: toon bedank-pagina
Op deze manier deel je je "contactformulier" (wat het in zekere zin is) op in logische delen die je los van elkaar kunt behandelen, wat het overzicht ten goede komt (in tegenstelling tot zo'n if-elseif-else brei).
Toevoeging op 19/10/2015 19:32:17:
Ik heb het volgende als test gedaan maar het form wordt dat niet getoond,
--->
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
if($_SERVER['REQUEST_METHOD']=="POST") {
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$formcontent="From: $name \n Message: $message";
$recipient = "[email protected]";
$subject = "Contact Form";
$mailheader = "From: $email \r\n";
mail($recipient, $subject, $formcontent, $mailheader) or die("Error!");
echo "Thank You!";
?>
<form action="mail.php" method="POST">
<p>Name</p> <input type="text" name="name">
<p>Email</p> <input type="text" name="email">
<p>Message</p><textarea name="message" rows="6" cols="25"></textarea><br />
<input type="submit" value="Send"><input type="reset" value="Clear">
</form>
<?php
}
?>
if($_SERVER['REQUEST_METHOD']=="POST") {
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$formcontent="From: $name \n Message: $message";
$recipient = "[email protected]";
$subject = "Contact Form";
$mailheader = "From: $email \r\n";
mail($recipient, $subject, $formcontent, $mailheader) or die("Error!");
echo "Thank You!";
?>
<form action="mail.php" method="POST">
<p>Name</p> <input type="text" name="name">
<p>Email</p> <input type="text" name="email">
<p>Message</p><textarea name="message" rows="6" cols="25"></textarea><br />
<input type="submit" value="Send"><input type="reset" value="Clear">
</form>
<?php
}
?>
Toevoeging op 19/10/2015 19:32:52:
Ik heb de 2 die ik eerst apart had samen gevoegd.
Toevoeging op 19/10/2015 19:58:17:
Als ik de opmaak die hier op form staat aangegeven gebruik,
Dan is het form niet meer zichtbaar pfffffff HELP!!!!!
Toevoeging op 19/10/2015 20:03:11:
DIT WERKT TOT ZO VER, alles doet het goed alleen krijg ik de mailtjes in de spam.
Verder krijg ik eerst het vorm en daarna alleen de ECHO te zien.
Ik zou graag uit het volgende script, de mail eruit hebben die hoeft niet worden ingevuld.
Hij moet verstuurt en ontvangen worden onder het zelfde adres, niet in de spam.
En de ECHO onder het form met een nieuw leeg form, of eerst de ECHO na het versturen en na een aantal tellen het form weer, en ik zou hier graag het ip-adres van de invuller in willen hebben.
--->
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
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
<?php
$action=$_REQUEST['action'];
if ($action=="") /* display the contact form */
{
?>
<form action="" method="POST" enctype="multipart/form-data">
<input type="hidden" name="action" value="submit">
Your name:<br>
<input name="name" type="text" value="" size="30"/><br>
Your email:<br>
<input name="email" type="text" value="" size="30"/><br>
Your message:<br>
<textarea name="message" rows="7" cols="30"></textarea><br>
<input type="submit" value="Send email"/>
</form>
<?php
}
else /* send the submitted data */
{
$name=$_REQUEST['name'];
$email=$_REQUEST['email'];
$message=$_REQUEST['message'];
if (($name=="")||($email=="")||($message==""))
{
echo "All fields are required, please fill <a href=\"\">the form</a> again.";
}
else{
$from="From: $name<$email>\r\nReturn-path: $email";
$subject="Message sent using your contact form";
mail("[email protected]", $subject, $message, $from);
echo "Email sent!";
}
}
?>
$action=$_REQUEST['action'];
if ($action=="") /* display the contact form */
{
?>
<form action="" method="POST" enctype="multipart/form-data">
<input type="hidden" name="action" value="submit">
Your name:<br>
<input name="name" type="text" value="" size="30"/><br>
Your email:<br>
<input name="email" type="text" value="" size="30"/><br>
Your message:<br>
<textarea name="message" rows="7" cols="30"></textarea><br>
<input type="submit" value="Send email"/>
</form>
<?php
}
else /* send the submitted data */
{
$name=$_REQUEST['name'];
$email=$_REQUEST['email'];
$message=$_REQUEST['message'];
if (($name=="")||($email=="")||($message==""))
{
echo "All fields are required, please fill <a href=\"\">the form</a> again.";
}
else{
$from="From: $name<$email>\r\nReturn-path: $email";
$subject="Message sent using your contact form";
mail("[email protected]", $subject, $message, $from);
echo "Email sent!";
}
}
?>
Toevoeging op 19/10/2015 20:04:41:
Graag een compleet script terig, het blijkt wel dat ik hier een leek in ben en ben al daaaaaaaagen lang bezig pffffff
- Aar -:
Gelieve in het vervolg bij code de [code][/code]-tags gebruiken.
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Gewijzigd op 19/10/2015 20:54:01 door - Ariën -