Php Programming Code Examples
Php > Databases Code Examples
A simple guestbook application demonstrating using MySQL and PHP3
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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
A simple guestbook application demonstrating using MySQL and PHP3
to generate interactive web pages
<?
/*
I'm not a big fan of guestbooks, but when I did our website, my bosses wanted one. On the bright side,
it make a great demonstration of using PHP and MySQL together. You could probably use about any SQL
Server, with minor modifications.
This guestbook is a bit limited in that
-it doesn't have any management features, like editing/deleting entries
-it doesn't limit how many entries are shown on one page
The basic way this works is something like this:
-if the URL called is guestbook.php3?add, then we present the form to add an entry to the guestbook
-if the URL called is guestbook.php3?view, then we show all the entries in the guestbook
-if the page is passed the varaible cmd that has the value send, then we process the form data and add the entry
to the database
-otherwise, we present the main welcome page
Here's a dump of the database used by this:
# MySQL dump 4.0
#
# Host: localhost Database: guestbook
#--------------------------------------------------------
#
# Table structure for table 'guestbook'
#
CREATE TABLE guestbook (
id mediumint(8) DEFAULT '0' NOT NULL auto_increment,
name varchar(30) DEFAULT '' NOT NULL,
email varchar(30) DEFAULT '' NOT NULL,
job varchar(30) DEFAULT '' NOT NULL,
location varchar(30) DEFAULT '' NOT NULL,
comments text DEFAULT '' NOT NULL,
url varchar(50),
PRIMARY KEY (id)
);
*/
echo "<HTML><HEAD><TITLE>Guestbook Example</TITLE></HEAD><BODY>";
// path to mail server, we'll be mailing copies of entries to the admin to make
//sure appropriate things are submitted
$MP = "/usr/lib/sendmail -t";
// addresses to mail entries to
$mail = "ccunning";
// connect to the database, since each part of this uses
//the connection, we can just connect once at the beginning
mysql_connect( "localhost", "username", "password");
//select our database
mysql_select_db( "guestbook") or die( "Error opening database");
// if the query string (guestbook.php3?stuff) is add, then present the form to add entries
if ($argv[0] == "add"):
?>
<P>Please take a moment to share your comments with us. If you have a specific question for us,
please use the form located <A HREF="/contact/index.php3">here</A>.
<P><FRM NAME="guestbook" ACTION=" <?echo $PHP_SELF?>" METHOD=POST>
<INPUT TYPE=hidden NAME=cmd VALUE=send>
Your Name: <INPUT TYPE=text NAME=name>
<BR>Your E-mail address: <INPUT TYPE=text NAME=email>
<BR>Your Web Page address: <INPUT TYPE=text NAME=url>
<BR>Your occupation: <INPUT TYPE=text NAME=job>
<BR>Where you call home: <INPUT TYPE=text NAME=location>
<BR>Comments:
<BR><TEXTAREA NAME=comments COLS=60 ROWS=6></TEXTAREA>
<CENTER><INPUT TYPE=submit VALUE=Submit><INPUT TYPE=reset VALUE=Clear></CENTER>
</FORM>
<?
// if the query string is view, the fetch the guestbook entries
elseif ($argv[0] == "view"):
echo "<H2>View Guestbook Entries</H2>";
// get stuff from the database
$result = mysql_query( "select name, email, url, job, location, comments from guestbook");
// fetch the rows one at atime, and then echo the data to the page
while ($row = mysql_fetch_row($result)) {
echo "<HR>";
echo "<B>Name:</B> $row[0]";
echo "<BR><B>E-mail:</B> <A HREF=\"mailto:$row[1]\">$row[1]</A>";
echo "<BR><B>Web Page:</B> <A HREF=\"$row[2]\">$row[2]</A>";
echo "<BR><B>Occupation:</B> $row[3]";
echo "<BR><B>From:</B> $row[4]";
echo "<BR><B>Comments:</B>";
echo "<BR>$row[5]";
}
// if we're submitting a guestbook entry
elseif (isset($cmd) && $cmd == "send"):
// open a pipe to the mail server, andsend a copy to the admins,
// the mail() function could also have been used
$fd = popen ($MP, "w");
fputs ($fd, "To: $mail\n");
fputs ($fd, "Subject: Guestbook Addition\n");
fputs ($fd, "$name ($email) has added the following to the guestbook\n");
fputs ($fd, "Web Page: $url\n");
fputs ($fd, "Occupation: $job\n");
fputs ($fd, "Location: $location\n");
fputs ($fd, "$comments\n");
pclose ($fd);
// MySQL really hates it when you try to put things with ' or "
// characters into a database
$comments = addslashes( "$comments");
mysql_query( "insert into guestbook (name, email, url, job, location, comments) values
// insert the data into the database
('$name', '$email', '$url', '$job', '$location', '$comments')");
?>
<P>Thanks! We appreciate your comments on our program.
<?
else:
// lastly, we must be at the main page. Get the number of entries in the guestbook
//so we can tell the visitor how many there are
$result = mysql_query( "select max(id) from guestbook");
$row = mysql_fetch_row($result);
$num = $row[0];
if ($num == "") {
$entry = "There are currently no entries";
}
elseif ($num == "1") {
$entry = "There is currently 1 entry";
}
else {
$entry = "There are currently $num entries";
}
echo "<P>Welcome to the Calculus&<I>Mathematica</I> guestbook. $entry in the guestbook.";
echo "<H4><A HREF=\"$PHP_SELF?add\">Add an entry to the guestbook</A></H4>";
echo "<H4><A HREF=\"$PHP_SELF?view\">View entries in the guestbook</A></H4>";
endif;
?>