rommelig gastenboek?
verderop vinden jullie mijn script. Ik had hem de eerste keer fout meegestuurd.
Gewijzigd op 21/02/2011 21:08:07 door Linda Overkleeft
Opgeruimd staat netjes
Gewijzigd op 21/02/2011 20:50:35 door Linda Overkleeft
Zet na </html [./code] (zonder puntje)
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
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>
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
Victor Php op 21/02/2011 20:34:11:
Zet helemaal aan het begin [.code] (zonder puntje)
Zet na </html [./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
Mark L op 21/02/2011 23:09:21:
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.
Victor Php op 21/02/2011 20:34:11:
Zet helemaal aan het begin [.code] (zonder puntje)
Zet na </html [./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.
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
Gewijzigd op 22/02/2011 08:55:26 door Maarten PHP
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! (:
Gebruik ' ipv " --> scheelt een boel escapen en maakt het wat overzichtelijker. Variabelen buiten quotes.
Code (php)
1
2
3
4
2
3
4
$i_naam = AddSlashes ($_POST['naam']);
$i_boodschap = AddSlashes ($_POST['boodschap']);
$naam = trim($i_naam);
$boodschap = trim($i_boodschap);
$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 Idefix
Bedankt voor jullie reacties, duidelijk is dat ik nog veel te leren heb!