Page 1 of 2 12 LastLast
Results 1 to 10 of 13

Thread: Reply button?

  1. #1
    Join Date
    Feb 2010
    Location
    Falkirk, Scotland
    Posts
    142
    Thanks
    21
    Thanked 4 Times in 4 Posts

    Thumbs up Reply button?

    hey guys, i been trying to figure out how to create a reply button for a messaging script written in php. it feels like i have been googling forever to try find an answer but with no results! does anyone know how to go about this? or do u know of any good tutorials on the subject? help would be massively appreciated! thanx
    Last edited by liamallan; 03-29-2010 at 08:36 PM.

  2. #2
    Join Date
    Jan 2008
    Posts
    4,168
    Thanks
    28
    Thanked 628 Times in 624 Posts
    Blog Entries
    1

    Default

    Which part of the reply button are you having trouble with? The submit to database part, how it would find the right thread to go to, or something else?
    Jeremy | jfein.net

  3. #3
    Join Date
    Feb 2010
    Location
    Falkirk, Scotland
    Posts
    142
    Thanks
    21
    Thanked 4 Times in 4 Posts

    Default

    the whole thing lol when a user recieves a message, they have to navigate to compose.php and remember the users name in order to reply.

    here is compose.php:
    PHP Code:
    <?php
    session_start
    ();
    $user $_SESSION['username'];
        
        include 
    'db.php';
        
        
    //This checks to see if a user is logged in or not by seeing if the sessioned username varialble exists.
        //You could change this check to however you want to validate your members, this is just how I did it.
        
    if(!$user)
            {
            echo 
    "<br><p>Blah blah you arent logged in and stuff, you should do that or something</p><br>";
            }
            
        else
            {
            
    //Query the database to see how many messages the logged in user has, then do a little math
            //Find the percentage that your inbox is full (message count divided by 50)
            //50 messages maximum, you can change that
            
    $sql mysql_query ("SELECT pm_count FROM users WHERE username='$user'");
            
    $row mysql_fetch_array ($sql);
            
    $pm_count $row['pm_count'];
            
            
    //This is the math to figure out the percentage.
            //The message could divided by 50 then multiplied by 100 so we dont have a number less than 1
            
    $percent $pm_count/'50';
            
    $percent $percent '100';
            
    ?>
            <br>
            <center>
            <b><p><a href="inbox.php">Inbox</a> | <a href="compose.php">Compose</a> | <a href="sent.php">Sentbox</a></b>
            <b><p><?php echo "$pm_count"." of 50 Total  |  "."$percent"."% full"?></p></b>
            </center>
            <br>
            <?php
            
    //So here we get the variable submitted through the form to this page
            
    $reciever $_POST['username'];
            
    $subject $_POST['subject'];
            
    $message $_POST['message'];
            
    $error '0';
            
            
    //If they are all blank we jsut say to compose a message
            
    if(!$reciever AND !$subject AND !$message)
                {
                
    ?>
                <p><b>Please compose a message.</b></p>
                <br>
                <?php
                
    }
            
            
    //Since this form was partially filled out we need to return an error message
            
    else
                {
                if (!
    $reciever)
                    {
                    
    $error 'You must enter a reciever to your message';
                    }
                
                if (!
    $subject)
                    {
                    
    $error 'You must enter a subject';
                    }
                
                if (!
    $message)
                    {
                    
    $error 'You must enter a message';
                    }
                
                
    //If the variable error is not set to zero, we have a problem and should show the error message
                
    if($error != '0')
                    {
                    echo 
    "<p>$error</p><br>";
                    }
                
                
    //There are no errors so far which means the form is completely filled out    
                
    else
                    {
                    
    //Are the trying to send a message to a real user or to something they just made up?
                    
    $user_check mysql_query("SELECT username FROM users WHERE username='$reciever'");
                    
    $user_check mysql_num_rows($user_check);
                    
                    
    //The user is real and not made up if this is true
                    
    if($user_check '0')
                        {
                        
    //There might already be a sessioned time variable, if so we need to get it for the flood check
                        
    $time $_SESSION['time'];
                        
                        
    //If there is a time variable already, set it to the varialbe $old_time
                        
    if($time '0')
                            {
                            
    $old_time $time;
                            }
                        
                        
    //Here we get the minutes and seconds on the server time using the date function, and set that to the $time variable
                        //Now we find the difference between this time ($time) and the time that the page was submitted ($old_time)
                        
    $time date('is');
                        
    $difference $time $old_time;
                        
                        
    $_SESSION['time'] = $time;
                        
                        
    //If the two times have a difference greater or equal to 15, which is 15 seconds, they can submit the message, this is for flood protection
                        
    if($difference >= '15')
                            {
                            
    //Get their private message count
                            
    $sql mysql_query ("SELECT pm_count FROM users WHERE username='$reciever'");
                            
    $row mysql_fetch_array ($sql);
                            
    $pm_count $row['pm_count'];
                            
                            
    //You cant have more than 50 private messages, if they try sending a message to a user with a full inbox return an error message
                            
    if(pm_count == '50')
                                {
                                
    $error 'The user you are trying to send a message to has 50 private messages, sorry but we cant send your message untill that user deletes some of their messages.';
                                }
                                
                            else
                                {    
                                
    //And now we stick the message in the database with all the correct information
                                
    mysql_query("INSERT INTO messages (reciever, sender, subject, message) VALUES('$reciever', '$user', '$subject', '$message')") or die (mysql_error());
                                
    //Add 1 to the pm count, update the reciever with the new pm count
                                
    $pm_count++;
                                
    mysql_query("UPDATE users SET pm_count='$pm_count' WHERE username='$reciever'");
                                }
                                
                            
    //Let the user know everything went ok.
                            
    echo "<p><b>You have successfully sent a private message!</b></p><br>";
                            }
                        
                        
    //Since they are trying to send messages faster than every 15 seconds, give them an error message    
                        
    else
                            {
                            
    $error 'You must wait 15 seconds before sending another private message';
                            }
                        }
                    
                    
    //If they mis spelled or, made up a username, then give an error message telling them its wrong.
                    
    else
                        {
                        
    $error 'That username does not exist, please try again. Remember to check your spelling, and don\'t make stuff up at random.';
                        }
                    }
                }
                
            
    //Since we may have set the error variable to something while trying to send the messae, we need another error check
            
    if($error != '0')
                {
                echo 
    "<p>$error</p><br>";
                }
                
            else
                {
                
    //Here's the form for the input
                
    ?>
                <form name="send" method="post" action="compose.php">
                <table width="80%">
                  <tr>
                    <td width="150px" align="left" valign="top"><p>Username</p></td>
                    <td width="" align="left" valign="top"><input name="username" type="text" id="username" value="<?php echo "$reciever"?>"></td>
                  </tr>
                  
                  <tr>
                    <td width="150px" align="left" valign="top"><p>Subject</p></td>
                    <td width="" align="left" valign="top"><input name="subject" type="text" id="subject" value="<?php echo "$subject"?>"></td>
                  </tr>
                  
                  <tr>
                    <td width="150px" align="left" valign="top"><p>Message Body</p></td>
                    <td width="" align="left" valign="top"><textarea name="message" type="text" id="message" value="" cols="50" rows="10"></textarea></td>
                  </tr>
                      
                  <tr>  
                    <td></td>
                    <td><input type="submit" name="Submit" value="Send Message"></td>
                  </tr>
                </table>
                </center>
                </form>
                <?php
                
    }
            }    
        
    ?>

  4. #4
    Join Date
    Feb 2010
    Location
    Falkirk, Scotland
    Posts
    142
    Thanks
    21
    Thanked 4 Times in 4 Posts

    Default

    and viewmsg.php:
    PHP Code:
    <?php
    session_start
    ();
    $user $_SESSION['username'];
        
        include 
    'db.php';
        
        
    //This checks to see if a user is logged in or not by seeing if the sessioned username varialble exists.
        //You could change this check to however you want to validate your members, this is just how I did it.
        
    if(!$user)
            {
            echo 
    "<br><p>Blah blah you arent logged in and stuff, you should do that or something</p><br>";
            }
            
        else
            {
            
    //We need to grab the msg_id variable from the URL.
            
    $msg_id $_REQUEST['msg_id'];
            
            
    //Get all of the information about the message with the id number sent through the URL
            
    $view_msg mysql_query("SELECT * FROM messages WHERE id = '$msg_id'");
            
    $msg mysql_fetch_array($view_msg);
            
            
    $reciever $msg['reciever'];
            
    $sender $msg['sender'];
            
    $subject $msg['subject'];
            
    $message $msg['message'];
            
            
    //If the person who is supposed to recieve the message is the currently logged in user everything is good
            
    if($reciever == $user)
                {
                
    //The message was recieved, so lets update the message in the database so it wont show up in the sent page any more
                
    mysql_query("UPDATE messages SET recieved='1' WHERE id = '$msg_id'");
                
                
    //Query the database to see how many messages the logged in user has, then do a little math
                //Find the percentage that your inbox is full (message count divided by 50)
                //50 messages maximum, you can change that
                
    $sql mysql_query ("SELECT pm_count FROM users WHERE username='$user'");
                
    $row mysql_fetch_array ($sql);
                
    $pm_count $row['pm_count'];
                
                
    //This is the math to figure out the percentage.
                //The message could divided by 50 then multiplied by 100 so we dont have a number less than 1
                
    $percent $pm_count/'50';
                
    $percent $percent '100';
                
                
    //Now we will display the little navigation thing, the fullness of the inbox, then display message information stuff, like who its from, the subject, and the body
                
    ?>
                <br>
                <center>
                <b><p><a href="inbox.php">Inbox</a> | <a href="compose.php">Compose</a> | <a href="sent.php">Sentbox</a></b>
                <b><p><?php echo "$pm_count"." of 50 Total  |  "."$percent"."% full"?></p></b>
                </center>
                <br>
                
                <table width="80%">
                  <tr>
                    <td width="120px"><p>From:</p></td>
                    <td width=""><p><a href = "<?php echo "../user/profile.php?user_name=$sender"?>"><?php echo $sender?></a></p></td>
                  </tr>
                  
                  <tr>
                    <td width="120px"><p>Subject:</p></td>
                    <td width=""><p><?php echo $subject?></p></td>
                  </tr>
                  
                  <tr>    
                    <td width="120px"><p>Message Body:</p></td>
                    <td width=""><p><?php echo $message?></p></td>
                  </tr>
                </table>
                </center>
                <?php
                
    }
            
    //Everything is not good, someone tried to look at somone else's private message
            
    else
                {
                
    ?>
                <p>It appears you are trying to view someone else's private message. Please view your own private messages, or go away.</p>
                <?php
                
    }
            }
        
    ?>
    if u need more info, just let me know

  5. #5
    Join Date
    Jan 2008
    Posts
    4,168
    Thanks
    28
    Thanked 628 Times in 624 Posts
    Blog Entries
    1

    Default

    So just do something like this:
    Code:
    <a href="compose.php">Reply</a>
    Right? Or am I not getting something?
    Jeremy | jfein.net

  6. #6
    Join Date
    Feb 2010
    Location
    Falkirk, Scotland
    Posts
    142
    Thanks
    21
    Thanked 4 Times in 4 Posts

    Default

    i was thinking about having the senders username pre-inserted into the reciever field so there is no need for user to look for the senders name

  7. #7
    Join Date
    Jan 2008
    Posts
    4,168
    Thanks
    28
    Thanked 628 Times in 624 Posts
    Blog Entries
    1

    Default

    Yeah, try that.
    Jeremy | jfein.net

  8. #8
    Join Date
    Feb 2010
    Location
    Falkirk, Scotland
    Posts
    142
    Thanks
    21
    Thanked 4 Times in 4 Posts

    Default

    do u know how i could do that?

  9. #9
    Join Date
    Jan 2008
    Posts
    4,168
    Thanks
    28
    Thanked 628 Times in 624 Posts
    Blog Entries
    1

    Default

    Well, do something like this:
    Code:
    <a href="compose.php?user=$_GET['username_reply']">Reply</a>
    And then in compose.php the user would be that.
    Jeremy | jfein.net

  10. #10
    Join Date
    Feb 2010
    Location
    Falkirk, Scotland
    Posts
    142
    Thanks
    21
    Thanked 4 Times in 4 Posts

    Default

    i tried your method, but no joy. i also tried various tinkering, with no joy.

    this is where im at now:
    PHP Code:
    <?php echo "<a href=\"compose.php?username=$sender\">Reply</a>"?>
    still dont seem to work, you have to select a user from a dropdown menu, do u think that might have something to do with it?
    it still loads the page and the url in status bar is '......compose.php?username=liamallan'

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •