slet funktion virker ikke i min ind- og udbakke - intern mail

Tags:    php

i mit bruger system jeg har fået lavet er der intern besked system i med ind- og udbakke hvor man kan slette de beskeder man har fået og sendt

men slet funktion virker ikke helt
når man sletter i indbakke bliver den slettet vist i udbakke og omvendt

indbakke.php

<?
session_start();
if (session_is_registered("brugernavn") AND ("kodeord") AND ("logintid")) {
?>

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>New Page 1</title>
<link rel="stylesheet" type="text/css" href="css.css">
</head>

<body>
<?
include "mysql/mysql.php";
if($_GET[id] != "") {

$slet = mysql_query("UPDATE post SET slettet = 'ja' WHERE ID = '$_GET[id]'") or die(mysql_error());
print "beskeden er nu slettet!";
}
?>
<br><br>
<?
include "mysql/mysql.php";
$hent_breve = mysql_query("SELECT * FROM post WHERE modtager = '$_SESSION[brugernavn]' AND slettet = 'nej'") or die(mysql_error());
while($vis = mysql_fetch_array($hent_breve)) {
?>


til: <? echo $vis[afsender]; ?> - Sendt: <? echo $vis[dato]; ?> - <a href="laes.php?id=<? echo $vis[ID]; ?>">Læs brev</a> - <a href="indbakke.php?id=<? echo $vis[ID]; ?>">Slet</a>
<br>


<?
}
?>

</body>

</html>
<?
}else{
print "Du er ikke logget ind!";
}
?>


udbakke.php

<?
session_start();
if (session_is_registered("brugernavn") AND ("kodeord") AND ("logintid")) {
?>

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>New Page 1</title>
<link rel="stylesheet" type="text/css" href="css.css">
</head>

<body>
<?
include "mysql/mysql.php";
if($_GET[id] != "") {

$slet = mysql_query("UPDATE post SET slettet = 'nej' WHERE ID = '$_GET[id]'") or die(mysql_error());
print "beskeden er nu slettet!";
}
?>
<br><br>
<?
include "mysql/mysql.php";
$hent_breve = mysql_query("SELECT * FROM post WHERE afsender = '$_SESSION[brugernavn]' AND slettet = 'ja'") or die(mysql_error());
while($vis = mysql_fetch_array($hent_breve)) {
?>


til: <? echo $vis[modtager]; ?> - Sendt: <? echo $vis[dato]; ?> - <a href="laesudbakke.php?id=<? echo $vis[ID]; ?>">Læs brev</a> - <a href="udbakke.php?id=<? echo $vis[ID]; ?>">Slet</a>
<br>


<?
}
?>

</body>

</html>
<?
}else{
print "Du er ikke logget ind!";
}
?>


min sql


CREATE TABLE `post` (
`ID` int(10) unsigned NOT NULL auto_increment,
`afsender` varchar(100) NOT NULL default '',
`modtager` varchar(100) NOT NULL default '',
`dato` varchar(100) NOT NULL default '',
`emne` varchar(100) NOT NULL default '',
`tekst` varchar(100) NOT NULL default '',
`status` varchar(100) NOT NULL default '',
`slettet` varchar(100) NOT NULL default 'nej',
PRIMARY KEY (`ID`)
) TYPE=MyISAM AUTO_INCREMENT=2 ;





7 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 6 karma
Sorter efter stemmer Sorter efter dato
nu vises den i både i ind og udbakke men når jeg sletter i feks udbakke sletter den nogså den i indbakke

nu ser min ind- og udbakke sådan her ud

indbakke.php
Fold kodeboks ind/udKode 



Selvfølgelig vil beskeden blive slettet begge steder, da du bruger samme tabel til både ind- og udbakke! En løsning, men ret primitiv, ville være at oprette en ny kolonne i din tabel med f.eks. navnet "sletudbakke", og omdøbe din "slet" kolonne til "sletindbakke".....
Når du så sletter din indbakke.php, skal du redigere i "sletindbakke" .... og når du sletter i udbakke.php, skal du redigere i "sletudbakke"....

Fold kodeboks ind/udKode 

________________
Hilsen CHadi
Mit lykketal er 2959



Det virker fint, men i dine test beskeder har du modtager og afsender til at være den samme, nemlig dig selv.

Når en besked er slettet og afsender er dig selv, er den i udbakke.
Når den ikke er slettet og modtager er dig selv, er den i indbakke.

Problemet er at du fjerner beskeder ved at ændre om de er slettede eller ej, så de blot ikke er synlige mere.

Problemet vil ikke opleves hvis du ikke har beskeder hvor modtager og afsender er samme person.

Et alternativ til denne fremgangs måde er at benytte slettet til noget andet end at identificere udbakke på.

Til en start kunne du ændre det så begge bakker kun ser dem der ikke er slettede, og inden der slettes er slettet sat til 'nej', bagefter 'ja'.

Så har du ikke dette problem, men dine mails fra dig selv til dig selv vil optræde i begge bakker, og det er jo også ok ..

mere normale beskeder fra en anden til dig vil være i indbakken og kun der, mens beskeder fra dig og til en anden vil kun optræde i din udbakke.



[Redigeret d. 21/03-05 15:51:02 af Jonatan Hertel]



nu er det sådan at jeg ikke særlig god til php så jeg ved ikke hvad jeg skal gøre!

så gider du evt rette det så det virker?



nu vises den i både i ind og udbakke men når jeg sletter i feks udbakke sletter den nogså den i indbakke

nu ser min ind- og udbakke sådan her ud

indbakke.php
<?
session_start();
if (session_is_registered("brugernavn") AND ("kodeord") AND ("logintid")) {
?>

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>New Page 1</title>
<link rel="stylesheet" type="text/css" href="css.css">
</head>

<body>
<?
include "mysql/mysql.php";
if($_GET[id] != "") {

$slet = mysql_query("UPDATE post SET slettet = 'ja' WHERE ID = '$_GET[id]'") or die(mysql_error());
print "beskeden er nu slettet!";
}
?>
<br><br>
<?
include "mysql/mysql.php";
$hent_breve = mysql_query("SELECT * FROM post WHERE modtager = '$_SESSION[brugernavn]' AND slettet = 'nej'") or die(mysql_error());
while($vis = mysql_fetch_array($hent_breve)) {
?>


fra: <? echo $vis[afsender]; ?> - Sendt: <? echo $vis[dato]; ?> - <a href="laes.php?id=<? echo $vis[ID]; ?>">Læs brev</a> - <a href="indbakke.php?id=<? echo $vis[ID]; ?>">Slet</a>
<br>


<?
}
?>

</body>

</html>
<?
}else{
print "Du er ikke logget ind!";
}
?>

udbakke.php

<?
session_start();
if (session_is_registered("brugernavn") AND ("kodeord") AND ("logintid")) {
?>

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>New Page 1</title>
<link rel="stylesheet" type="text/css" href="css.css">
</head>

<body>
<?
include "mysql/mysql.php";
if($_GET[id] != "") {

$slet = mysql_query("UPDATE post SET slettet = 'ja' WHERE ID = '$_GET[id]'") or die(mysql_error());
print "beskeden er nu slettet!";
}
?>
<br><br>
<?
include "mysql/mysql.php";
$hent_breve = mysql_query("SELECT * FROM post WHERE afsender = '$_SESSION[brugernavn]' AND slettet = 'nej'") or die(mysql_error());
while($vis = mysql_fetch_array($hent_breve)) {
?>


til: <? echo $vis[modtager]; ?> - Sendt: <? echo $vis[dato]; ?> - <a href="laesudbakke.php?id=<? echo $vis[ID]; ?>">Læs brev</a> - <a href="udbakke.php?id=<? echo $vis[ID]; ?>">Slet</a>
<br>


<?
}
?>

</body>

</html>
<?
}else{
print "Du er ikke logget ind!";
}
?>




Det bliver værre og værre det her.

Sagen er den at du har nogle beskeder hvor modtager er den samme som afsender!

Sådanne beskeder vil optræde både i udbakken og indbakken.

Så er der ikke mere at sige til det!

Hvis du vil have at udbakken ikke skal være det samme som sendt, men skal være det der skal sendes, skal du lave om på din arkitektur.

Inden du gør andet, så prøv at fjerne dine test beskeder, og lave nogle nye hvor afsender ikke er den samme som modtager, og se hvordan det fungerer.
Jeg tror det virker fint.



nu er det sådan at jeg ikke særlig god til php så jeg ved ikke hvad jeg skal gøre!

Jamen, er det ikke det du gerne vil blive?
Du lærer jo kun af at forsøge selv.
så gider du evt rette det så det virker?

Nej, egentligt ikke, for det ville være en bjørnetjeneste, for så ville du ikke lære ret meget.
Hvis du har problemer med at dele opgaven op i mindre bidder eller har et spørgsmål, så endelig kom med detaljerne og så skal du få al den hjælp du vil have.
Hvis du ved hvad du vil men ikke helt hvordan, kan jeg eller andre måske komme med nogle bud eller fortælle hvad vi ved er reelle muligheder.

Men bare at få en gang kode i nakken er vel ikke hvad du kommer efter, for så kunne du jo også bare finde et open source projekt der allerede virker og rippe koden derfra hvis du vil sætte et særligt præg på det, eller lade det være som det er.

Hvis man vil gøre det selv, må man vel i det mindste lave lidt af det selv :)



tak det virker CHadi




t