Visualizzazione dei risultati da 1 a 2 su 2

Discussione: messaggi privati php

  1. #1

    messaggi privati php

    Salve ragazzi,cercando nel web ho trovato questo script per creare messaggi privati all'interno del proprio sito,metto qui cosi da capire come è strutturata e se puo servire ad'altri.Posso dire che lo script funziona,nel mandare i messaggi,registrarli nella tabella e nelle sue varie parti.
    Problema che non riesco a decifrare è che la pagina chiamata "read_message.php" non visualizza i messaggi in box ma solo mostra:
    Title:
    From:
    Message:

    [button]
    E niente messaggi,qualcuno riesce a capire perche non si vedono i messaggi,vedendo lo scrip dell'ultima pagina sotto,appunto "read_messagge.php"?
    Grazie

    CREATE TABLE `messages` (
    `message_id` int(11) NOT NULL auto_increment,
    `from_user` varchar(65) character set latin1 collate latin1_general_ci NOT NULL,
    `to_user` varchar(65) character set latin1 collate latin1_general_ci NOT NULL,
    `message_title` varchar(65) NOT NULL,
    `message_contents` longtext NOT NULL,
    `message_read` int(11) NOT NULL default '0',
    PRIMARY KEY (`message_id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=21;

    inbox.php
    Codice PHP:
    <?php
    session_start
    ();
    require 
    "database.php";
    $userfinal=$_SESSION['session_name'];

    // get the messages from the table.
    $get_messages mysql_query("SELECT message_id FROM messages WHERE to_user='$userfinal' ORDER BY message_id DESC") or die(mysql_error());
    $get_messages2 mysql_query("SELECT * FROM messages WHERE to_user='$userfinal' ORDER BY message_id DESC") or die(mysql_error());
    $num_messages mysql_num_rows($get_messages);
    // display each message title, with a link to their content
    echo '<ul>';
    for(
    $count 1$count <= $num_messages$count++)
    {

        
    $row mysql_fetch_array($get_messages2);
        
    //if the message is not read, show "(new)" after the title, else, just show the title.
    if($row['message_read'] == 0)
    {
        echo 
    '[url="read_message.php?messageid=' $row['message_id'] . '"]' $row['message_title'] . '[/url](New)
    '
    ;
    }else{
    echo 
    '[url="read_message.php?messageid=' $row['message_id'] . '"]' $row['message_title'] . '[/url]
    '
    ;
    }}
    echo 
    '[/list]';
    echo 
    '<form name="newmsgfrm" method="post" action="new_message.php">';
    echo 
    '<input type="submit" value="Send a New Message">';
    echo 
    '</form>';

    echo 
    '<form name="backfrm" method="post" action="index.php">';
    echo 
    '<input type="submit" value="Back to Home">';
    echo 
    '</form>';
    ?>
    new_message.php

    Codice PHP:
    <?php
    session_start
    ();
    require 
    "database.php";
    $userfinal=$_SESSION['session_name'];
    $user=$userfinal;
    ?>
    <form name="message" action="messageck.php"
    method="post">
    <input type="text" name="message_title"> Title: 

    <input type="text" name="message_to"> To: 

    Message: 

    <textarea rows="20" cols="50" name="message_content">
    </textarea>
    <?php
    echo '<input type="hidden" name="message_from" value="'.$user.'">
    '
    ;
    ?>
    <input type="submit" value="Submit">
    </form>
    messageck.php

    Codice PHP:
    <?php
    session_start
    ();
    require 
    "database.php";

    $title=$_POST['message_title'];
    $to=$_POST['message_to'];
    $content=$_POST['message_content'];
    $from=$_POST['message_from'];
    $time=$_POST['message_date'];

    $ck_reciever "SELECT username FROM user WHERE username = '".$to."'";

            
            if( 
    mysql_num_rowsmysql_query$ck_reciever ) ) == ){
    die(
    "The user you are trying to contact don't excist. Please go back and try again.

    <form name=\"back\" action=\"new_message.php\"
    method=\"post\">
    <input type=\"submit\" value=\"Try Again\">
    </form>
    "
    );
    }
    elseif(
    strlen($content) < 1){
    die(
    "Your can't send an empty message!

    <form name=\"back\" action=\"new_message.php\"
    method=\"post\">
    <input type=\"submit\" value=\"Try Again\">
    </form>
    "
    );
    }
    elseif(
    strlen($title) < 1){
    die(
    "You must have a Title!

    <form name=\"back\" action=\"new_message.php\"
    method=\"post\">
    <input type=\"submit\" value=\"Try Again\">
    </form>
    "
    );
    }else{
    mysql_query("INSERT INTO messages (from_user, to_user, message_title, message_contents, message_date) VALUES ('$from','$to','$title','$content','$time')") OR die("Could not send the message: 
    "
    .mysql_error());
    echo 
    "The Message Was Successfully Sent!";
    ?>
    <form name="back" action="inbox.php"
    method="post">
    <input type="submit" value="Back to The Inbox">
    </form>
    <?php
    }
    ?>
    read_message.php

    Codice PHP:
    <?php
    session_start
    ();
    $userfinal=$_SESSION['session_name'];
    require 
    "database.php";

    $messageid $_GET['message'];
    $message mysql_query("SELECT * FROM messages WHERE message_id = '$message_id' AND to_user = '$userfinal'");
    $message=mysql_fetch_assoc($message);

    echo 
    "<h1>Title: ".$message['message_title']."</h1>

    "
    ;
    echo 
    "<h3>From: ".$message['from_user']."

    </h3>"
    ;
    echo 
    "<h3>Message: 
    "
    .$message['message_contents']."
    </h3>"
    ;

    echo 
    '<form name="backfrm" method="post" action="inbox.php">';
    echo 
    '<input type="submit" value="Back to Inbox">';
    echo 
    '</form>';
    ?>

  2. #2
    Utente di HTML.it L'avatar di homerbit
    Registrato dal
    Dec 2005
    residenza
    Roma
    Messaggi
    1,380
    ciao, mi sono limitato ad analizzare solo l'errore della visualizzazione dei messaggi...
    in questa riga
    codice:
    $message = mysql_query("SELECT * FROM messages WHERE message_id = '$message_id' AND to_user = '$userfinal'");
    viene utilizzata la variabile '$message_id'
    che nel tuo scritp catturi con $messageid = $_GET['message'];
    invece di $message_id = $_GET['message'];

    oppure puoi modificare la stessa query (magari $messageid viene utilizzata in altre parti)
    in
    codice:
    $message = mysql_query("SELECT * FROM messages WHERE message_id = '$messageid' AND to_user = '$userfinal'");

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.