<?php { ?> hier html <?php } ?>

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Raymond de graaf

raymond de graaf

29/02/2012 18:10:02
Quote Anchor link
hallo

wederom een vraag wat niet in me boek word aangehaald

waarom doe je dit?

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


ini_set("SMTP","smtp.live.com");
ini_set("smtp_port","25");
ini_set("sendmail_from","[email protected]");



if ($_POST["verzendbutton"] != "verzenden" || !$_POST["naam"] || !$_POST["mailadres"] || !$_POST["reactie"]) // als het formulier leeg is of 1 van de waarden niet is ingevuld
{
?>

<form action="mailform2.php" method="post" />
Naam: <input type="text" name="naam" /><br />
Email: <input type="text" name="mailadres" /><br />
Reactie: <textarea cols="30" rows="4" name="reactie"></textarea><br />
<input type="submit" value="verzenden" name="verzendbutton" />
</form>
<?php
}
else // in alle andere gevallen
{
$boodschap = "Naam: " . $_POST["naam"] . "\n Commentaar: " . $_POST["reactie"];

mail($_POST["mailadres"], "Uw reactie van de website", $boodschap); // stuur de mail met de info:
    echo "bedankt " . $naam . ", leuk dat je mee wilde doen!";
}

?>

</body>
</html>


dan bedoel ik
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
{
?>

<form></form>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
<?php
}


is dit zodat je dan niet hoeft te escapen?

tnks
 
PHP hulp

PHP hulp

21/11/2024 22:54:30
 
Mathias B

Mathias B

29/02/2012 18:12:06
Quote Anchor link
PHP code kan gelijk waar staan tussen de html en dient enkel afgesloten te worden.
Anders zou je dit allemaal moet echoën.
 
Wouter J

Wouter J

29/02/2012 18:12:50
Quote Anchor link
Je moet talen altijd uit elkaar houden. Als je dus wat HTML wilt laten zien dan ga je dat niet echoën in PHP, maar sluit je PHP even en daarna open je het weer. Dat is wat je daar doen.

Je kan dan beter gebruik maken van de alternative syntax.
 
- SanThe -

- SanThe -

29/02/2012 18:31:35
Quote Anchor link
Kijken of een formulier is gepost kan je beter met dit doen:
if($_SERVER['REQUEST_METHOD'] == 'POST')

Jouw if() is niet best.
if (... || !$_POST["naam"] || ...)
Met !$_POST["naam"] kijk je eigenlijk of $_POST["naam"] true of false is en dat slaat nergens op. Geldt uiteraard ook voor de anderen.

Stop nooit zomaar ongecontroleerde input van de gebruiker in een database of in een email. Er kunnen hackers mee aan de slag. Je gebruikt $naam onderin je script. Deze zal niet bestaan want die is nergens aangemaakt.

Gebruik goede headers in je email.
http://phpwiki.santhe.nl/index.php/De_juiste_mailheaders
Gewijzigd op 29/02/2012 18:35:49 door - SanThe -
 
Raymond de graaf

raymond de graaf

29/02/2012 18:33:38
Quote Anchor link
Wouter J op 29/02/2012 18:12:50:
Je moet talen altijd uit elkaar houden. Als je dus wat HTML wilt laten zien dan ga je dat niet echoën in PHP, maar sluit je PHP even en daarna open je het weer. Dat is wat je daar doen.

Je kan dan beter gebruik maken van de alternative syntax.


je bedoeld dus dat ik het zo doe
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php

if():
echo;
else():
echo;
endif;

?>

ipv
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php

if()
{

echo;
}

else()
{

echo;
}


?>



neem ik aan?

Toevoeging op 29/02/2012 18:44:43:

- SanThe - op 29/02/2012 18:31:35:
Kijken of een formulier is gepost kan je beter met dit doen:
if($_SERVER['REQUEST_METHOD'] == 'POST')

Jouw if() is niet best.
if (... || !$_POST["naam"] || ...)
Met !$_POST["naam"] kijk je eigenlijk of $_POST["naam"] true of false is en dat slaat nergens op. Geldt uiteraard ook voor de anderen.

Stop nooit zomaar ongecontroleerde input van de gebruiker in een database of in een email. Er kunnen hackers mee aan de slag. Je gebruikt $naam onderin je script. Deze zal niet bestaan want die is nergens aangemaakt.

Gebruik goede headers in je email.
http://phpwiki.santhe.nl/index.php/De_juiste_mailheaders


kan je deze methode toelichten met een voorbeeldje uit me script?

de methode die ik gebruik komt zo uit me boek..

me vorige boek deed het weer op een andere manier maar daar had ik ook al het 1 en ander aan commetaar over gehoord (denk dat dit het nadeel is van boeken, snel achterhaald)

de $naam was een fout dit moest $_POST["naam"] zijn



Toevoeging op 29/02/2012 18:46:23:

me script nu is:

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
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>mailform met controle submit</title>
</head>

<body>
<?php
//wat instellingen voor de mailserver (doet geen moer maargoed zal wel aan xamp ligge)
ini_set("SMTP","smtp.live.com");
ini_set("smtp_port","25");
ini_set("sendmail_from","[email protected]");
// als het formulier leeg is of 1 van de waarden niet is ingevuld
if     ($_POST["verzendbutton"] != "verzenden" ||
    !
$_POST["naam"] ||
    !
$_POST["mailadres"] ||
    !
$_POST["reactie"])
{

?>

<!-- het formuliertje -->
<form action="mailform2.php" method="post" />
<?php

if($_POST["verzendbutton"] && !$_POST["naam"])
{

    echo "<font color=\"#FF0000\"> Vul hier de naam in!</font><br />";
}

?>

Naam:     <input type="text" name="naam" value="<?php $_POST["naam"] ?>" /><br />
<?php

if($_POST["verzendbutton"] && !$_POST["mailadres"])
{

    echo "<font color=\"#FF0000\"> Vul hier uw e-mail adres in!</font><br />";
}

?>

Email:    <input type="text" name="mailadres"  value="<?php $_POST["mailadres"] ?>" /><br />
<?php

if($_POST["verzendbutton"] && !$_POST["reactie"])
{

    echo "<font color=\"#FF0000\"> Vul hier uw reactie in!</font><br />";
}

?>

Reactie:    <textarea cols="30" rows="4" name="reactie"><?php $_POST["reactie"] ?></textarea><br />

            <input type="submit" value="verzenden" name="verzendbutton" />

</form>

<?php
}
else // in alle andere gevallen
{
$boodschap = "Naam: " . $_POST["naam"] . "\n Commentaar: " . $_POST["reactie"];

mail($_POST["mailadres"], "Uw reactie van de website", $boodschap); // stuur de mail met de info:
    echo "bedankt " . $_POST["naam"] . ", leuk dat je mee wilde doen!";
}

?>


</body>
</html>
Gewijzigd op 29/02/2012 18:34:43 door raymond de graaf
 
Bas  van de Steeg

Bas van de Steeg

29/02/2012 20:39:19
Quote Anchor link
Wat wouter bedoelt met talen uit elkaar houden is bijvoorbeeld
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?
if($_SERVER['REQUEST_METHOD'] == 'POST'){
?>

<h1>Titel</h1>
<hr>
<p>Tekstje</p>
<?
}
?>

Ipv
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?
if($_SERVER['REQUEST_METHOD'] == 'POST'){
echo '<h1>Titel</h1>';
echo '<hr>';
echo '<p>Tekstje</p>';
}

?>

Zo houd je je code overzichtelijk en kost het minder werkt.
En je hebt html niet helemaal door php heen zitten.
Gewijzigd op 29/02/2012 20:39:38 door Bas van de Steeg
 
Raymond de graaf

raymond de graaf

29/02/2012 20:45:23
Quote Anchor link
rgr! dat is me wel duidelijk geworden.

alleen als ik

if($_SERVER['REQUEST_METHOD'] == 'POST'){

boven aan zet en dan onderaan

}

dan word heel de pagina wit..

wat doe ik mis?
 
Bas  van de Steeg

Bas van de Steeg

29/02/2012 20:49:41
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?
if($_SERVER['REQUEST_METHOD'] == 'POST'){

boven aan zet en dan onderaan

}
?>

Je moet het niet boven aan zetten en dan onderaan } je moet het vervangen voor
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?
if     ($_POST["verzendbutton"] != "verzenden" ||
    !
$_POST["naam"] ||
    !
$_POST["mailadres"] ||
    !
$_POST["reactie"])
{

?>

Dus maak er
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
if($_SERVER['REQUEST_METHOD'] == 'POST'){
?>

Van.
 
Obelix Idefix

Obelix Idefix

29/02/2012 20:52:24
Quote Anchor link
Controleer dan wel, als het formulier verzonden blijkt, of de velden gevuld zijn (isset) en of de waarden kunnen kloppen.
 



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.