Avatar billede pennypacker Nybegynder
14. juli 2007 - 12:39 Der er 23 kommentarer og
1 løsning

Besked vises ikke. Lidt hjælp til kodning.

Hej jeg har et problem i mit besked system. Når man har modtaget en besked og vil læse den kan man hverken se navnet på afsender eller beskeden?

En der er flink lige at kigge koden igennem

<?php
include "../admin/var.php";
include '../connect.php';
session_start();
?>
<?php
if (isset($_SESSION['user']))
  {
    $getuser="SELECT * from b_users a, b_templates b where b.templateid=a.templateclass and a.username='$user'";
    $getuser2=mysql_query($getuser) or die("Could not get user info");
    $getuser3=mysql_fetch_array($getuser2);
    $templateclass=$getuser3['templatepath'];
    print "<center>";
    if($usepms=="Yes")
    {
      $ID=$_GET['ID'];
      $getpm="SELECT * from b_pms as a, b_users as b where a.pmID='$ID' and a.receiver='$getuser3[userID]' and b.userID=a.sender";
      $getpm2=mysql_query($getpm) or die("Could not get pm");
      $getpm3=mysql_fetch_array($getpm2);
      print "<center><A href='pm.php'>Tilbage til index</a>-<A href='replypm.php?ID=$ID'>Svar</a></center>";
      print "<center><center>PM from $getpm3[playername](#$getpm3[pmID])</center>";
      $getpm3[message]=strip_tags($getpm3[message]);
      $getpm3[message]=htmlspecialchars($getpm3[message]);
      $getpm3[message]=nl2br($getpm3[message]);
      print "$getpm3[message]";
      $updatenote="Update b_pms set hasread='1' where pmID='$ID' and receiver='$getuser3[userID]'";
      mysql_query($updatenote) or die(mysql_error());
    }
    else
    {
      print "Privat beskeder er slået fra.";
    } 
   
  }
else
  {
    print "Du er ikke logget ind. <A href='../login.php'>Klik her for at logge ind</a><br>";
 
  }

?>

Tusind tak
Avatar billede dkfire Nybegynder
14. juli 2007 - 13:01 #1
prøv at rette:
$getpm="SELECT * from b_pms as a, b_users as b where a.pmID='$ID' and a.receiver='$getuser3[userID]' and b.userID=a.sender";

til:
getpm="SELECT * from b_pms as a, b_users as b where a.pmID='$ID' and a.receiver='{$getuser3['userID']}' and b.userID=a.sender";

Og
print "<center><center>PM from $getpm3[playername](#$getpm3[pmID])</center>";
Til:
print "<center><center>PM from {$getpm3['playername']}(#{$getpm3['pmID']})</center>";

Og
print "$getpm3[message]";
til
print $getpm3['message'];

Og sidst:
$updatenote="Update b_pms set hasread='1' where pmID='$ID' and receiver='$getuser3[userID]'";
til
$updatenote="Update b_pms set hasread='1' where pmID='$ID' and receiver='{$getuser3['userID']}'";
Avatar billede pennypacker Nybegynder
14. juli 2007 - 13:28 #2
nu viser den ikke siden :)
Avatar billede pennypacker Nybegynder
15. juli 2007 - 01:00 #3
har du/i andre forslag til hvad der er galt? jeg er ikke lige så skrap til php/mysql så håber i vil hjælpe
Avatar billede dkfire Nybegynder
15. juli 2007 - 12:20 #4
viser ikke siden ??
Avatar billede dkfire Nybegynder
15. juli 2007 - 12:22 #5
Hvordan ser din kode ud nu ??
Avatar billede pennypacker Nybegynder
15. juli 2007 - 15:21 #6
altså nu slettede jeg bare det som du skrev jeg skulle rette i pga siden ikke ville vises, så den liger den jeg har skrevet først.

Koden ser sådan her ud med dine opdateringer.

<?php
include "../admin/var.php";
include '../connect.php';
session_start();
?>
<?php
if (isset($_SESSION['user']))
  {
    $getuser="SELECT * from b_users a, b_templates b where b.templateid=a.templateclass and a.username='$user'";
    $getuser2=mysql_query($getuser) or die("Could not get user info");
    $getuser3=mysql_fetch_array($getuser2);
    $templateclass=$getuser3['templatepath'];
    print "<center>";
    if($usepms=="Yes")
    {
      $ID=$_GET['ID'];
      getpm="SELECT * from b_pms as a, b_users as b where a.pmID='$ID' and a.receiver='{$getuser3['userID']}' and b.userID=a.sender";
      $getpm2=mysql_query($getpm) or die("Could not get pm");
      $getpm3=mysql_fetch_array($getpm2);
      print "<center><A href='pm.php'>Tilbage til index</a>-<A href='replypm.php?ID=$ID'>Svar</a></center>";
      print "<center><center>PM from {$getpm3['playername']}(#{$getpm3['pmID']})</center>";
      $getpm3[message]=strip_tags($getpm3[message]);
      $getpm3[message]=htmlspecialchars($getpm3[message]);
      $getpm3[message]=nl2br($getpm3[message]);
      print $getpm3['message'];
      $updatenote="Update b_pms set hasread='1' where pmID='$ID' and receiver='{$getuser3['userID']}'";
      mysql_query($updatenote) or die(mysql_error());
    }
    else
    {
      print "Privat beskeder er slået fra.";
    } 
   
  }
else
  {
    print "Du er ikke logget ind. <A href='../login.php'>Klik her for at logge ind</a><br>";
 
  }

?>
Avatar billede dkfire Nybegynder
15. juli 2007 - 18:25 #7
Du mangler et $ ved getpm="SELECT *.....
$getpm="SELECT * from b_pms as a, b_users as b where a.pmID='$ID' and a.receiver='{$getuser3['userID']}' and b.userID=a.sender";

beklager, kan se det er mig som ikke lige fik det med i mine rettelser.

Det kunne måske lige være en ide at lidt forskellige tjeks undervejs.

if (isset($_SESSION['user']))
  {
    echo "Du er logget ind";

og

if($usepms=="Yes")
    {
      echo "Private beskeder er slået til <br />";

og

$getuser2=mysql_query($getuser) or die("Could not get user info");
echo "Antal rækker ved første query: ".mysql_num_rows($getuser)."<br />";

og

$getpm2=mysql_query($getpm) or die("Could not get pm");
echo "Antal rækker ved anden query: ".mysql_num_rows($getpm2)."<br />";

Prøv dette her og se hvad den siger, det skulle meget gerne give en ide om alt går som du forventer.
Avatar billede dkfire Nybegynder
15. juli 2007 - 18:28 #8
Grunden til at jeg satte {} rundt om dine variabler er at når du bruger et array inden for "" skal der {} omkring, således:
echo " $variabel, {$array['foerste']}" og ikke:
echo " $variabel, $array[foerste]"
Avatar billede pennypacker Nybegynder
16. juli 2007 - 14:36 #9
Ok nu viser den siden igen. Men den viser dtadig ikke nyheden. Tror problemet er at den ikke får de rigtige informationer fra mysql
Avatar billede dkfire Nybegynder
16. juli 2007 - 16:48 #10
Hvis du gerne vil vide hvad den henter fra mysql så prøv at skrive print_r($getpm3); efter $getpm3=mysql_fetch_array($getpm2);
Avatar billede dkfire Nybegynder
16. juli 2007 - 16:53 #11
Den skulle også meget gerne skrive hvor mange rækker som den henter hver gang du spørger databasen.
Avatar billede pennypacker Nybegynder
16. juli 2007 - 17:34 #12
den viser slet ikke noget.
koden er indsat korrekt.
    $getuser2=mysql_query($getuser) or die("Could not get user info");
    $getuser3=mysql_fetch_array($getuser2);
    print_r($getpm3);
    $templateclass=$getuser3['templatepath'];
Avatar billede dkfire Nybegynder
17. juli 2007 - 01:26 #13
Nej du har sat den ind for tidligt.
Det skal være efter $getpm3=mysql_fetch_array($getpm2);

Lige et andet spørgsmål, hvilken host har du ??
Avatar billede pennypacker Nybegynder
17. juli 2007 - 14:28 #14
nu er den sat rigtig ind :) men siden vises ikke.
      $getpm2=mysql_query($getpm) or die("Could not get pm");
      $getpm3=mysql_fetch_array($getpm2);
      print_r($getpm3);

bruger one.com du kan se siden på www.gadgetgirl.dk men du er nød til at oprette en profil også gå ind under indbakke
Avatar billede dkfire Nybegynder
17. juli 2007 - 19:29 #15
hmm har du husket at så errors til i dit kontrolpanel hos one.com
Siden har sikkert en fejl, men som standart er fejlbeskeder slået fra hos one.com. Du skal selv ind og slå dem til.
Avatar billede pennypacker Nybegynder
18. juli 2007 - 15:22 #16
fik rettet fejlen, men den viser ikke hvad den henter fra mysql?

<?php
if (isset($_SESSION['user']))
  {

    $getuser="SELECT * from b_users a, b_templates b where b.templateid=a.templateclass and a.username='$user'";
    $getuser2=mysql_query($getuser) or die("Could not get user info");
    $getuser3=mysql_fetch_array($getuser2);
    $templateclass=$getuser3['templatepath'];
    print "<center>";
    if($usepms=="Yes")
    {
      $ID=$_GET['ID'];
      $getpm="SELECT * from b_pms as a, b_users as b where a.pmID='$ID' and a.receiver='{$getuser3['userID']}' and b.userID=a.sender";
      $getpm2=mysql_query($getpm) or die("Could not get pm");
      $getpm3=mysql_fetch_array($getpm2);
      print_r($getpm3);
      print "<center><A href='pm.php'>Tilbage til index</a>-<A href='replypm.php?ID=$ID'>Svar</a></center>";
      print "<center><center>PM from {$getpm3['playername']}(#{$getpm3['pmID']})</center>";
      $getpm3[message]=strip_tags($getpm3[message]);
      $getpm3[message]=htmlspecialchars($getpm3[message]);
      $getpm3[message]=nl2br($getpm3[message]);
      print $getpm3['message'];
      $updatenote="Update b_pms set hasread='1' where pmID='$ID' and receiver='{$getuser3['userID']}'";
      mysql_query($updatenote) or die(mysql_error());
    }
    else
    {
      print "Privat beskeder er slået fra.";
    } 
   
  }
else
  {
    print "Du er ikke logget ind. <A href='../login.php'>Klik her for at logge ind</a><br>";
 
  }

?>
Avatar billede dkfire Nybegynder
19. juli 2007 - 12:27 #17
Har du slået fejlbeskeder til i dit kontrolpanel ???
Avatar billede pennypacker Nybegynder
19. juli 2007 - 15:17 #18
ja det har jeg :)
Avatar billede dkfire Nybegynder
19. juli 2007 - 17:17 #19
prøv at skrive:

echo $getpm;

efter $getpm="SELECT * from b_pms as a, b_users as b where a.pmID='$ID' and a.receiver='{$getuser3['userID']}' and b.userID=a.sender";

Fordi et eller andet må din side jo skrive ud. Med det du viser mig så skal den som minimum udskrive <center>
Avatar billede pennypacker Nybegynder
20. juli 2007 - 14:26 #20
den skriver bare:
SELECT * from b_pms as a, b_users as b where a.pmID='3' and a.receiver='' and b.userID=a.sender
Tilbage til index-Svar
PM from (#)

Tor den henter de helt forkerte oplysninger fra mysql
Avatar billede dkfire Nybegynder
21. juli 2007 - 11:20 #21
Se problemet er at $getuser3['userID'] ikke har nogen værdi. Det må betyde at den ikke henter den rigtige række ved første forespørgelse.
Hvor sætter du værdien af $user henne ??

Prøv at skrive:
echo $getuser;

efter $getuser="SELECT * from b_users a, b_templates b where b.templateid=a.templateclass and a.username='$user'";

og prøv at skrive
echo "Antal rækker ved første query: ".mysql_num_rows($getuser)."<br />";

efter $getuser2=mysql_query($getuser) or die("Could not get user info");
Avatar billede pennypacker Nybegynder
21. juli 2007 - 12:51 #22
får denne fejl.
SELECT * from b_users a, b_templates b where b.templateid=a.templateclass and a.username=''
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /customers/gadgetgirl.dk/gadgetgirl.dk/httpd.www/board/pm/readpm.php on line 13
Antal rækker ved første query:

SELECT * from b_pms as a, b_users as b where a.pmID='3' and a.receiver='' and b.userID=a.sender


    $getuser="SELECT * from b_users a, b_templates b where b.templateid=a.templateclass and a.username='$user'";
    echo $getuser;
    $getuser2=mysql_query($getuser) or die("Could not get user info");
    echo "Antal rækker ved første query: ".mysql_num_rows($getuser)."<br />";
    $getuser3=mysql_fetch_array($getuser2);
Avatar billede pennypacker Nybegynder
21. juli 2007 - 17:32 #23
hehe noget meget meget mærkeligt er sket. Ligepludselig virker det som det skal?? uden jeg har gjort noget?, men det er jo bare dejligt. Du må dog gerne få points da du har været så flink at hjælpe mig :)
Avatar billede pennypacker Nybegynder
22. marts 2011 - 22:34 #24
luk
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