question: heredoc wel of geen aanrader voor de professionals?
Zoals jullie het zien ben ik bezig met php programmeren in een beginner's niveau, maar zelf vraag ik me wel af of een heredoc syntax misschien toch wel goed van pas kan komen. De reden waarom ik dit allemaal zeg is omdat ik er zelf mee oefen. Is het wel of geen aanrader voor de mensen zoals mij die bezig zijn met php programmeren? Zo niet, wat voor een syntax kan ik dan in plaats van een heredoc gebruiken?
Mvg,
Tolga
Gewijzigd op 01/01/1970 01:00:00 door Tolga
Ik heb het nog nooit gebruikt.
Wat kun je me dan het beste aanraden om in plaats van een heredoc syntax te gaan gebruiken? Iemand?
In principe heb je heredoc (of nowdoc) niet echt nodig. Al kan het bijvoorbeeld bij xml wel handig zijn.
Dat als je bijvoorbeeld naar een website gaat en je wilt je daarbij aanmelden, dan wordt je doorgelinkt naar een ander pagina voor een registratie, maar zelf hou ik daar niet van en probeer op mijn eigen idee
een registratie menu op dezelfde link te laten verschijnen wanneer er op
een knop aangeklikt wordt wanneer iemand wilt aanmelden.
Op mijn vorige topic zie je een voorbeeld van mijn script staan, maar zo te zien is het slecht geprogrammeerd. Dat kan iedereen overkomen, het maakt mij ook niet veel uit omdat zij meer ervaring in programeren hebben en gelijk hebben. Maargoed, hieronder zie je dezelfde voorbeelden van mijn scripts.
index.php
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
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
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
<?php
error_reporting(E_ALL);
?>
<html>
<head>
<title>Registeren</title>
<style type="TEXT/CSS">
#head
{
background-image: url(logo_bg.jpg);
}
#login_menu
{
background-image: url(logo_bg.jpg);
}
#nieuws
{
background-color: #EEEEEE;
}
#linker_menu
{
background-color: #EEEEEE;
}
</style>
</head>
<body bgcolor="black">
<center>
<table border="1" style="border-color: white;">
<tr><td><div id="head" style="overflow:auto;width:600px;height:135px;padding:10px;border:0px solid #eee">
</div></td><td><div id="login_menu" style="width: 150px; height: 135px;">
<table>
<form method="post" action="">
<tr><td>
<font color="white">Gebruikersnaam:</td></tr><tr><td></font>
<center>
<input type="text" name="logGebruiker"></td></tr><tr><td>
</center>
<font color="white">Wachtwoord:</td></tr><tr><td></font>
<center>
<input type="password" name="logWachtwoord"></td></tr><tr><td align="right">
<input type="submit" name="registeren" value="registeren">
<input type="submit" name="login" value="login">
</center>
</td></tr>
</form>
</table>
</div>
<tr><td><div id="nieuws" style="overflow:auto;width:600px;height:480px;padding:10px;border:0px solid #eee">
<?php
include("register.php");
?>
</div></td><td><div id="linker_menu" style="height:480px;padding:10px;border:0px solid #eee">
</div></td></tr>
</table>
</center>
</body>
</html>
error_reporting(E_ALL);
?>
<html>
<head>
<title>Registeren</title>
<style type="TEXT/CSS">
#head
{
background-image: url(logo_bg.jpg);
}
#login_menu
{
background-image: url(logo_bg.jpg);
}
#nieuws
{
background-color: #EEEEEE;
}
#linker_menu
{
background-color: #EEEEEE;
}
</style>
</head>
<body bgcolor="black">
<center>
<table border="1" style="border-color: white;">
<tr><td><div id="head" style="overflow:auto;width:600px;height:135px;padding:10px;border:0px solid #eee">
</div></td><td><div id="login_menu" style="width: 150px; height: 135px;">
<table>
<form method="post" action="">
<tr><td>
<font color="white">Gebruikersnaam:</td></tr><tr><td></font>
<center>
<input type="text" name="logGebruiker"></td></tr><tr><td>
</center>
<font color="white">Wachtwoord:</td></tr><tr><td></font>
<center>
<input type="password" name="logWachtwoord"></td></tr><tr><td align="right">
<input type="submit" name="registeren" value="registeren">
<input type="submit" name="login" value="login">
</center>
</td></tr>
</form>
</table>
</div>
<tr><td><div id="nieuws" style="overflow:auto;width:600px;height:480px;padding:10px;border:0px solid #eee">
<?php
include("register.php");
?>
</div></td><td><div id="linker_menu" style="height:480px;padding:10px;border:0px solid #eee">
</div></td></tr>
</table>
</center>
</body>
</html>
register.php
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
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
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
<?php
// Verbinding maken met de localhost.
$con = mysql_connect("localhost", "root", "");
If (!$con)
{ // Als er geen verbinding gemaakt kan worden, geef dan een foutmelding.
die('Communicatie foutmelding: ' . mysql_error());
}
else
{ // Verbinding succes!
mysql_select_db("mijn_db", $con);
}
// de register menu wordt zichbaar gemaakt met daarin de algemene voorwaardes van de gebruiks regels.
if(isset($_POST['registeren']) || isset($_POST['terug'])){
$regPlug = <<<message
<form method="POST" action="">
<table>
<tr><td colspan="6">
<table border="1" bgcolor="white">
<center>
<tr><td>
<div id="AGR" style="width:560px;height:220px;padding:10px;border:1px solid #eee">
</center>
<ul>
Algemene gebruiks regels:<br><br>
#1 = Je mag geen scheldwoorden gebruiken, op wat voor een manier dan ook. <br>
#2 = Laat geen spam mailtjes achter, en val mensen niet lastig.<br>
#3 = Alles wat vies, eng of tot sexuele aandoeningen leidt is verboden. <br>
#4 = Laat leesbare berichten achter alleen in het Nederlands of in het Engels. <br>
#5 = Wees vriendelijk tegen iedereen, vooral als het om de admin gaat. <br>
#6 = Je mag geen illegale overleg uitvoeren over roms, "warez", CD-Keys,<br>
ISO spellen, piraterij en alle andere onwettige activiteiten. <br>
#7 = Laat geen dubbele posten achter.
</ul>
</center>
</td></tr>
</table><br>
<tr><td>
<font color="red">*</font> Gebruikersnaam</td><td>:</td><td>
<input type="text" name="regGebruiker">
</td></tr><tr><td>
<font color="red">*</font> Wachtwoord</td><td>:</td><td>
<input type="password" name="regWachtwoord">
</td><td>
<font color="red">*</font> Herhaal wachtwoord</td><td>:</td><td>
<input type="password" name="regWachtwoordControl">
</td></tr><tr><td>
<input type="submit" name="regKnop" value="registeren">
</td></tr>
</table>
</form>
message;
echo $regPlug;
}
// Als er op de register knop geklikt wordt,
if(isset($_POST['regKnop'])){
$user = $_POST['regGebruiker'];
$password = $_POST['regWachtwoord'];
$pass = md5($password);
$passC = $_POST['regWachtwoordControl'];
$passControl = md5($passC);
// controlleer dan of de velden leeg staan.
if (empty($pass) || empty($passControl) || empty($user)){
$errRegMessage = <<<errRegMessage
Als je wilt aanmelden, dan ben je verplicht om alle velden te gaan invullen.
<br>
<form method="POST" action="">
<input type="submit" name="terug" value="terug">
</form>
errRegMessage;
echo $errRegMessage;
}
// Hier wordt de wachtwoord gecontrolleerd.
elseif ($pass != $passControl){
$errRegMessage = <<<errRegMessage
De ingevoerde wachtwoorden komen niet met elkaar overheen. Typ het a.u.b. opnieuw.
<br><br>
<form method="POST" action="">
<input type="submit" name="terug" value="terug">
</form>
errRegMessage;
echo $errRegMessage;
}else{
// De variabel $user wordt verbonden met de Username dat in de database zit.
$result = mysql_query("select * from user_registery where Username = '". $user . "'; ");
// Controleren of de gebruikernaam al bestaat, zo ja, dan krijg je een melding dat de gebruiker al bestaat...
if (mysql_num_rows($result) == 1){
echo '<font color="red">' . "De gebruikersnaam bestaat al." . '</font>' . "<br>";
}
else
{
// De gebruikernaam en de wachtwoord wordt in de database genoteerd en ook krijgt de persoon een notificatie van zijn aangemaakte gebruikernaam.
$result = mysql_query("insert into user_registery (Username, Password) values ('". $user . " ',' ". $pass ."');");
echo '<font color="green">' . "Gebruikersnaam aangemaakt!" . '</font>' . "<br>";
}
}
// Mysql afsluiten.
mysql_close($con);
}
?>
// Verbinding maken met de localhost.
$con = mysql_connect("localhost", "root", "");
If (!$con)
{ // Als er geen verbinding gemaakt kan worden, geef dan een foutmelding.
die('Communicatie foutmelding: ' . mysql_error());
}
else
{ // Verbinding succes!
mysql_select_db("mijn_db", $con);
}
// de register menu wordt zichbaar gemaakt met daarin de algemene voorwaardes van de gebruiks regels.
if(isset($_POST['registeren']) || isset($_POST['terug'])){
$regPlug = <<<message
<form method="POST" action="">
<table>
<tr><td colspan="6">
<table border="1" bgcolor="white">
<center>
<tr><td>
<div id="AGR" style="width:560px;height:220px;padding:10px;border:1px solid #eee">
</center>
<ul>
Algemene gebruiks regels:<br><br>
#1 = Je mag geen scheldwoorden gebruiken, op wat voor een manier dan ook. <br>
#2 = Laat geen spam mailtjes achter, en val mensen niet lastig.<br>
#3 = Alles wat vies, eng of tot sexuele aandoeningen leidt is verboden. <br>
#4 = Laat leesbare berichten achter alleen in het Nederlands of in het Engels. <br>
#5 = Wees vriendelijk tegen iedereen, vooral als het om de admin gaat. <br>
#6 = Je mag geen illegale overleg uitvoeren over roms, "warez", CD-Keys,<br>
ISO spellen, piraterij en alle andere onwettige activiteiten. <br>
#7 = Laat geen dubbele posten achter.
</ul>
</center>
</td></tr>
</table><br>
<tr><td>
<font color="red">*</font> Gebruikersnaam</td><td>:</td><td>
<input type="text" name="regGebruiker">
</td></tr><tr><td>
<font color="red">*</font> Wachtwoord</td><td>:</td><td>
<input type="password" name="regWachtwoord">
</td><td>
<font color="red">*</font> Herhaal wachtwoord</td><td>:</td><td>
<input type="password" name="regWachtwoordControl">
</td></tr><tr><td>
<input type="submit" name="regKnop" value="registeren">
</td></tr>
</table>
</form>
message;
echo $regPlug;
}
// Als er op de register knop geklikt wordt,
if(isset($_POST['regKnop'])){
$user = $_POST['regGebruiker'];
$password = $_POST['regWachtwoord'];
$pass = md5($password);
$passC = $_POST['regWachtwoordControl'];
$passControl = md5($passC);
// controlleer dan of de velden leeg staan.
if (empty($pass) || empty($passControl) || empty($user)){
$errRegMessage = <<<errRegMessage
Als je wilt aanmelden, dan ben je verplicht om alle velden te gaan invullen.
<br>
<form method="POST" action="">
<input type="submit" name="terug" value="terug">
</form>
errRegMessage;
echo $errRegMessage;
}
// Hier wordt de wachtwoord gecontrolleerd.
elseif ($pass != $passControl){
$errRegMessage = <<<errRegMessage
De ingevoerde wachtwoorden komen niet met elkaar overheen. Typ het a.u.b. opnieuw.
<br><br>
<form method="POST" action="">
<input type="submit" name="terug" value="terug">
</form>
errRegMessage;
echo $errRegMessage;
}else{
// De variabel $user wordt verbonden met de Username dat in de database zit.
$result = mysql_query("select * from user_registery where Username = '". $user . "'; ");
// Controleren of de gebruikernaam al bestaat, zo ja, dan krijg je een melding dat de gebruiker al bestaat...
if (mysql_num_rows($result) == 1){
echo '<font color="red">' . "De gebruikersnaam bestaat al." . '</font>' . "<br>";
}
else
{
// De gebruikernaam en de wachtwoord wordt in de database genoteerd en ook krijgt de persoon een notificatie van zijn aangemaakte gebruikernaam.
$result = mysql_query("insert into user_registery (Username, Password) values ('". $user . " ',' ". $pass ."');");
echo '<font color="green">' . "Gebruikersnaam aangemaakt!" . '</font>' . "<br>";
}
}
// Mysql afsluiten.
mysql_close($con);
}
?>
Verder zou ik lange stukken html buiten je php houden. Dus geen heredoc gebruiken.
Ja maar dan wordt alles wel zichbaar gemaakt zonder dat je op een knop drukt.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
je houd html buiten php maar het staat nog steeds in een if statment daar door zul je deze html niet zien
Quote:
Ontvanger Karl
Afzender Tolga
Verstuurd op 06.06.2009 20:13
Onderwerp heredoc
topic: question: heredoc wel of geen aanrader voor de professionals
Ja maar dan wordt alles wel zichbaar gemaakt zonder dat je op een knop drukt.
Afzender Tolga
Verstuurd op 06.06.2009 20:13
Onderwerp heredoc
topic: question: heredoc wel of geen aanrader voor de professionals
Ja maar dan wordt alles wel zichbaar gemaakt zonder dat je op een knop drukt.
Spam niet.
Bedankt! Ik zal het nu meteen uitproberen! :P
uhh, ik wilde z.s.m. reactie terug ontvangen.
mijn excuses, ik zal voortaan voorzichtiger zijn.
Gewijzigd op 01/01/1970 01:00:00 door Tolga
Felix schreef op 06.06.2009 20:13:
Nee, dat denk ik niet. Ook dan heb je alle HTML nog steeds in je PHP scripts.ik denk wat karl bedoelt is zo
Werk met een template parser, dan kun je alle HTML gewoon in je templates opnemen. Binnen PHP hoef je dan alleen nog maar te bepalen welk template weergegeven moet worden en zo voorkom je dus dat HTML getoond wordt die eigenlijk helemaal niet getoond had moeten worden.
Wil je aub een voorbeeld geven?
Ik begrijp niet hoe een template parser werkt en ik blijf op
het internet naar voorbeelden aan het zoeken.
Gewijzigd op 01/01/1970 01:00:00 door Tolga
Kijk eens naar Smarty bijvoorbeeld.
Laat aub ook een voorbeeld zien want een commentaar is voor mij niet voldoende.
Code (php)
en je normale script.php
Code (php)
En zie daar: code, in de zin van logica en hoe je applicatie werkt gescheiden van opmaak (en waar welk bericht moet verschijnen als het er is)
Gewijzigd op 01/01/1970 01:00:00 door Jelmer -
Bedankt!