Avatar billede scaniav8 Nybegynder
05. juli 2005 - 01:45 Der er 10 kommentarer og
2 løsninger

Chattekst > Privat beskeder hvordan?

Hej...

Jeg bruger denne kode til at vise min chattekst med:

$rest = mysql_query("SELECT * FROM textsystem WHERE rum = '$bruger[rum]' && time > $_SESSION[roomtxt] ORDER BY id DESC LIMIT 30");
while($rowt = mysql_fetch_array($rest)){
$txtbruger .= "$rowt[brugernavn]: ";
$txtbesked .= "<B>$rowt[brugernavn]: </b><font face=\"verdana=\" size=\"1\" color=\"#ffffff\">";
$txtbesked .= htmlentities($rowt[txt]);
$txtbesked .= "</font><br>";
}

Hvad gør jeg hvis den også skal vise Private beskeder?
Hvis det er en privat besked hedder feltet "privat = 1" hvis det ikke er privat, hedder feltet "privat = 0"
Avatar billede olebole Juniormester
05. juli 2005 - 02:08 #1
<ole>

Hmmm ... hvis den eneste oplysning, du har, er, at beskeden er privat, skal du nok have fat i funktionen clair_voyance_switch() - og sætte de mulige brugernavne ind som cases  ;o)

/mvh
</bole>
Avatar billede scaniav8 Nybegynder
05. juli 2005 - 02:10 #2
Har du andre forslag, end det jeg har givet? :)
Avatar billede coderdk Praktikant
05. juli 2005 - 02:39 #3
Well, den forespørgsel du har givet vil vise både private og ikke-private beskeder, eftersom du ikke har en WHERE privat = 0 ;)
Avatar billede coderdk Praktikant
05. juli 2005 - 02:40 #4
Ja, faktisk er beskederne ikke rigtig private, da alle kan se dem ;)
Avatar billede coderdk Praktikant
05. juli 2005 - 02:41 #5
Jeg ville ændre den til:

SELECT * FROM textsystem WHERE ( rum = '$bruger[rum]' AND time > $_SESSION[roomtxt] AND privat = 0 ) OR ( privat = 1 AND tilbruger = $bruger[id] ) ORDER BY id DESC LIMIT 30

Noget i den stil - Ved ikke hvordan din base er bygget op ;P
Avatar billede Slettet bruger
05. juli 2005 - 07:38 #6
Jeg ville nok bare lave et felt, som kan være tomt eller indeholde et ID på den bruger, beskeden er til. (Om det ID er et nummer eller navn er i princippet ligegyldigt i denne forbindelse.) Forespørgslen skal så bare have en betingelse i stil med:

WHERE modtager IS NULL OR modtager='$bruger[brugernavn]'
Avatar billede coderdk Praktikant
05. juli 2005 - 11:19 #7
Ja, jeg ville også vælge sandbox's metode - Og gøre det på brugerid da det performer bedre i databasen! :)
Jeg stemmer på sandbox!
Avatar billede cronaldo Nybegynder
07. juli 2005 - 11:27 #8
HVis du har lavet dit system med sessions, så når man logger ind, lav en session der hedder "id" ( $_SESSION['id'] ) og det er så brugerens eget id .. i din chat-tabel laver du så en der hedder "tilbruger", den skal, KUN HVIS DET ER PRIVAT, indeholde id'et på den bruger som beskeden er til. Derefter laver du en forfatter, lav den som det passer dig, dog hvis du bruger brugernavn skal du sørge for at der er en $_SESSION['brugernavn'] som indeholde den logget ind's brugernavn. Så til koden:

<? if($_SESSION['brugernavn'] == $tilbruger && $privat = "ja"){

} else if($tilid = $_SESSION['id']){

}
?>

(inde i de to løkker skal jo faktisk stå det samme, men jeg kunne ikke lige få det skrevet sammen, var lidt i tvivl om hvordan :-) .. )
Avatar billede Slettet bruger
07. juli 2005 - 16:02 #9
Tjah, der vil jeg igen komme med et modforslag:

while($rowt = mysql_fetch_array($rest)){
$txtbruger .= "$rowt[brugernavn]: ";
$txtbesked .= empty($rowt['modtager']) ? '<div class="privat besked">' : '<div class='besked'>';
$txtbesked .= "<span class='bruger'>$rowt[brugernavn]:</span> ";
$txtbesked .= htmlentities($rowt[txt]);
$txtbesked .= "</font><br>";
}

Og så skal der bare være lidt CSS:

.besked {
  color: white;
  margin: 0;
  padding: 0;
}
.privat {
  background: #666;
}
.besked .bruger {
  font-weight: bold;
  color: red;
}
Avatar billede Slettet bruger
07. juli 2005 - 16:03 #10
Hov, jeg glemte lige at fjerne den sidste $txtbesked .= "</font><br>"; som er blevet overflødig med mit forslag.
Avatar billede scaniav8 Nybegynder
08. juli 2005 - 20:09 #11
coderdk jeg brugte din metode :) læg et svar :)
Avatar billede coderdk Praktikant
08. juli 2005 - 21:37 #12
Nå ok, jeg ville selv have brugt sandbox' :)
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