Avatar billede kack Nybegynder
22. december 2004 - 21:29 Der er 35 kommentarer og
2 løsninger

slette besked i gæstebog

I mit community har brugerne hver sin gæstebog. Men hvordan kan man lave det sådan at brugerne kan slette beskeder i deres egen gæstebog?

F.eks at de bare trykker på et link der f.eks. hedder [SLET] i beskeden.

På forhånd tak :D
Avatar billede baitianlong Nybegynder
22. december 2004 - 21:36 #1
Kopier koden ind, hvor du lister beskederne op for brugeren, så er det lettere at tilføje :) (men kun de linier, ikke hele dokumentet!)
Avatar billede kack Nybegynder
22. december 2004 - 21:37 #2
Hov sorry.. Glemte lige I nok også skal have noget kode :) :

Dette er min gæstebog kode:

<?php
if($_POST['skriv']){
if(!$_POST['navn']) {
echo "Du skal skrive et navn!";
}
elseif(!$_POST['kom']) {
echo "Du skal skrive en besked!";
}
else{
$_POST["kom"] = str_replace("<", "&lt;", $_POST["kom"]);
$_POST["kom"] = str_replace(">", "&gt;", $_POST["kom"]);
$_POST["kom"] = str_replace("\\", "\\\\", $_POST["kom"]);
mysql_query("INSERT INTO gbog (id, bruger, name, mail, comment) VALUES ('".$_POST['id']."','".$_GET['bruger']."','".$_POST['navn']."','".$_GET['email']."','".$_POST['kom']."')");
}
}
?>
<?
$query = mysql_query("SELECT * FROM gbog WHERE bruger='".$_GET['bruger']."' ORDER BY id DESC") or die(mysql_error());
while($row = mysql_fetch_array($query)) {
$row["COMMENT"] = str_replace("
", "<br />", $row["COMMENT"]);
$row["COMMENT"] = preg_replace( "#\[url=(.+?)\](.+?)\[/url\]#is", "<a target='_blank' href='\\1'>\\2</a>", $row["COMMENT"]);
$row["COMMENTt"] = preg_replace( "#\[url\](.+?)\[/url\]#is", "<a target='_blank' href='\\1'>\\1</a>", $row["COMMENT"]);
$row["COMMENT"] = preg_replace( "#\[img\](.+?)\[/img\]#is", "<img src='\\1' alt='' border='0' />", $row["COMMENT"]);
$row["COMMENT"] = preg_replace( "#\[b\](.+?)\[/b\]#is", "<b>\\1</b>", $row["COMMENT"]);
$row["COMMENT"] = preg_replace( "#\[i\](.+?)\[/i\]#is", "<i>\\1</i>", $row["COMMENT"]);
$row["COMMENT"] = preg_replace( "#\[u\](.+?)\[/u\]#is", "<u>\\1</u>", $row["COMMENT"]);
echo "<table> <tr> <td class='comment'><b><a href='?side=profil/bruger.php&bruger=" .$row["name"]."'>".$row["name"] ."</a></b> <a href='?side=profil/gbog.php&bruger=" .$row["name"]."'>SVAR</a> <hr>".$row["COMMENT"] ."</td></tr></table><br />";
}
?>
Avatar billede kack Nybegynder
22. december 2004 - 21:38 #3
Altså.. Det er:

<?
$query = mysql_query("SELECT * FROM gbog WHERE bruger='".$_GET['bruger']."' ORDER BY id DESC") or die(mysql_error());
while($row = mysql_fetch_array($query)) {
$row["COMMENT"] = str_replace("
", "<br />", $row["COMMENT"]);
$row["COMMENT"] = preg_replace( "#\[url=(.+?)\](.+?)\[/url\]#is", "<a target='_blank' href='\\1'>\\2</a>", $row["COMMENT"]);
$row["COMMENTt"] = preg_replace( "#\[url\](.+?)\[/url\]#is", "<a target='_blank' href='\\1'>\\1</a>", $row["COMMENT"]);
$row["COMMENT"] = preg_replace( "#\[img\](.+?)\[/img\]#is", "<img src='\\1' alt='' border='0' />", $row["COMMENT"]);
$row["COMMENT"] = preg_replace( "#\[b\](.+?)\[/b\]#is", "<b>\\1</b>", $row["COMMENT"]);
$row["COMMENT"] = preg_replace( "#\[i\](.+?)\[/i\]#is", "<i>\\1</i>", $row["COMMENT"]);
$row["COMMENT"] = preg_replace( "#\[u\](.+?)\[/u\]#is", "<u>\\1</u>", $row["COMMENT"]);
echo "<table> <tr> <td class='comment'><b><a href='?side=profil/bruger.php&bruger=" .$row["name"]."'>".$row["name"] ."</a></b> <a href='?side=profil/gbog.php&bruger=" .$row["name"]."'>SVAR</a> <hr>".$row["COMMENT"] ."</td></tr></table><br />";
}
?>

Der viser beskeden..
Avatar billede elskermad.dk Nybegynder
22. december 2004 - 21:58 #4
måske sådan her:

<?
if ($_GET[mode] == "slet" && isset($_GET[slet])) mysql_query("delete from gbog WHERE bruger = '$_GET[bruger]' AND id = '$_GET[slet]'") or die(mysql_error());

$query = mysql_query("SELECT * FROM gbog WHERE bruger='".$_GET['bruger']."' ORDER BY id DESC") or die(mysql_error());
while($row = mysql_fetch_array($query)) {
$row["COMMENT"] = str_replace("
", "<br />", $row["COMMENT"]);
$row["COMMENT"] = preg_replace( "#\[url=(.+?)\](.+?)\[/url\]#is", "<a target='_blank' href='\\1'>\\2</a>", $row["COMMENT"]);
$row["COMMENTt"] = preg_replace( "#\[url\](.+?)\[/url\]#is", "<a target='_blank' href='\\1'>\\1</a>", $row["COMMENT"]);
$row["COMMENT"] = preg_replace( "#\[img\](.+?)\[/img\]#is", "<img src='\\1' alt='' border='0' />", $row["COMMENT"]);
$row["COMMENT"] = preg_replace( "#\[b\](.+?)\[/b\]#is", "<b>\\1</b>", $row["COMMENT"]);
$row["COMMENT"] = preg_replace( "#\[i\](.+?)\[/i\]#is", "<i>\\1</i>", $row["COMMENT"]);
$row["COMMENT"] = preg_replace( "#\[u\](.+?)\[/u\]#is", "<u>\\1</u>", $row["COMMENT"]);
echo "<table> <tr> <td class='comment'><b><a href='?side=profil/bruger.php&bruger=" .$row["name"]."'>".$row["name"] ."</a></b> <a href='?side=profil/gbog.php&bruger=" .$row["name"]."'>SVAR</a><a href='?side=profil/gbog.php&bruger=" .$row["name"]."&mode=slet&slet=$row["id"]'>[SLET]</a> <hr>".$row["COMMENT"] ."</td></tr></table><br />";
}
?>
Avatar billede kack Nybegynder
22. december 2004 - 22:09 #5
Parse error: parse error, unexpected '\"', expecting T_STRING or T_VARIABLE or T_NUM_STRING in /customers/kack.dk/kack.dk/httpd.www/kackcommunity2/profil/gbog.php on line 46

Line 46:

echo "<table> <tr> <td class='comment'><b><a href='?side=profil/bruger.php&bruger=" .$row["name"]."'>".$row["name"] ."</a></b> <a href='?side=profil/gbog.php&bruger=" .$row["name"]."'>SVAR</a><a href='?side=profil/gbog.php&bruger=" .$row["name"]."&mode=slet&slet=$row["id"]'>[SLET]</a> <hr>".$row["COMMENT"] ."</td></tr></table><br />";
Avatar billede elskermad.dk Nybegynder
22. december 2004 - 22:17 #6
echo "<table> <tr> <td class='comment'><b><a href='?side=profil/bruger.php&bruger=" .$row["name"]."'>".$row["name"] ."</a></b> <a href='?side=profil/gbog.php&bruger=" .$row["name"]."'>SVAR</a><a href='?side=profil/gbog.php&bruger=" .$row["name"]."&mode=slet&slet=" . $row["id"] . "'>[SLET]</a> <hr>".$row["COMMENT"] ."</td></tr></table><br />";

prøv det, må tilstå det er utestet!

så vær venlig lige at tage en backup af din db inden også! så er vi sikker på det ikke forsvinder :)
Avatar billede stefmeister Nybegynder
22. december 2004 - 22:35 #7
du laver et link der hedder noget i stil med <a href="dinside.php?slet=besked&id='.$row['id'].'">Slet besked</a>


så på din side i starten inden alt det andet gøgl skriver du


if($_GET['slet'] == "besked") {
if($_GET['id']) {
  mysql_query("DELETE FROM gbog WHERE ID = '".$_GET['id']."' LIMIT 1");
}
}
Avatar billede kack Nybegynder
22. december 2004 - 22:41 #8
elskermad.dk > Hvordan laver man backup af en database?
Avatar billede stefmeister Nybegynder
22. december 2004 - 22:46 #9
bruger du phpmyadmin? for så siger du bare exporter. Så får du en text fil med al info. Du skal gøre det for hver tabel.
Avatar billede kack Nybegynder
22. december 2004 - 22:48 #10
altså hvis jeg f.eks har en table til mine gæstebogs beskeder som hedder GBOG skal jeg bare exporte den?
Avatar billede stefmeister Nybegynder
22. december 2004 - 22:48 #11
ja
Avatar billede stefmeister Nybegynder
22. december 2004 - 22:49 #12
så burde den lave en text som indeholder struktur og alt "indmaden".
Avatar billede kack Nybegynder
22. december 2004 - 22:51 #13
Det virker vidst nu :D

Men det skal jo kun være brugeren som ejer gæstebogen der kan slette beskeder. Hvordan kan man lave det?
Avatar billede stefmeister Nybegynder
22. december 2004 - 22:53 #14
hvis du f.eks. har lagt brugerens navn ned i en variable $navn.

fx.
if($navn == "peterhansen") {
<a href="dinside.php?slet=besked&id='.$row['id'].'">Slet besked</a>
}
Avatar billede kack Nybegynder
22. december 2004 - 22:59 #15
Gider du flette det ind i den anden kode? Ville være dejligt!
Avatar billede stefmeister Nybegynder
22. december 2004 - 23:00 #16
kan jeg godt... 2 sek.
Avatar billede kack Nybegynder
22. december 2004 - 23:02 #17
k.. Nice!
Avatar billede stefmeister Nybegynder
22. december 2004 - 23:04 #18
<?php

if($_GET['slet'] == "besked") {
if($_GET['id']) {
  mysql_query("DELETE FROM gbog WHERE ID = '".$_GET['id']."' LIMIT 1");
}
}

if($_POST['skriv']){
if(!$_POST['navn']) {
echo "Du skal skrive et navn!";
}
elseif(!$_POST['kom']) {
echo "Du skal skrive en besked!";
}
else{
$_POST["kom"] = str_replace("<", "&lt;", $_POST["kom"]);
$_POST["kom"] = str_replace(">", "&gt;", $_POST["kom"]);
$_POST["kom"] = str_replace("\\", "\\\\", $_POST["kom"]);
mysql_query("INSERT INTO gbog (id, bruger, name, mail, comment) VALUES ('".$_POST['id']."','".$_GET['bruger']."','".$_POST['navn']."','".$_GET['email']."','".$_POST['kom']."')");
}
}
?>
<?
$query = mysql_query("SELECT * FROM gbog WHERE bruger='".$_GET['bruger']."' ORDER BY id DESC") or die(mysql_error());
while($row = mysql_fetch_array($query)) {
$row["COMMENT"] = str_replace("
", "<br />", $row["COMMENT"]);
$row["COMMENT"] = preg_replace( "#\[url=(.+?)\](.+?)\[/url\]#is", "<a target='_blank' href='\\1'>\\2</a>", $row["COMMENT"]);
$row["COMMENT"] = preg_replace( "#\[url\](.+?)\[/url\]#is", "<a target='_blank' href='\\1'>\\1</a>", $row["COMMENT"]);
$row["COMMENT"] = preg_replace( "#\[img\](.+?)\[/img\]#is", "<img src='\\1' alt='' border='0' />", $row["COMMENT"]);
$row["COMMENT"] = preg_replace( "#\[b\](.+?)\[/b\]#is", "<b>\\1</b>", $row["COMMENT"]);
$row["COMMENT"] = preg_replace( "#\[i\](.+?)\[/i\]#is", "<i>\\1</i>", $row["COMMENT"]);
$row["COMMENT"] = preg_replace( "#\[u\](.+?)\[/u\]#is", "<u>\\1</u>", $row["COMMENT"]);
echo "<table> <tr> <td class='comment'><b><a href='?side=profil/bruger.php&bruger=" .$row["name"]."'>".$row["name"] ."</a></b> <a href='?side=profil/gbog.php&bruger=" .$row["name"]."'>SVAR</a> <hr>".$row["COMMENT"] ."</td>
if($navn == $row[bruger]) {            /* <---- Hvor $navn så er navnet på den bruger man er fx Peter. og $row[bruger] er navnet på den person hvis gæstebog peter kigger på. */
<a href="dinside.php?slet=besked&id='.$row['id'].'">Slet besked</a>
}
</tr></table><br />";
}
?>
Avatar billede kack Nybegynder
22. december 2004 - 23:11 #19
Bude godt selv kunne løse dette.. Men er for træt til det :S

Der er en fejl i denne linie:

<a href="dinside.php?slet=besked&id='.$row['id'].'">Slet besked</a>

Fejlen er:

Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ',' or ';' in /customers/kack.dk/kack.dk/httpd.www/kackcommunity2/profil/gbog.php on line 53
Avatar billede stefmeister Nybegynder
22. december 2004 - 23:20 #20
aaaah... nu burde den være her:


<?php

if($_GET['slet'] == "besked") {
if($_GET['id']) {
  mysql_query("DELETE FROM gbog WHERE ID = '".$_GET['id']."' LIMIT 1");
}
}

if($_POST['skriv']){
if(!$_POST['navn']) {
echo "Du skal skrive et navn!";
}
elseif(!$_POST['kom']) {
echo "Du skal skrive en besked!";
}
else{
$_POST["kom"] = str_replace("<", "&lt;", $_POST["kom"]);
$_POST["kom"] = str_replace(">", "&gt;", $_POST["kom"]);
$_POST["kom"] = str_replace("\\", "\\\\", $_POST["kom"]);
mysql_query("INSERT INTO gbog (id, bruger, name, mail, comment) VALUES ('".$_POST['id']."','".$_GET['bruger']."','".$_POST['navn']."','".$_GET['email']."','".$_POST['kom']."')");
}
}
?>
<?
$query = mysql_query("SELECT * FROM gbog WHERE bruger='".$_GET['bruger']."' ORDER BY id DESC") or die(mysql_error());
while($row = mysql_fetch_array($query)) {
$row["COMMENT"] = str_replace("
", "<br />", $row["COMMENT"]);
$row["COMMENT"] = preg_replace( "#\[url=(.+?)\](.+?)\[/url\]#is", "<a target='_blank' href='\\1'>\\2</a>", $row["COMMENT"]);
$row["COMMENT"] = preg_replace( "#\[url\](.+?)\[/url\]#is", "<a target='_blank' href='\\1'>\\1</a>", $row["COMMENT"]);
$row["COMMENT"] = preg_replace( "#\[img\](.+?)\[/img\]#is", "<img src='\\1' alt='' border='0' />", $row["COMMENT"]);
$row["COMMENT"] = preg_replace( "#\[b\](.+?)\[/b\]#is", "<b>\\1</b>", $row["COMMENT"]);
$row["COMMENT"] = preg_replace( "#\[i\](.+?)\[/i\]#is", "<i>\\1</i>", $row["COMMENT"]);
$row["COMMENT"] = preg_replace( "#\[u\](.+?)\[/u\]#is", "<u>\\1</u>", $row["COMMENT"]);
echo "<table> <tr> <td class='comment'><b><a href='?side=profil/bruger.php&bruger=" .$row["name"]."'>".$row["name"] ."</a></b> <a href='?side=profil/gbog.php&bruger=" .$row["name"]."'>SVAR</a> <hr>".$row["COMMENT"] ."</td>";
if($navn == $row[bruger]) {            /* <---- Hvor $navn så er navnet på den bruger man er fx Peter. og $row[bruger] er navnet på den person hvis gæstebog peter kigger på. */
echo '<a href="dinside.php?slet=besked&id='.$row['id'].'">Slet besked</a>';
}
echo "</tr></table><br />";
}
?>
Avatar billede kack Nybegynder
22. december 2004 - 23:24 #21
hmm.. Nu mangler linket til at slette?
Avatar billede kack Nybegynder
22. december 2004 - 23:29 #22
Mig der lavede en dum fejl.. Havde glemt at skrive:

$navn = $_SESSION['bruger'];

i filen.
Avatar billede stefmeister Nybegynder
22. december 2004 - 23:30 #23
hehe
Avatar billede stefmeister Nybegynder
22. december 2004 - 23:34 #24
du kan også bare skrive

if($_SESSION['bruger'] == $row[bruger])

istedet. Så er det nemmere at holde styr på i længden. Da man ikke har for mange variabler der indeholder detsamme.
Avatar billede kack Nybegynder
23. december 2004 - 00:05 #25
der er stadig et problem :(

Det der link komemr kun frem nogle gange :(

Ved du hvorfor?
Avatar billede stefmeister Nybegynder
23. december 2004 - 01:23 #26
kommer det kun frem nogle gange?, altså ikke ved alle indlæg? eller er det nogle gange når man går ind på siden?
Avatar billede baitianlong Nybegynder
23. december 2004 - 01:37 #27
et lille råd, mens i roder med det... Brug ' ' i array-keys, uanset hvilke:

$row['blah']
$_GET['blah']
$_SERVER['blah']
$_SESSION['blah']

...det er sådan det skal skrives! :) ...god lille-juleaften
Avatar billede kack Nybegynder
23. december 2004 - 10:41 #28
stefmeiser: et kommer kun frem ved nogle beskeder. Ikke alle sammen. Og så kan en anden bruger også f.eks slette mine beskeder.
Avatar billede stefmeister Nybegynder
23. december 2004 - 16:04 #29
skriver du sådan her:

if($_SESSION['bruger'] == $row[bruger])


eller sådan her:

if($navn == $row[bruger]) ???
Avatar billede kack Nybegynder
23. december 2004 - 21:34 #30
if($_SESSION['bruger'] == $row[bruger]) {
Avatar billede stefmeister Nybegynder
24. december 2004 - 00:02 #31
hmm.... det lyder da mystisk... prøv at lave et dump af din tabel, så jeg kan prøve på min egen maskine hvad der kan være galt.
Avatar billede kack Nybegynder
24. december 2004 - 13:24 #32
lave en hvad for noget? :D Sorry.. Skal jeg bare kopire alle mine data fra min mysql tabel herind eller hvad? :D

Go' jul! ;)
Avatar billede stefmeister Nybegynder
24. december 2004 - 16:23 #33
ja... exportere den. Når man exportere en database, så får man et dump. Et dump fra databasen :D
Avatar billede kack Nybegynder
25. december 2004 - 12:40 #34
#
# Struktur dump for tabellen `gbog`
#

CREATE TABLE `gbog` (
  `id` int(11) NOT NULL auto_increment,
  `bruger` text NOT NULL,
  `name` text NOT NULL,
  `tid` text NOT NULL,
  `COMMENT` longtext NOT NULL,
  `dato` text NOT NULL,
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=12 ;

#
# Data dump for tabellen `gbog`
#

INSERT INTO `gbog` VALUES (9, 'Klubba', 'klubba', '11:12', 'dgdfgdgdfgsdgdfsgsdfgaglæjaglækjagl ajgæ kljg alkgjfl gkjafklgjaklæ dfgjlæakgjkladfjg læakfjgajækljdfgæiodfj goijdgiogjædojgiodrjgtadkogjjoæagiaioøå godf hgæaldhgæadklfhglæakdfhgoæadkgjoaidgj æaodgjækladfgj læakj flægkjadægijrjl asknfioHE FIHSAOFHSAÆGHAØOGIHIODHG DFLØHGLAKGJDFOIG AIOGD AKLDJGKLJOIAJG ØÅO', '23/12/2004');
INSERT INTO `gbog` VALUES (5, 'Mr-Xmas', 'kack', '00:32', 'Heh.. iorden :D\r\n\r\nSnakkes ;) ', '23/12/2004');
INSERT INTO `gbog` VALUES (10, 'Klubba', 'klubba', '11:12', 'Det var alle sammen tests :D', '23/12/2004');
INSERT INTO `gbog` VALUES (11, 'Kack', 'mr-xmas', '14:41', 'Jeg har magt over kack haha :D hehe :) ej hvad så kack :D', '23/12/2004');
Avatar billede stefmeister Nybegynder
25. december 2004 - 21:31 #35
Jeg er lige kommet hjem fra julefrokost, og skal på arbejde her om lidt, så kigger lige på det imorgen.
Avatar billede stefmeister Nybegynder
26. december 2004 - 15:57 #36
prøv at poste hele din kode...
Avatar billede kack Nybegynder
05. april 2005 - 20:29 #37
Har droppet det community, så i får begge point :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

Capgemini Danmark A/S

Market Segment Lead, CPRD

HusCompagniet A/S

Senior data engineer

Roskilde Universitet

AV Tekniker