Avatar billede jens12 Nybegynder
19. november 2006 - 21:31 Der er 2 kommentarer og
1 løsning

Problem med gæstebog (privat funktion)

Heej jeg har et community basseret på SESSIONS og mysql:).
Og nu er jeg kommet til den del hvor man skal kunne se sine sendte privat beskeder i modtagerens gæstebog..Men problemmet er bare at den viser privat beskeden når man ikke er logget ind!..
Hvad kan det skyldes ?
    <?
// how many rows to show per page
$rowsPerPage = 5;

// by default we show first page
$pageNum = 1;

// if $_GET['page'] defined, use it as page number
if(isset($_GET['page']))
{
    $pageNum = $_GET['page'];
}
// counting the offset
$offset = ($pageNum - 1) * $rowsPerPage;
    $til = $_GET['til'];
$q2 = mysql_query("SELECT * FROM gb WHERE til = '$til' ORDER BY id DESC LIMIT $offset, $rowsPerPage")or die(mysql_error());//henter beskederne
while($r = mysql_fetch_array($q2)){
$hent_brugernavn = mysql_query("SELECT * FROM login WHERE id = '".$r[afsender]."'") or die(mysql_error());
while($fb = mysql_fetch_array($hent_brugernavn)){  //henter brugernavne ud fra afsenderes id..
if($r['afsender'] == $_SESSION['id'] && $r['privat'] == "1"){
    ?>       
//vis besked hvis beskeden er privat og afsenderen er lig med den bruger man er logget ind..
<?
}else if($r['afsender'] == $_SESSION['id'] && $r['privat'] == ""){
?>
//vis besked hvis den ikke er privat men modtageren er den samme som den bruger som er logget ind
<?
}else{
?>
//vis besked hvis afsenderen ikke er den samme som den bruger man er logget ind..
Håber i forstår.
Avatar billede ellebaek Nybegynder
19. november 2006 - 22:18 #1
else if($r['afsender'] == $_SESSION['id'] && $r['privat'] == ""){

det er fordi denne if ikke bliver sand. så bliver beskeden udskrevet nede i din else i stedet.
//vis besked hvis afsenderen ikke er den samme som den bruger man er logget ind..

while($fb = mysql_fetch_array($hent_brugernavn)){  //henter brugernavne ud fra afsenderes id..
if($r['afsender'] == $_SESSION['id']){
  if ($r['privat'] == "1") {
  ?>     
  //vis besked hvis beskeden er privat og afsenderen er lig med den bruger man er logget ind..
  <?
  }
  else {
  ?>
  //vis besked hvis den ikke er privat men modtageren er den samme som den bruger som er logget ind
  <?
  }
}else{
if ($r['privat'] == "") {
?>
//vis besked hvis afsenderen ikke er den samme som den bruger man er logget ind..

Jeg har lavet den lidt om nu.

problemet før var: at da du ikke var logget ind, så ville din IF-aldrig blive sand. og derfor ville du havne i din else.
nu har jeg så i din else sat en restriktion på at privat skal være "", altså kun offentlige meddelser vises her.

Så skal du selv smide en } på efter udskriften i else delen. altså efter:
//vis besked hvis afsenderen ikke er den samme som den bruger man er logget ind..

håber det er forståeligt.
Avatar billede jens12 Nybegynder
20. november 2006 - 14:14 #2
Tak det virkede!..Ligger du et svar ? (:
Avatar billede ellebaek Nybegynder
20. november 2006 - 18:07 #3
jeg smider et svar her..

Glad for jeg kunne hjælpe..
..Ellebæk!
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