Bericht op een andere plek laten zien

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Mohamed nvt

Mohamed nvt

27/09/2022 23:34:13
Quote Anchor link
Hoewel onderstaand webformulier prima, wil ik nog het eea gebruikersvriendelijker maken dan nu het geval is.
Vanaf een YT-video heb ik onderstaande code bij de regels 54, 80 en 120 vandaan gehaald.
Het zorgt voor dat of het formulier wordt laten zien of het succesbericht, nadat het formulier succesvol is verzonden.
Het succesbericht wordt nu bovenaan weergegeven en ik wil het in het midden van het pagina.
Ik zit eraan te denken om het succesbericht aan een variabel te koppelen, maar weet niet qua logica waar het variabel te plaatsen.
Iemand een idee?


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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
<?php

// define variables and set to empty values
$errors = array();
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
  if (empty($_POST["voornaam"])) {
    $errors['voornaam'] = "Graag uw voornaam invullen";
  }
else {
    $voornaam = test_input($_POST["voornaam"]);
    // check if name only contains letters and whitespace
    if (!preg_match("/^[a-zA-Z-' ]*$/",$voornaam)) {
      $errors['voornaam'] = "Uw voornaam mag alleen letters en spaties bevatten";
    }
  }


  if (empty($_POST["achternaam"])) {
    $errors['achternaam'] = "Graag uw achternaam invullen";
  }
else {
    $achternaam = test_input($_POST["achternaam"]);
    // check if name only contains letters and whitespace
    if (!preg_match("/^[a-zA-Z-' ]*$/",$achternaam)) {
      $errors['achternaam'] = "Uw achternaam mag alleen letters en spaties bevatten";
    }
  }


  if (empty($_POST["mailadres"])) {
    $errors['mailadres'] = "Graag uw mailadres invullen";
  }
else {
    $email = test_input($_POST["mailadres"]);
    // check if e-mail address is well-formed
    if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
      $errors['mailadres'] = "Het formaat van het ingevoerde mailadres is niet correct";
    }
  }


  $uwvraag = test_input($_POST["uwvraag"]) ;
 
  if (count($errors) == 0) {
    //mail versturen
    
    $to = "[email protected]";
    $subject = "Mail afkomstig uit de website";
    $message= "";
    $message.=  "Voornaam: " .$voornaam. "\r\n";
    $message.= "Achternaam: " .$achternaam. "\r\n";
    $message.= "Het mailadres: " .$email. "\r\n";
    $message.= "Uw vraag: " . $uwvraag. "\r\n";
    $headers ="From: [email protected] \r\n";
    $headers.="MIME-Version: 1.0" . "\r\n";
    $headers.="Content-type:text/html;charset=UTF-8" . "\r\n";
    
    
    if (mail($to,$subject,$message,$headers)) {
      $hide = 1;
      echo "Bedankt voor uw mail. Er wordt contact met u opgenomen!";
    }
else {
      echo "Mail niet verstuurd!";
    }
    
  }

}
function
test_input($data) {
  $data = trim($data);
  $data = stripslashes($data);
  $data = htmlspecialchars($data);
  return $data;
}




$page = "contact";
include "Inc/header.php";
?>

<div class="main">
<div class="formulier">


<?php
  if (!isset($hide)) {   ?>


<h2>Contact formulier</h2><br/><br/>
<span>* verplichte velden</span><br/><br/>
<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="POST">
        <label for="Voornaam">Voornaam</label><br />
        <input type="text" id="voornaam" name="voornaam" value="<?php if (isset($_POST['voornaam']))echo htmlspecialchars($_POST['voornaam'], ENT_QUOTES); ?>" required><span>*</span><br /><br />
        <span>
          <?php
            if (isset($errors['voornaam'])) {
              echo $errors['voornaam'];
            }

          ?>

        </span>
        <label for="achternaam">Achternaam</label><br />
        <input type="text" id="achternaam" name="achternaam" value="<?php if (isset($_POST['achternaam']))echo htmlspecialchars($_POST['achternaam'], ENT_QUOTES); ?>" required><span>*</span><br /><br />
        <span>
          <?php
          if (isset($errors['achternaam'])) {
            echo $errors['achternaam'];
          }

          ?>

        </span>
        <label for="Mailadres">Mailadres</label><br />
        <input type="email" id="mailadres" name="mailadres" value="<?php if (isset($_POST['mailadres']))echo htmlspecialchars($_POST['mailadres'], ENT_QUOTES); ?>" required><span>*</span><br /><br />
        </br>
        <span>
          <?php
          if (isset($errors['mailadres'])) {
            echo $errors['mailadres'];
          }

          ?>

        </span>
        <label for="uwvraag">Uw vraag:</label></br>
        <textarea id="uwvraag" name="uwvraag" rows="4" cols="50"></textarea></br></br>
        <input type="submit" value="Verzenden"> <input type="reset" value="Reset">
    </form>
  </div>

  <?php
    }
  ?>

  </div>
  <?php
include "Inc/footer.php";
?>
 
PHP hulp

PHP hulp

19/04/2024 01:42:58
 
- Ariën  -
Beheerder

- Ariën -

27/09/2022 23:40:34
Quote Anchor link
je kan het succesbericht uit je mailfunctie-statement toch in een variabele plaatsen, en die weer ergens in je layout plaatsen? Dat doe je ook met je errors.

Ik zou er wel voor zorgen dat je, als het met succes verstuurd is, dat het formulier niet verschijnt.
Gewijzigd op 27/09/2022 23:40:53 door - Ariën -
 
Mohamed nvt

Mohamed nvt

28/09/2022 00:04:56
Quote Anchor link
- Ariën - op 27/09/2022 23:40:34:
je kan het succesbericht uit je mailfunctie-statement toch in een variabele plaatsen, en die weer ergens in je layout plaatsen? Dat doe je ook met je errors.

Ik zou er wel voor zorgen dat je, als het met succes verstuurd is, dat het formulier niet verschijnt.


Dat is precies ook mijn gedachten en waar plaats ik dat variabel van het succesbericht?
Zojuist heb ik het onderstaande code geprobeerd en het wordt niet weergegeven nadat het formulier succesvol is verzonden.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$bericht= "Bedankt voor uw mail. Er wordt contact met u opgenomen!";

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
  echo $bericht;
  if (!isset($hide)) {   ?>
 
- Ariën  -
Beheerder

- Ariën -

28/09/2022 01:18:53
Quote Anchor link
Wat jij een mooie plek vindt in je layout.
 
Mohamed nvt

Mohamed nvt

28/09/2022 10:21:56
Quote Anchor link
- Ariën - op 28/09/2022 01:18:53:
Wat jij een mooie plek vindt in je layout.

In het midden van het pagina bijv....
 
- Ariën  -
Beheerder

- Ariën -

28/09/2022 10:53:49
Quote Anchor link
Probeer het.
Ikzelf raad aan de meldingen dat iets gelukt is zonder formulier plaatsen.

Lukt het niet? Kopieer je contact-formulier project en kleed het even uit voor beter overzicht.
 
Mohamed nvt

Mohamed nvt

28/09/2022 13:25:47
Quote Anchor link
- Ariën - op 28/09/2022 10:53:49:
Probeer het.
Ikzelf raad aan de meldingen dat iets gelukt is zonder formulier plaatsen.

Lukt het niet? Kopieer je contact-formulier project en kleed het even uit voor beter overzicht.

Nou ik dacht, omdat ik op regel 81 controleer of het variabel $hide geen waarde bevat, dan laat ik het formulier zie en op regel 121 de inhoud van het $bericht variabel te laten zien, want dan is het formulier verzonden.
Het resultaat: de inhoud van het formulier wordt verzonden, maar daarna verschijnt geen bericht!
Hoe nu verder?
 
- Ariën  -
Beheerder

- Ariën -

28/09/2022 15:39:23
Quote Anchor link
Laat eens een versimpelde testcase zien in code en werking. (+/- 20 regels)
Gewijzigd op 28/09/2022 15:39:37 door - Ariën -
 
Mohamed nvt

Mohamed nvt

28/09/2022 20:24:53
Quote Anchor link
- Ariën - op 28/09/2022 15:39:23:
Laat eens een versimpelde testcase zien in code en werking. (+/- 20 regels)


Haha! Nou zo complex is het niet hoor, met name vanaf regel 121 tot 122
Zie hieronder wat ik heb geprobeerd!
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
<?php

// define variables and set to empty values
$errors = array();
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
  if (empty($_POST["voornaam"])) {
    $errors['voornaam'] = "Graag uw voornaam invullen";
  }
else {
    $voornaam = test_input($_POST["voornaam"]);
    // check if name only contains letters and whitespace
    if (!preg_match("/^[a-zA-Z-' ]*$/",$voornaam)) {
      $errors['voornaam'] = "Uw voornaam mag alleen letters en spaties bevatten";
    }
  }


  if (empty($_POST["achternaam"])) {
    $errors['achternaam'] = "Graag uw achternaam invullen";
  }
else {
    $achternaam = test_input($_POST["achternaam"]);
    // check if name only contains letters and whitespace
    if (!preg_match("/^[a-zA-Z-' ]*$/",$achternaam)) {
      $errors['achternaam'] = "Uw achternaam mag alleen letters en spaties bevatten";
    }
  }


  if (empty($_POST["mailadres"])) {
    $errors['mailadres'] = "Graag uw mailadres invullen";
  }
else {
    $email = test_input($_POST["mailadres"]);
    // check if e-mail address is well-formed
    if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
      $errors['mailadres'] = "Het formaat van het ingevoerde mailadres is niet correct";
    }
  }


  $uwvraag = test_input($_POST["uwvraag"]) ;
 
  if (count($errors) == 0) {
    //mail versturen
    
    $to = "[email protected]";
    $subject = "Mail afkomstig uit de website";
    $message= "";
    $message.=  "Voornaam: " .$voornaam. "\r\n";
    $message.= "Achternaam: " .$achternaam. "\r\n";
    $message.= "Het mailadres: " .$email. "\r\n";
    $message.= "Uw vraag: " . $uwvraag. "\r\n";
    $headers ="From: [email protected] \r\n";
    $headers.="MIME-Version: 1.0" . "\r\n";
    $headers.="Content-type:text/html;charset=UTF-8" . "\r\n";
    
    
    if (mail($to,$subject,$message,$headers)) {
      $hide = 1;
      $bericht= "Bedankt voor uw mail. Er wordt contact met u opgenomen!";
    }
else {
      echo "Mail niet verstuurd!";
    }
    
  }

}
function
test_input($data) {
  $data = trim($data);
  $data = stripslashes($data);
  $data = htmlspecialchars($data);
  return $data;
}




$page = "contact";
include "Inc/header.php";
?>

<div class="main">
<div class="formulier">


<?php
  
  if (!isset($hide)) {   ?>


<h2>Contact formulier</h2><br/><br/>
<span>* verplichte velden</span><br/><br/>
<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="POST">
        <label for="Voornaam">Voornaam</label><br />
        <input type="text" id="voornaam" name="voornaam" value="<?php if (isset($_POST['voornaam']))echo htmlspecialchars($_POST['voornaam'], ENT_QUOTES); ?>" required><span>*</span><br /><br />
        <span>
          <?php
            if (isset($errors['voornaam'])) {
              echo $errors['voornaam'];
            }

          ?>

        </span>
        <label for="achternaam">Achternaam</label><br />
        <input type="text" id="achternaam" name="achternaam" value="<?php if (isset($_POST['achternaam']))echo htmlspecialchars($_POST['achternaam'], ENT_QUOTES); ?>" required><span>*</span><br /><br />
        <span>
          <?php
          if (isset($errors['achternaam'])) {
            echo $errors['achternaam'];
          }

          ?>

        </span>
        <label for="Mailadres">Mailadres</label><br />
        <input type="email" id="mailadres" name="mailadres" value="<?php if (isset($_POST['mailadres']))echo htmlspecialchars($_POST['mailadres'], ENT_QUOTES); ?>" required><span>*</span><br /><br />
        </br>
        <span>
          <?php
          if (isset($errors['mailadres'])) {
            echo $errors['mailadres'];
          }

          ?>

        </span>
        <label for="uwvraag">Uw vraag:</label></br>
        <textarea id="uwvraag" name="uwvraag" rows="4" cols="50" value="<?php if (isset($_POST['uwvraag']))echo htmlspecialchars($_POST['uwvraag'], ENT_QUOTES); ?>"></textarea></br></br>
        <input type="submit" value="Verzenden"> <input type="reset" value="Reset">
    </form>
  </div>

  <?php
    } else {
      echo $bericht;
    }

  ?>

  </div>
  <?php
include "Inc/footer.php";
?>
 
- Ariën  -
Beheerder

- Ariën -

28/09/2022 21:27:32
Quote Anchor link
Dat is geen versimpelde testcase... :-/

Waarom sla je de succes-melding wel op in een variabele, en niet de error van de mail?
 
Mohamed nvt

Mohamed nvt

29/09/2022 20:44:06
Quote Anchor link
- Ariën - op 28/09/2022 21:27:32:
Dat is geen versimpelde testcase... :-/

Geen idee wat je hiermee bedoelt.
- Ariën - op 28/09/2022 21:27:32:

Waarom sla je de succes-melding wel op in een variabele, en niet de error van de mail?

Jij hebt gelijk dat het beter is om de error van de mail ook in een variabel te zetten, maar dat is voor mij nu geen prio. Pas als ik dit probleem heb opgelost, pas ik dat ook aan.
 
- Ariën  -
Beheerder

- Ariën -

29/09/2022 20:56:23
Quote Anchor link
Heb je al met var_dump() gekeken naar de inhoud van die variabele?

Met een simpele testcase bedoel ik een uitgekleed script tot +/- 30 regels met relevante code.
 
Mohamed nvt

Mohamed nvt

29/09/2022 21:01:17
Quote Anchor link
Overigens, waar ik nu tegen aanloop is geen probleem denk ik, maar works as design zeg ik maar.
Nadat validatie gelukt is, wordt het formulier verzonden en er verschijnt netjes een bericht dat het is verzonden.
Echter, wat ik wil is dat het bericht voorzien is van een header met menu en footer, maar nu verschijnt het bericht linksboven aan het pagina.
 
- Ariën  -
Beheerder

- Ariën -

29/09/2022 21:22:48
Quote Anchor link
Bekijk je HTML-code ook eens in je browser. Als deze niet klopt heb je ook kans dat het verkeerd rendert, en dat tekst bijv. bovenaan staat.

Laat anders eens een zichtbaar voorbeeld zien.
Gewijzigd op 29/09/2022 21:24:25 door - Ariën -
 
Mohamed nvt

Mohamed nvt

01/10/2022 14:39:41
Quote Anchor link
- Ariën - op 29/09/2022 21:22:48:
Bekijk je HTML-code ook eens in je browser. Als deze niet klopt heb je ook kans dat het verkeerd rendert, en dat tekst bijv. bovenaan staat.

Laat anders eens een zichtbaar voorbeeld zien.


Een zichtbaar voorbeeld is: http://jocke-overwater.nl/contact.php
Het probleem heb ik gelost. Ik zag de tekst niet eerder, omdat de achtergrond zwart is. Haha! Bedankt voor het meedenken.
 



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.