Versio

rommelig gastenboek?

Overzicht Reageren

Linda Overkleeft

Linda Overkleeft

21/02/2011 20:21:41
Quote Anchor link
Ik ben bezig met mijn eerste gastenboek. Je kunt boodschappen achterlaten via invoer.php (stuur ik niet mee). Ik vraag mij gewoon af of mijn script erg rommelig is of niet. Wat kan ik efficienter doen en misschien zitten er wel grote fouten in. Graag jullie deskundige mening.

verderop vinden jullie mijn script. Ik had hem de eerste keer fout meegestuurd.
Gewijzigd op 21/02/2011 21:08:07 door Linda Overkleeft
 
PHP hulp

PHP hulp

25/05/2012 15:01:42
Gesponsorde koppelingen:
 
PHP Jasper

PHP Jasper

21/02/2011 20:23:31
Quote Anchor link
gebruik jij even de [code][/code] tags
Gewijzigd op 21/02/2011 20:24:27 door PHP Jasper
 
Linda Overkleeft

Linda Overkleeft

21/02/2011 20:27:33
Quote Anchor link
Eerste twee keer fout verstuurd, daarom heb ik de code weggegooid.
Opgeruimd staat netjes
Gewijzigd op 21/02/2011 20:50:35 door Linda Overkleeft
 
Victor Php

Victor Php

21/02/2011 20:34:11
Quote Anchor link
Zet helemaal aan het begin [.code] (zonder puntje)

Zet na </html [./code] (zonder puntje)
 
Linda Overkleeft

Linda Overkleeft

21/02/2011 20:38:00
Quote Anchor link
Volgens mij had ik het net goed gedaan... maar goed, hier komt ie.. wordt nu echt een rommelig gastenboek :)

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
<?php
function display_db_query($query_string, $connection, $header_bool, $table_params)
    {

      $query="CREATE TABLE gastenboek (
    id int(11) NOT NULL  AUTO_INCREMENT,
    naam varchar(50) NOT NULL,
    boodschap text NOT NULL ,
    datum date NOT NULL,
    PRIMARY KEY (id)
    )
    TYPE = MYISAM"
;

    // voer databasequery uit
    $result_id = mysql_query($query_string, $connection)//result ID onthouden voor verder gebruik, result id wordt retour gegeven
                or die("display_db_query:" . mysql_error());

    // bepaal het aantal kolommen in het resultaat
    $column_count = mysql_num_fields($result_id)//mbv result id aantal kolommen in rijen aflopen
                    or die("display_db_query:" . mysql_error());

    // TABLE form omvat optionele HTML argumenten die in de functie worden  doorgegeven
    print("<TABLE align=\"center\" width=\"45%\" $table_params >");

        if (mysql_num_rows($result_id) >= 1) //deze if zorgt ervoor dat als er niets in staat er een melding wordt gegeven
        {
        //    echo ""; DEZE REGEL HEEFT DUS GEEN NUT
         // print the body of the table

            while ($row = mysql_fetch_row($result_id))
            {

                for ($column_num = 0;
                $column_num < $column_count;
                $column_num++)
                {
    
                    $field_name =
                    mysql_field_name($result_id, $column_num);//retourneert de naam van een veld, kolomkoppen worden weergegeven  
                    print nl2br ("<tr><Th width=\"15%\">$field_name</th><td width=\"30%\"> $row[$column_num]</TD></tr>");// nl2br zorgt voor HTML enters in gastenboek
                }          
              print("<tr><td colspan=\"2\"></td></tr>"); //DIT ZORGT VOOR EEN LEGE TUSSENREGEL WAARDOOR ER RUIMTE IS TUSSEN DE BOODSCHAPPEN
            }
            print("</TABLE>");  
        }

        else
        {
            echo "Er zijn geen berichten in het gastenboek";
           }
    }

function
display_db_table($tablename, $connection, $header_bool, $table_params)//algemene functie
{
    $query_string = "SELECT naam, boodschap, datum FROM $tablename ORDER BY id DESC  "; //de nieuwste staat bovenaan
     display_db_query($query_string, $connection, $header_bool, $table_params);
}

//afhandeling formulier voor het gastenboek
if ($_SERVER['REQUEST_METHOD'] == 'POST')
    {

         if (!$_POST['naam'] || $_POST['boodschap'] == "" || strlen($_POST['naam'] > 100))
        {

        echo '<P>Er is een probleem, u heeft geen naam of boodschap achtergelaten</P>';
          }

            else
            {
                {

                $i_naam = AddSlashes ($_POST['naam']);
                $i_boodschap =  AddSlashes ($_POST['boodschap']);
                $naam = trim($i_naam);
                $boodschap = trim($i_boodschap);
                $datum = date('Y-m-d');
                }

            $query = "insert into gastenboek (naam, boodschap, datum) values ('$naam','$boodschap', '$datum')";
            $result = mysql_query($query);
                if (mysql_affected_rows()==1)
                {

                echo '<p><center> Jouw boodschap is in het gastenboek opgenomen.</center></p>';
                }

                else
                {
                error_log(mysql_error());
                echo '<p> <center>Tijdens het opslaan is er iets misgegaan.</center></p>';
                }
            }  
        
    }
    
?>

<HTML><HEAD><TITLE></TITLE></HEAD>
<STYLE TYPE="text/css">
<!--
BODY, P      {color: black; font-family: verdana; font-size: 10 pt}
H1            {color: black; font-family: arial; font-size: 18 pt; text-align: center}
TH              {background-color:#0099FF;text-align:right; vertical-align:top}
-->
</STYLE>

<BODY>
<center><a href="invoer.php"><h4>Nieuw bericht toevoegen!</h4></a></center>
<h1>Gastenboek </h1>
<?php display_db_table("gastenboek", $global_dbh, TRUE, "BORDER=0"); ?>
</BODY>
</HTML>
Gewijzigd op 21/02/2011 20:48:57 door Linda Overkleeft
 
Karl Karl

Karl Karl

21/02/2011 20:46:35
Quote Anchor link
Klik op wijzigen (http://www.phphulp.nl/img/icon/forum/edit.png) en plaats voor function nog even <?php.
 
Mark L

Mark L

21/02/2011 23:09:21
Quote Anchor link
Victor Php op 21/02/2011 20:34:11:
Zet helemaal aan het begin [.code] (zonder puntje)

Zet na </html [./code] (zonder puntje)


Bij deze vertel ik jou over de ignore-tag:
Dus aan het begin en aan het einde ook

Edit:
Oké, sinds wanneer werkt dit niet meer? Sorry, ik heb niets te zeggen. Zinloze reactie.
Gewijzigd op 21/02/2011 23:11:40 door Mark L
 
Karl Karl

Karl Karl

21/02/2011 23:29:17
Quote Anchor link
Mark L op 21/02/2011 23:09:21:
Victor Php op 21/02/2011 20:34:11:
Zet helemaal aan het begin [.code] (zonder puntje)

Zet na </html [./code] (zonder puntje)


Bij deze vertel ik jou over de ignore-tag:
Dus aan het begin en aan het einde ook

Edit:
Oké, sinds wanneer werkt dit niet meer? Sorry, ik heb niets te zeggen. Zinloze reactie.


Dit is al een HALF JAAR zo.
 
Linda Overkleeft

Linda Overkleeft

22/02/2011 08:48:36
Quote Anchor link
Ik zou graag een reactie willen hebben op mijn eerste script, wat kan ik zoal verbeteren. Hij werkt wel,maar voor mijn gevoel is de code niet zo netjes
 
Kut Piemel

Kut Piemel

22/02/2011 08:55:14
Quote Anchor link
ondanks het commentaar vind ik het onoverzichtelijk
Gewijzigd op 22/02/2011 08:55:26 door Kut Piemel
 
Mebus  vg

mebus vg

22/02/2011 10:21:53
Quote Anchor link
Je maakt nu wel gebruik van functies maar als ik zo kijk doen ze eigenlijk niet meer als output uitspugen binnenin de functie.. Dan kan je net zo goed gewoon geen functies gebruiken.

Verder heb ik addslashes(); nooit echt gebruikt voor zover ik weet.. Gebruik daarvoor mysql_real_escape_string();

Je gebruikt print en echo's.. Gebruik gewoon overal echo's dit werkt beter/sneller en is overzichtelijker vind ik zelf. echo '';

Kijk ook eens naar de volgende functie: nl2br();

mysql_num_rows(); kan problemen geven wanneer je structuur van een tabel in MySQL verandert. Kijk eens naar mysql_fetch_assoc();

Voorderest ziet het script er redelijk uit. Ik heb erger gezien. Er valt nog wel meer te verbeteren maar met dit kom je al een groot stuk vooruit. Succes! (:
 
Obelix en Idefix

Obelix en Idefix

22/02/2011 11:57:33
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
    print("<TABLE align=\"center\" width=\"45%\" $table_params >");


Gebruik ' ipv " --> scheelt een boel escapen en maakt het wat overzichtelijker. Variabelen buiten quotes.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
$i_naam = AddSlashes ($_POST['naam']);
$i_boodschap =  AddSlashes ($_POST['boodschap']);
$naam = trim($i_naam);
$boodschap = trim($i_boodschap);

Waarom maak je eerst $i_naam aan en vervolgens nog een keer $naam? Je hebt alles toch al in $_POST['naam'] staan? Zelfde voor boodschap.
Gewijzigd op 22/02/2011 11:58:18 door Obelix en Idefix
 
Linda Overkleeft

Linda Overkleeft

26/02/2011 08:42:56
Quote Anchor link
Bedankt voor jullie reacties, duidelijk is dat ik nog veel te leren heb!
 



Overzicht Reageren