question: heredoc wel of geen aanrader voor de professionals?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Tolga

Tolga

06/06/2009 19:27:00
Quote Anchor link
Beste mensen,

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
 
PHP hulp

PHP hulp

22/12/2024 10:09:57
 
- SanThe -

- SanThe -

06/06/2009 19:28:00
Quote Anchor link
Ik heb het nog nooit gebruikt.
 
Tolga

Tolga

06/06/2009 19:31:00
Quote Anchor link
Wat kun je me dan het beste aanraden om in plaats van een heredoc syntax te gaan gebruiken? Iemand?
 

06/06/2009 19:39:00
Quote Anchor link
Wat wil je d'r in stoppen?
In principe heb je heredoc (of nowdoc) niet echt nodig. Al kan het bijvoorbeeld bij xml wel handig zijn.
 
Tolga

Tolga

06/06/2009 20:03:00
Quote Anchor link
Ik zal mijn best doen om alles zo duidelijk mogenlijk proberen te uitleggen.

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


register.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
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>
                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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);
            }

        
        ?>
 

06/06/2009 20:06:00
Quote Anchor link
Geen tabellen gebruiken voor lay-out.
Verder zou ik lange stukken html buiten je php houden. Dus geen heredoc gebruiken.
 
Tolga

Tolga

06/06/2009 20:08:00
Quote Anchor link
Ja maar dan wordt alles wel zichbaar gemaakt zonder dat je op een knop drukt.
 
Felix b

Felix b

06/06/2009 20:13:00
Quote Anchor link
ik denk wat karl bedoelt is zo
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
<?php
if(false){
?>

<html>
    <head>
    <title>Registeren</title>
    </head>
<body>
 hallo
</body>
</html>
<?
}
?>


je houd html buiten php maar het staat nog steeds in een if statment daar door zul je deze html niet zien
 

06/06/2009 20:14:00
Quote Anchor link
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.

Spam niet.
 
Tolga

Tolga

06/06/2009 20:14:00
Quote Anchor link
ohh!
Bedankt! Ik zal het nu meteen uitproberen! :P
 
Tolga

Tolga

06/06/2009 20:17:00
Quote Anchor link
@Karl
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
 
Joren de Wit

Joren de Wit

06/06/2009 20:17:00
Quote Anchor link
Felix schreef op 06.06.2009 20:13:
ik denk wat karl bedoelt is zo
Nee, dat denk ik niet. Ook dan heb je alle HTML nog steeds in je PHP scripts.

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.
 
Tolga

Tolga

06/06/2009 20:35:00
Quote Anchor link
@Blanche

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
 
- Ariën  -
Beheerder

- Ariën -

06/06/2009 21:02:00
Quote Anchor link
met een templateparser houd je de logica van je script (PHP) gebscheiden van de view (layout; alles wat je ziet).
Kijk eens naar Smarty bijvoorbeeld.
 
Tolga

Tolga

06/06/2009 21:21:00
Quote Anchor link
Laat aub ook een voorbeeld zien want een commentaar is voor mij niet voldoende.
 
Jelmer -

Jelmer -

06/06/2009 21:29:00
Quote Anchor link
Bestand A: template.phtml (of .php, of .wat-jezelf-leuk-vindt)
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
<html>
    <head>
        <title><?=$title?></title>
    </head>
    <body>
        <?php if(!empty($error)):?>
        <p>Er is een fout opgetreden: <?=$error?></p>
        <?php endif ?>
        
        <form method="post">
            ...
        </form>
    </body>
</html>


en je normale script.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
14
15
16
<?php

function include_with_context($file, $context)
{

    extract($context);
    include $file;
}


if($form == 'registreren') {
    include_with_context('template.phtml', array(
        'title' => 'Registreren',
        'error' => 'Hier had ik niets in moeten vullen'
    );
}


?>


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 -
 
Tolga

Tolga

06/06/2009 21:53:00
Quote Anchor link
@Jelmer
Bedankt!
 



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.