Page 1 of 1

Private Messaging

Posted: Sun Jul 29, 2012 4:27 am
by ExtremeGaming
So I'm making a private message system and wanted to set limits on the amount of messages a user/admin can get but so far have failed...I have a file to check on what group a user is admin or user and am trying to combine that into the send message file. If a user or admin has a full inbox you wont be able to send the message.

group_check.php
[syntax=php]
<?php
session_start();
require ('config.php');

$connection = @mysql_connect($server, $dbusername, $dbpassword) or die(mysql_error());
$db = @mysql_select_db($db_name,$connection)or die(mysql_error());

$query = "SELECT group1 FROM $table_name WHERE username = '$_SESSION[user_name]'";

$result = mysql_query($query);

$group_check = mysql_fetch_assoc($result);
?>
[/syntax]

test.php what I'm trying to do starts on line 85
[syntax=php]
<?php
require ('check/group_check.php');
$user = $_SESSION['user_name'];

include 'db.php';

if(!$user)
{
echo "<br><p>Error: Not logged in</p><br>";
}

else
{
$sql = mysql_query ("SELECT pm_count FROM authorize WHERE username='$user'");
$row = mysql_fetch_array ($sql);
$pm_count = $row['pm_count'];

//This is the math to figure out the percentage.
//Will edit for admin later
$percent = $pm_count/'50';
$percent = $percent * '100';
?>
<br>
<center>
<b><p><a href="index.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
$reciever = $_POST['username'];
$subject = $_POST['subject'];
$message = $_POST['message'];
$error = '0';

if(!$reciever AND !$subject AND !$message)
{
?>
<p><b>Please compose a message.</b></p>
<br>
<?php
}

{
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($error != '0')
{
echo "<p>$error</p><br>";
}
{
$user_check = mysql_query("SELECT username FROM authorize WHERE username='$reciever'");
$user_check = mysql_num_rows($user_check);
if($user_check > '0')
{
$time = $_SESSION['time'];

if($time > '0')
{
$old_time = $time;
}

$time = date('is');
$difference = $time - $old_time;

$_SESSION['time'] = $time;

if($difference >= '15')
{
$sql = mysql_query ("SELECT pm_count FROM authorize WHERE username='$reciever'");
$row = mysql_fetch_array ($sql);
$pm_count = $row['pm_count'];

if ($group_check == "Administrators") {
if($pm_count == '50000')
{
$error = 'The user you are trying to send a message to has 50,000 private messages, sorry but we cant send your message until that user deletes some of their messages.';
}
}

else if($group_check == "Users") {
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 until that user deletes some of their messages.';
}
}
else
{
mysql_query("INSERT INTO messages (reciever, sender, subject, message) VALUES('$reciever', '$user', '$subject', '$message')") or die (mysql_error());
$pm_count++;
mysql_query("UPDATE authorize SET pm_count='$pm_count' WHERE username='$reciever'");
}

echo "<p><b>You have successfully sent a private message!</b></p><br>";
}

else
{
$error = 'You must wait 15 seconds before sending another private message';
}
}

{
$error = 'That username does not exist, please try again. Remember to check your spelling.';
}
}
}

if($error != '0')
{
echo "<p>$error</p><br>";
}

else
{
?>
<form name="send" method="post" action="test.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
}
}
?>
[/syntax]

Re: Private Messaging

Posted: Sun Jul 29, 2012 12:44 pm
by jacek
It looks basically right, if not a bit of a mess ;)

What doesn't work about it ?

Re: Private Messaging

Posted: Sun Jul 29, 2012 3:56 pm
by ExtremeGaming
It will not display the errors and will continue to send the message even if over the set maximum for the both

Re: Private Messaging

Posted: Sun Jul 29, 2012 4:26 pm
by jacek
ExtremeGaming wrote:It will not display the errors and will continue to send the message even if over the set maximum for the both

Well you are checking if the user is at the limit exactly not if they are over it, maybe you want

[syntax=php]if($pm_count >= 50000)[/syntax]
instead.

Re: Private Messaging

Posted: Tue Jul 31, 2012 7:10 pm
by ExtremeGaming
Ok deleted all my previous posts. Got it fixed thanks for the help :D