Contact Form "Succes messenge" op dezelfde pagina

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Harry Peters

Harry Peters

17/10/2015 20:29:42
Quote Anchor link
Hallo allemaal,

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" />&nbsp;</form>



en hier onder de mail.php >

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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!";
?>
 
PHP hulp

PHP hulp

08/11/2024 17:59:07
 

17/10/2015 21:12:51
Quote Anchor link
Van dit:
<form action="/mail.php" method="POST">

naar:
<form action="" method="POST">
 
Harry Peters

Harry Peters

18/10/2015 12:58:47
Quote Anchor link
En mijn mail.php dan? Er is dan geen verwijzing meer, werkt die dan nog wel ?
 
- Ariën  -
Beheerder

- Ariën -

18/10/2015 13:07:01
Quote Anchor link
Als de hele afhandeling in één bestand bestaat, dan kan je die action gewoon leeg laten.
Als het formulier en de afhandeling gescheiden zijn, in twee bestanden, dan moet je die action wel invullen.
 
Harry Peters

Harry Peters

18/10/2015 13:09:57
Quote Anchor link
Kun je mij helpen hoe ik dat in een bestand maak? Ik wil graag of een melding onder het form of na een paar seconden het form weer, en dat die dag leeg is.

Alvast bedankt
 
- Ariën  -
Beheerder

- Ariën -

18/10/2015 13:16:47
Quote Anchor link
Dan moet je alles samenvoegen in één bestand.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
if($_SERVER['REQUEST_METHOD']=="POST") {
    // hier je afhandeling
} else {
?>

Hier je formulier
<?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 -
 
Harry Peters

Harry Peters

18/10/2015 19:54:27
Quote Anchor link
Welke vaste variabelen bedoel je ?

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 { ?-->



???????????
 
- Ariën  -
Beheerder

- Ariën -

18/10/2015 20:49:41
Quote Anchor link
Een nieuwe, die je voor het gemak $melding kan noemen.
 
Harry Peters

Harry Peters

18/10/2015 21:24:42
Quote Anchor link
Ik heb in joomla 3 een nieuw article aangemaakt.
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" />&nbsp;</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";
}
}
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
}
?>
-->

Nu krijg ik onder het form steeds dit te zien --->

", $subject, $message, $from); echo "Bedankt voor u bericht!"; } } -->
 
- Ariën  -
Beheerder

- Ariën -

18/10/2015 21:31:16
Quote Anchor link
Ik vrees dat je PHP-code niet zomaar in Joomla werkend kan invoegen.
 
Harry Peters

Harry Peters

18/10/2015 21:32:36
Quote Anchor link
Ik ga er even na kijken.
Dankje
 
- Ariën  -
Beheerder

- Ariën -

18/10/2015 21:35:32
Quote Anchor link
Probeer je code eens met mijn opbouw-code te combineren. En sla deze op als bijv. verzoek.php
 
Harry Peters

Harry Peters

18/10/2015 22:26:50
Quote Anchor link
Ik heb het voor elkaar via een wrapper in joomla de het opgeslagen php bestand aanroepen werkt perfect.
Alleen nu nog de text opmaak van de velden....
Zwarte text op een donkergrijze achtergrond is niet echt leesbaar?????
 
- Ariën  -
Beheerder

- Ariën -

18/10/2015 22:28:48
Quote Anchor link
Andere kleur kiezen met CSS.
 
Harry Peters

Harry Peters

18/10/2015 22:33:21
Quote Anchor link
Nu nog de IP van de persoon die het form heeft ingevuld
 
- Ariën  -
Beheerder

- Ariën -

18/10/2015 22:36:36
Quote Anchor link
$_SERVER['REMOTE_ADDR']

maar dat was ook eenvoudig te Googlen ;-)
 
Harry Peters

Harry Peters

19/10/2015 12:55:08
Quote Anchor link
Ik heb nu het volgende script werkend maar nu rest nog een vraag?
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)
PHP script in nieuw venster Selecteer het PHP script
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
<?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!";
        }
    }
  
?>

- Aar -:
Gelieve in het vervolg bij code de [code][/code]-tags gebruiken.
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Gewijzigd op 19/10/2015 13:25:40 door - Ariën -
 
- Ariën  -
Beheerder

- Ariën -

19/10/2015 13:25:20
Quote Anchor link
Ik heb een mooie opbouw geplaatst in het forum. Waarom pas je die niet toe?
$_REQUEST variabelen zijn namelijk onbetrouwbaar.

En waarom zou je geen invoer-validatie willen?
Gewijzigd op 19/10/2015 13:26:36 door - Ariën -
 
Obelix Idefix

Obelix Idefix

19/10/2015 14:26:49
Quote Anchor link
Waarom <input type="hidden" name="action" value="submit"> ?

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)
 
Thomas van den Heuvel

Thomas van den Heuvel

19/10/2015 15:00:40
Quote Anchor link
Mogelijk toevoeging: stuur iemand door nadat het e-mailbericht is verzonden en toon het succes-bericht op een aparte pagina. Anders kan iemand (eindeloos) de succes-pagina verversen en de ontvanger spammen met zijn/haar verzoekjes.

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).
 
Harry Peters

Harry Peters

19/10/2015 19:29:37
Quote Anchor link
Kan ik iemand mij gewoon een simpel voorbeeld geven van een compleet script met alleen naam en bericht? de afzender moet hetzelfde zijn als waar het naar toegezonden wordt en het moet niet in mijn spam terecht komen.

Toevoeging op 19/10/2015 19:32:17:

Ik heb het volgende als test gedaan maar het form wordt dat niet getoond,
--->

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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
}
?>


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)
PHP script in nieuw venster Selecteer het PHP script
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
<?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!";
        }
    }
  
?>


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!
Gewijzigd op 19/10/2015 20:54:01 door - Ariën -
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.