Avatar billede BTEngineer Novice
18. april 2005 - 07:39 Der er 5 kommentarer og
1 løsning

Beskeder slet

Hej eksperter :-).

Jeg har en tagwall hvor jeg gerne ville have lavet sådan at hvis man er admin (ejer, redaktør) kan slette hver enkelt besked, og osse tømme hele tagwallen. Kan det ladde sig gøre?

Mit script ser således ud:

<?
session_start();
if (session_is_registered("brugernavn") AND ("kodeord")) {
include "config.php";
$hent = mysql_query("SELECT * FROM community_avis WHERE brugernavn = '$_SESSION[brugernavn]'") or die(mysql_error());
$vis = mysql_fetch_array($hent);
?>

<?
include("drop.php");
?>
<hr>
<?
if($_POST[action] == "skriv") {
if($_POST[tekst] == "") {
print "<font color=red>Du mangler at skrive en besked!</font><br><br>";
}else{
include "config.php";
$admin = mysql_query("SELECT * FROM community_avis WHERE brugernavn = '$_SESSION[brugernavn]'") or die(mysql_error());
$vis_admin = mysql_fetch_array($admin);

$navn = $_SESSION[brugernavn];
$farve = $_POST[farve];
$tekst = htmlspecialchars($_POST[tekst]);
$dato = date('d/m/Y H:i:s');
$ip = $_SERVER[REMOTE_ADDR];
mysql_query("INSERT INTO tagwall_avis (navn, dato, tekst, farve, ip) VALUES ('$navn', '$dato', '$tekst', '$farve', '$ip')");
}
}
?>

<b>Besked:</b><br>
<form action="index.php" method="post">
<input type="hidden" name="action" value="skriv">
<?
include "config.php";
$admin = mysql_query("SELECT * FROM community_avis WHERE brugernavn = '$_SESSION[brugernavn]'") or die(mysql_error());
$vis_admin = mysql_fetch_array($admin);
if($vis_admin[status] == "ejer") {
print "<input type='hidden' name='farve' value='BLUE'>";
}
if($vis_admin[status] == "redaktør") {
print "<input type='hidden' name='farve' value='#3C607E'>";
}
if($vis_admin[status] == "chef reporter") {
print "<input type='hidden' name='farve' value='GREEN'>";
}
if($vis_admin[status] == "reporter") {
print "<input type='hidden' name='farve' value='RED'>";
}
if($vis_admin[status] == "prøve reporter") {
print "<input type='hidden' name='farve' value='ORANGE'>";
}
if($vis_admin[status] == "reklamør") {
print "<input type='hidden' name='farve' value='77A07D'>";
}
if($vis_admin[status] == "normal") {
print "<input type='hidden' name='farve' value='BLACK'>";
}
if($vis_admin[status] == "supporter") {
print "<input type='hidden' name='farve' value='#4BB130'>";
}
?><input type="text" name="tekst" size="20" style="border: 1px solid #000000"><br>
<input type="submit" name="submit" value="Tag it" style="border:1px solid #000000; font-size:12; background-color:#FFFFFF">
<input type="reset" name="reset" value="Forfra" style="border-style: solid; border-width: 1px; font-size:12; background-color:#FFFFFF">&nbsp;
<button class="button" onclick="window.location='index.php'" style="font-size: 12; border: 1px solid #000000; background-color: #FFFFFF">
Opdater
</button></form>
<a href="index.php?vis=nyeste">Vis 20 nyeste</a> - <a href="index.php?vis=50nyeste">Vis 50 nyeste</a> - <a href="index.php?vis=alle">Vis alle</a>
<br>
<?

$num = mysql_query("SELECT * FROM tagwall_avis ORDER BY id DESC");
$all_tags = mysql_num_rows($num);
echo("Tags ialt <b>".$all_tags."</b>.");
?>
&nbsp;
<?
$query = mysql_query("SELECT * FROM tagwall_avis WHERE navn = '$_SESSION[brugernavn]'") or die(mysql_error());
$you_tags = mysql_num_rows($query);
echo("Du har skrevet <b>".$you_tags."</b> tags.");
?>
<br><br>
<?
if($_GET[vis] == "" OR $_GET[vis] == "nyeste") {
include("config.php");
$hent_beskeder = mysql_query("SELECT * FROM tagwall_avis ORDER BY id DESC LIMIT 20") or die(mysql_error());
while($vis_beskeder = mysql_fetch_array($hent_beskeder)) {
?>
<hr>
<a href="seprofil.php?brugernavn=<? echo $vis_beskeder[navn]; ?>"><b><font color="<? echo $vis_beskeder[farve]; ?>"><? echo $vis_beskeder[navn]; ?></font></b></a>
- D. <? echo $vis_beskeder[dato]; ?><br>
<? echo $vis_beskeder[tekst]; ?><br>
<?
}
}
if($_GET[vis] == "alle") {
include "config.php";
$hent_beskeder = mysql_query("SELECT * FROM tagwall_avis ORDER BY id DESC") or die(mysql_error());
while($vis_beskeder = mysql_fetch_array($hent_beskeder)) {
?>
<hr>

<a href="seprofil.php?brugernavn=<? echo $vis_beskeder[navn]; ?>"><b><font color="<? echo $vis_beskeder[farve]; ?>"><? echo $vis_beskeder[navn]; ?></font></b></a>
- D. <? echo $vis_beskeder[dato]; ?><br>
<? echo $vis_beskeder[tekst]; ?><br>
<?
}
}
if($_GET[vis] == "50nyeste") {
include "config.php";
$hent_beskeder = mysql_query("SELECT * FROM tagwall_avis ORDER BY id DESC LIMIT 50") or die(mysql_error());
while($vis_beskeder = mysql_fetch_array($hent_beskeder)) {
?>
<hr>

<a href="seprofil.php?brugernavn=<? echo $vis_beskeder[navn]; ?>"><b><font color="<? echo $vis_beskeder[farve]; ?>"><? echo $vis_beskeder[navn]; ?></font></b></a>
- D. <? echo $vis_beskeder[dato]; ?><br>
<? echo $vis_beskeder[tekst]; ?><br>
<?
}
}
?>

</html><?
}else{
print "<link rel='stylesheet' HREF='style.css' type='text/css'><font color=red>Du skal være logget ind for at kunne skrive i tagwallen!</font>";
}
?>

Håber nogen kan hjælpe. Det må gerne stå sådan her vedsiden af navnet f.eks. Dounie - d. 18/04/2005 - Slet besked

Tak på forhånd.
Avatar billede kasperbn Nybegynder
18. april 2005 - 13:55 #1
Hej dounie

Du kan ud for hver tag tjekke om brugeren er "admin". Hvis han er det gør du en sletknap/link synlig. På samme måde kan du lave en knap/link der hedder "Ryd tagwall'en" for oven eller i én af siderne. Du kan lige få lidt pseudo-kode:

#### ØVERST OPPE TJEKKER DU OM ADMIN HAR SLETTET EN TAG####
if($delete_tag) {
  deletetagfunc($delete_tag);
}

if($delete_alltags) {
  deletealltagsfunc();
}

### Nu tjekker du om brugeren er admin ###
if($brugernavn == "admin") {
  echo '<a href="?delete_alltags=yes">Slet hele Tagwallen</a>';
}

### I den løkke hvor du henter alle tag'sene ud skal du også tjekke om der er admin
### så du kan tilføje et slet link:

if($brugernavn == "admin") {
  echo '<a href="?delete_tag="'.$løkke_array['id'].'">Slet denne tag</a>';
}


Håber det gav dig lidt inspiration til at komme videre...
Avatar billede BTEngineer Novice
18. april 2005 - 16:19 #2
Virker ikke :-/

Fatal error: Call to undefined function: deletetagfunc() in /hsphere/local/home/dounie/dounie.dk/avis/tagwall/index.php on line 20
Avatar billede kasperbn Nybegynder
18. april 2005 - 17:15 #3
Nej det virker ikke. Det er pseudo-kode som bare skitserer opbyggningen af koden.
Det var ment som en guidende hånd, så du selv kan tilpasse det alt efter hvad dine variabler hedder osv.

deletetagfunc() er en funktion som du enten kan lave eller simpelthen bare slette og erstatte af den kode der slettet tag'en. F.eks:

function deletetagfunc($delete_id) {
  mysql_query("DELETE FROM dintabel WHERE id = $delete_id");
}

Eller bare:
mysql_query("DELETE FROM dintabel WHERE id = $dintagidvar");
Avatar billede BTEngineer Novice
18. april 2005 - 17:41 #4
hvordan skal jeg lave det for at det kan komme til at virke ;S
Avatar billede flim Nybegynder
18. april 2005 - 17:45 #5
kasperbn...

Det bliver en sej en den her... Du må hellere gå et trin ned og tage det lidt mere besalt :-)
Avatar billede BTEngineer Novice
19. april 2005 - 07:57 #6
close :-/
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