Ankündigung

Einklappen
Keine Ankündigung bisher.

Anzeige einer Nachricht im Nachrichtensystem

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Anzeige einer Nachricht im Nachrichtensystem

    Hallo,
    ich habe ein Problem mit meinem eigengebauten Nachrichtensystem...
    Ich merke an, dass das Nachrichtensystem unfassbar klein und einfach gehalten ist, da ich ein Php Anfänger bin, und nichts scripten möchte, was ich nicht "verstehe"...

    Und zwar wird im "Posteingang" sozusagen, der Nachrichtenverlauf circa so dargestellt:

    Absender | Empfänger | Titel
    Ich | Du | er / sie / es

    Was jetzt noch nicht funktioniert, ist, dass wenn ich auf eine Nachricht klicke, die Message davon angezeigt wird.... Also praktisch
    Code:
    <a href="Nachricht mit der ID 1">Ich | Du | er / sie / es</a>
    Mein bisheriger Code wäre Folgender:

    PHP-Code:

    <?php

    $verbindung 
    mysql_connect("localhost""...." "....")
    or die(
    "Verbindung zur Datenbank konnte nicht hergestellt werden");
    mysql_select_db("....") or die ("Datenbank konnte nicht ausgewählt werden");
    ?>

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">

    <html>
    <head><title>.....</title>
    ......
    ........
    </head>
    <body background="bg3.jpg">


    <?php

        
        
            
    echo "<div id = \"mainbox\">";
            echo 
    "<form action=\"#\" method=\"post\"><center><input type=\"submit\" name=\"newmessage\" value=\"Neue Nachricht\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type=\"submit\" name=\"empfmessage\" value=\"Empfangene Nachrichten\">&nbsp;&nbsp;&nbsp;&nbsp;<input type=\"submit\" name=\"sentmessage\" value=\"Gesendete Nachrichten\"></center></form>";
            if ( isset(
    $_POST["newmessage"]) )
            { echo 
    "<div style=\"width:95%; height:40%; position:relative; left:10px; top:10px; padding-left:10px; padding-right:10px; padding-top:10px; padding-bottom:10px; border:1px solid;\" align=\"left\"><form action=\"#\" method=\"post\">Empf&auml;nger:&nbsp;<input type=\"text\" name=\"empf\" size=\"20\" maxlenght=\"30\"></br></br></br>Titel:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type=\"text\" name=\"title\" size=\"27\" maxlength=\"35\"></br></br></br>Nachricht:&nbsp;&nbsp;&nbsp;<textarea name=\"write\" cols=\"85\" rows=\"25\" maxlength=\"3000\"></textarea></br></br><center><input type=\"submit\" name=\"writemessage\" value=\"Nachricht senden\"></center></form></div>"; }
            elseif ( isset(
    $_POST["empfmessage"]) )
            { echo 
    "<div style=\"width:95%; height:40%; position:relative; left:10px; top:10px; padding-left:10px; padding-right:10px; padding-top:10px; padding-bottom:10px; border:1px solid;\" align=\"left\">";
            
           
            



              
    #echo "<tr><td>".$row->fromuser."</td>"."<td>".$row->touser."</td>"."<td>".$row->messagetitle."</td>"."</tr>";
           
      
    $db ".....";
    $select "SELECT * FROM pmsystem WHERE touser LIKE '$_SESSION[username]'";
    $result mysql_query($select,$verbindung);
    if(
    $result){


     echo 
    "<table>";

    echo 
    "<tr><td>Absender</td><td>Empf&auml;nger</td><td>Titel</td></tr>";
     while(
    $row mysql_fetch_assoc($result)){
      echo 
    "<tr><td>".$row['fromuser']."</td>";
      echo 
    "<td>".$row['touser']."</td>";
      echo 
    "<td>".$row['messagetitle']."</td></tr>";
      </
    td></tr>";

     }
     echo "
    </table>";
    }
      echo "
    </div>";
            
            }
            else {}
            if ( isset(
    $_POST["writemessage"]) )
            { mysql_query("
    INSERT INTO pmsystem ( `fromuser`, `touser`, `mainmessage`, `messagetitle` ) VALUES '$_SESSION[username]''$_POST[empf]''$_POST[write]''$_POST[title]' )"); echo "<h2>Deine Nachricht wurde versendet..</h2>"; }
            echo "
    </div>";
            

    ?>

    ....
    ......
    ........

    </body>
    </html>
    Ich wäre für jede Hilfe, bzw jeden Tipp sehr dankbar.

  • #2
    Diese Zeile
    </td></tr>";
    hat ihr echo verloren, weshalb das Script abbrechen wird.

    Zu deinen SQL-Operationen:
    a) Die mysql_* Befehle sind veraltet. Benutze mysqli_* oder PDO
    b) Schreibe niemals SELECT *, sondern schreibe immer alle Spalten auf, die du benötigst, also z.B. SELECT id,fromuser,touser,messagetitle FROM ...
    c) du benötigst einen Link, mit dem du die dann anzuzeigende Message mittels SELECT ... FROM ... WHERE id = auslesen kannst. Dein Link muss also die id der anzuzeigenden Message enthalten.
    [PHP]if ($var != 0) {
    $var = 0;
    }[/PHP]

    Kommentar


    • #3
      Oh, die Zeile die ihr echo verloren hat, hat dieses erst bei der Bearbeitung hier fürs Forum verloren, entschuldige
      a) Danke für den Tipp..
      b) Hat es einen Grund, dass man nicht SELECT * schreiben soll? Weil ich alle Spalten benötige und es als einfacher empfand jede einzelne manuell einzutragen...

      c) Also lege ich mir praktisch eine "show_message.php" o.ä. an, auf der ich (vereinfacht dargestellt...) SELECT mainmessage WHERE messageID = XX (ich weiß leider nicht wie ich definiere, dass die "angeklickte" ID übergeben wird..?)
      echo '$getDialogInformation["mainmessage"]';

      ..und mache auf meiner "nachrichten_system.php" sowas wie "<a href="show_message.php?section=".$getDialogInforma tion[messageID].">Link</a>

      Kommentar


      • #4
        Du machst Dir mit den echo Befehlen zu viel Arbeit, probiere es mal so:
        PHP-Code:
        <div id = "mainbox">
                <form action = "#" method ="post">
                    .....
                </form>
            <?php
                
        if (isset($_POST["newmessage"])){?>
                    <div style="...">    
                    ...
                    </div>
                <?php
                
        }
                elseif (isset(
        $_POST["empfmessage"])){?>
                        ....
        Denke auch daran, dass eine gesetzte variable auch leer sein kann...

        Kommentar


        • #5
          Ich habe nun folgenden Code für den Nachrichtentitel:
          Code:
          echo "<td><a href=\"showmessage.php?id=".$getInformation['messageID']."\">".$row['messagetitle']."</a></td></tr>";
          Wenn man nun auf den Nachrichtentitel klickt, wird man auf "showmessage.php?id=" verlinkt, aber wie bekomme ich nun heraus, welche "messageID" der jeweils angeklickte Titel hat?

          Weil hinter "id=" nun logischerweise nichts eingetragen wird, da ja nirgends definiert ist auf welches Objekt sich "$getInformation['messageID']" bezieht!
          Bitte um Hilfe, ich bekomme es einfach nicht hin :/

          Kommentar

          Lädt...
          X