Tjenare.
Jag har en gästbok gjord i PHP som connectar till en MySQL databas.
Det är jag och en polare som har gjort den....
Han har stått för MySQL kodandet och jag för PHP/HTML.
Nu är problemet bara, att ingen av oss kommer ihåg hur man kodar in för att deleta ett inlägg.
Koden ser ut såhär:
<?
/*
PHP Gästbok 0.99
Skriven av Rickard Hill och Peter Ekdahl.
Connecta till databasen och skapa denna table innan du använder denna gästbok.
CREATE TABLE guests (
guest_id
int(4)
unsigned
zerofill
DEFAULT '0000'
NOT NULL
auto_increment,
guest_name varchar(50),
guest_email varchar(50),
guest_time timestamp(14),
guest_message text,
PRIMARY KEY (guest_id)
);
*/
////////////////////////////////
// Detta kollar om vi skall lägga till ett nytt inlägg.
////////////////////////////////
if (($REQUEST_METHOD=='POST')) {
////////////////////////////////
// Denna loop tar bort "farliga" tecken från inlägget och sätter
// en backslash före tecken som kan
// förorsaka problem för databasen.
////////////////////////////////
for(reset($HTTP_POST_VARS);
$key=key($HTTP_POST_VARS);
next($HTTP_POST_VARS)) {
$this = addslashes($HTTP_POST_VARS[$key]);
$this = strtr($this, ">", " ");
$this = strtr($this, "<", " ");
$this = strtr($this, "|", " ");
$$key = $this;
}
////////////////////////////////
// Detta fångar upp alla fälten och kollar
// om någon försöker skippa ett fält.
////////////////////////////////
if ($name && $email && $message ) {
////////////////////////////////
// Här uppdaterar vi inläggen
////////////////////////////////
$query = "INSERT INTO guests ";
$query .= "(guest_id, guest_name, ";
$query .= "guest_email, guest_time, guest_message) ";
$query .= "values(0000,'$name','$email',NULL,'$message')";
mysql_pconnect("localhost","guest","password")
or die("Unable to connect to SQL server");
mysql_select_db("test_gb") or die("Unable to select database");
mysql_query($query) or die("Insert Failed!");
} else {
////////////////////////////////
// Om folk inte fyllde i alla fälten så sätter vi en variabel
// och fortsätter
////////////////////////////////
$notall = 1;
}
}
?>
<!--Start-->
<html>
<head>
<title>Inlägg</title>
<body bgcolor="blue" text="orange" link="silver" alink="white" vlink="silver">
<B>
<font face="verdana" size="3">
<center>
<?
////////////////////////////////
// Här ansluter vi till databasen och läser.
////////////////////////////////
mysql_pconnect("localhost","guest","password")
or die("Unable to connect to SQL server");
mysql_select_db("test_gb") or die("Unable to select database");
////////////////////////////////
// Här räknar vi alla inlägg.
////////////////////////////////
$query = "SELECT COUNT(*) FROM guests";
$numguests = mysql_query($query) or die("Select Failed!");
$numguest = mysql_fetch_array($numguests);
?>
<!-- Här visar vi alla inlägg. -->
<P>
<A HREF="guestbook.php?complete=1"><? echo $numguest[0]; ?> Inlägg</A> (funktionen fungerar inte korrekt)
</P>
<A HREF="guestbook_add.php">Lägg in ett inlägg du med!</A>
<br>
<br>
<?
////////////////////////////////
// Här bestämmer vi om vi vill visa alla inläggen, eller bara de 20 senaste.
// Denna variabel är satt genom att lägga till '?complete=1' efter URL-en.
////////////////////////////////
if ($complete == 1) {
$query = "SELECT * FROM guests ORDER BY guest_time DESC";
} else {
$query = "SELECT * FROM guests ORDER BY guest_time DESC LIMIT 20";
}
$guests = mysql_query($query) or die("Select Failed!");
////////////////////////////////
// Denna kommer att loopa så länge det finns fler inlägg att läsa igenom.
////////////////////////////////
while ($guest = mysql_fetch_array($guests)) {
?>
<TABLE BORDER="1" WIDTH="500">
<B>
<TR><TD>
<B>Namn: <? echo $guest['guest_name']; ?>
</TD><TD>
<B>Email: <A HREF="mailto:<? echo $guest['guest_email']; ?>">
<? echo $guest['guest_email']; ?></A>
</TD><TD>
<?
////////////////////////////////
// Databasen har en tids funktion som vi kan använda för att se när inlägget kom in.
////////////////////////////////
$datefromdb = $guest['guest_time'];
$year = substr($datefromdb,0,4);
$mon = substr($datefromdb,4,2);
$day = substr($datefromdb,6,2);
$hour = substr($datefromdb,8,2);
$min = substr($datefromdb,10,2);
$sec = substr($datefromdb,12,2);
$orgdate = date("l F dS, Y h:i A",mktime($hour,$min,$sec,$mon,$day,$year));
?>
<B>Datum: <? echo $orgdate; ?>
</TD></TR>
<TR><TD COLSPAN="3">
<B><? echo $guest['guest_message']; ?>
</TD></TR>
</TABLE>
<BR>
<? } ?>
</center>
</BODY>
</HTML>
Sedan fins även koden för att lägga till ett inlägg och ser ut såhär:
<HTML>
<HEAD>
<TITLE>Kasta in ett inlägg.</TITLE>
</HEAD>
<body bgcolor="blue" text="orange" link="silver" alink="white" vlink="silver">
<B>
<font face="verdana" size="3">
<center>
<H1>Kasta in ett inlägg.</H1>
<!-- Låt folk veta att dom har fyllt i alla fälten -->
<? if ($notall == 1) { ?>
<P><FONT COLOR="red">Fyll i alla fälten</FONT></P>
<? } ?>
<!-- Den här biten lägger in det som redan skrivits i, om någon har glömmt att fylla i ett fält. -->
<FORM METHOD="post" ACTION="guestbook.php">
<PRE>
Ditt namn: <INPUT
TYPE="text"
NAME="name"
SIZE="20"
MAXLENGTH="50"
VALUE="<? echo $name; ?>">
Din Email: <INPUT
TYPE="text"
NAME="email"
SIZE="20"
MAXLENGTH="50"
VALUE="<? echo $email; ?>">
Meddelande:
<TEXTAREA NAME="message" COLS="40" ROWS="8" WRAP="Virtual">
<? echo $message; ?>
</TEXTAREA>
<INPUT TYPE="submit" VALUE="Lägg in">
</PRE>
</FORM>
<HR>
</center>
</body>
</html>
-----
Finns det någon som kan förklara för mig, vad det är för funktion som tar bort ett inlägg.
Det är kanska störande efter att vi har testat gästboken, och det nu ligger 10 meddelanden och skräpar, som vi inte vill ha.
Tacksam för svar!
//Rickard