Private Messaging

Ask about a PHP problem here.
Post Reply
ExtremeGaming
Posts: 205
Joined: Mon Jul 09, 2012 11:13 pm

Private Messaging

Post 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]
<?php while(!$succeed = try()); ?>
User avatar
jacek
Site Admin
Posts: 3262
Joined: Thu May 05, 2011 1:45 pm
Location: UK
Contact:

Re: Private Messaging

Post by jacek »

It looks basically right, if not a bit of a mess ;)

What doesn't work about it ?
Image
ExtremeGaming
Posts: 205
Joined: Mon Jul 09, 2012 11:13 pm

Re: Private Messaging

Post by ExtremeGaming »

It will not display the errors and will continue to send the message even if over the set maximum for the both
<?php while(!$succeed = try()); ?>
User avatar
jacek
Site Admin
Posts: 3262
Joined: Thu May 05, 2011 1:45 pm
Location: UK
Contact:

Re: Private Messaging

Post 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.
Image
ExtremeGaming
Posts: 205
Joined: Mon Jul 09, 2012 11:13 pm

Re: Private Messaging

Post by ExtremeGaming »

Ok deleted all my previous posts. Got it fixed thanks for the help :D
<?php while(!$succeed = try()); ?>
Post Reply