Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[PHP] Twee div's in if..else statement probleem

Pagina: 1
Acties:
  • 290 views

  • djelNL
  • Registratie: Juni 2006
  • Laatst online: 12-11 12:17
Goedemiddag,

Ik ben bezig met een klein contactformulier. Deze is werkend. maar ik wil zowel alle foutmeldingen als het verzend-berichtje op de pagina in een aparte div zetten. Voor het verzend-bericht lukt het wel, maar om alle foutmeldingen in een div te zetten niet. Ik heb het met al een extra if statement geprobeerd, maar dat krijg ik de andere div niet te zien. Kan iemand mij op weg helpen.


Hieronder mijn PHP script zoals hij nu is
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
 <?php
                        $msg = "";
                        
                        if(isset($_POST['verstuur'])) {
                            $naam = $_POST['naam'];
                            $email = $_POST['email'];
                            $onderwerp = $_POST['onderwerp'];
                            $bericht = $_POST['bericht'];
                            //Foutmeldingen
                            if(trim($naam == "")) {
                                echo "Je hebt geen naam ingevuld." . "<br />";
                            } if(trim($email == "")) {
                                echo "Je hebt geen e-mailadres ingevuld." . "<br />";
                            } else if(!preg_match("/^[A-Z0-9._%-]+@[A-Z0-9][A-Z0-9.-]{0,61}[A-Z0-9]\.[A-Z]{2,6}$/i", $email)){
                                echo $msg .= "Je hebt geen correct e-mailadres ingevuld." . "<br />";
                            } if(trim($onderwerp == "")) {
                                echo "Je hebt geen onderwerp ingevuld." . "<br />";
                            } if(trim($bericht == "")) {
                                echo "Je hebt geen bericht ingevuld." . "<br />";
                            } else {
                                //Formulier verzenden
                                $mail_naar = "jelmar@domeinnaam.nl";
                                $onderwerp_mail = "Je hebt een nieuw bericht ontvangen van " . $naam;
                                $headers = "From:" . $naam . " " . $email;  
                                $header .= "MIME-Version: 1.0\r\n";
                                $header .= "Content-type: text/html; charset=iso-8859-1\r\n";
                                $header .= "X-Priority: 1\r\n"; 
                                $header .= "X-MSMail-Priority: High\r\n";
                                $header .= "X-Mailer: PHP/".phpversion(); 
                                mail($mail_naar, $onderwerp_mail, $bericht, $headers);
                                echo "<div id=\"form-succes\">";
                                echo "<img class=\"error_img\" src=\"images/goed-icon.png\" alt=\"\" height=\"20px\" width=\"20px\" />";
                              echo "<div id=\"error_text\">";
                                echo "Je bericht is verstuurd." . "<br />";
                                echo "Je krijgt zo spedig mogelijk bericht terug.";
                                echo "</div>";
                                echo "</div>";
                            }
                        }
                        
        ?> 



Alvast bedankt.

mvg

Verwijderd

Maak gebruik van een email class. Echt.
Nu kan iemand je formulier misbruiken voor spam door speciale waarden in het naam en/of email veld te zetten.

Als antwoord op je vraag: vervang dit soort regels
PHP:
1
echo "Je hebt geen naam ingevuld." . "<br />";

door
PHP:
1
$message = "Je hebt geen naam ingevuld.";

Haal het gedeelte dat de div ouput genereert buiten de haakjes (van het if-blok) en zet het erna:
PHP:
1
2
3
echo '<div id="error_text">';
echo htmlentities($message);
echo '</div>';

Maar volgens mij ben je nog niet klaar om dit soort zaken op het internet te lanceren.

  • djelNL
  • Registratie: Juni 2006
  • Laatst online: 12-11 12:17
Ok, bedankt voor de tip.
Ga ermee aan de slag.

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 20-11 11:59

NMe

Quia Ego Sic Dico.

Het is sowieso niet de bedoeling dat je hier even je code dumpt, zegt wat je wil en vervolgens verwacht dat wij het wel even voor je oplossen. We zijn hier geen persoonlijke debugservice. Zie De Quickstart.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Dit topic is gesloten.