Tycoon Talk
Become a Big fish!
The number 1 forum for online business!
Post topics, ask questions, share your knowledge.
Tycoon Talk is part of Freelancer.com - find skilled workers online at a fraction of the cost.

PHP Forum


You are currently viewing our PHP Forum as a guest. Please register to participate.
Login



Freelance Jobs

Reply
Old 07-13-2008, 01:18 PM PHP Mail Script bug.
Skilled Talker

Posts: 76
Trades: 0
I found this Script on the internet.

Now I am trying it out and some thing seems to be broken.

Can some tell me what is wrong here. I think the redirection is not working properly.

The Reply message and forward message doesn't seem to work.
Which is action(2) and action(3)

new and delete functions work great.

here are 3 files that are related.

Actions and Processing. I am very sure there is problem here.

mail_process.php
PHP Code:
<?
/*******
Some general include files
*********/

session_cache_limiter('nocache');
session_start();

db_connect(_DBHOSTNAME_,_DBUSERNAME_,_DBPASSWORD_,_DBNAME_,_PCONN_);

$topass=array();
$mailbox='inbox';
if (
$_SERVER['REQUEST_METHOD']=='GET') {
    if (isset(
$_GET['action']) && !empty($_GET['action'])) {
        
$error=0;
        
$action=addslashes_mq($_GET['action']);
        
$mailbox=isset($_GET['mailbox']) ? addslashes_mq($_GET['mailbox']) : '';
        if (
$action==2) { // reply to the message
            
check_login_member($access_matrix['mail_reply'][0]);
            if (isset(
$_GET['mail_id']) && !empty($_GET['mail_id'])) {
                
$mail_id=addslashes_mq($_GET['mail_id']);
                
$topass['mail_id']=$mail_id;
                
$topass['action']='reply';
                
$topass['mailbox']=$mailbox;
                
redirect2page("mail_send.php",$topass);
            }
        } elseif (
$action==3) { // forward message
            
check_login_member($access_matrix['mail_forward'][0]);
            if (isset(
$_GET['mail_id']) && !empty($_GET['mail_id'])) {
                
$mail_id=addslashes_mq($_GET['mail_id']);
                
$topass['mail_id']=$mail_id;
                
$topass['action']='forward';
                
$topass['mailbox']=$mailbox;
                
redirect2page("mail_send.php",$topass);
            }
        } elseif (
$action==1) { // delete message
            
check_login_member(min($access_matrix['inbox'][0],$access_matrix['outbox'][0],$access_matrix['sendbox'][0]));
            if (isset(
$_GET['mail_id']) && !empty($_GET['mail_id'])) {
                
$mail_id=array(addslashes_mq($_GET['mail_id']));
                
delete_messages($_SESSION['user_id'],$mail_id,$mailbox);
                
$topass['message']=$_messages['core'][73];
            }
        } elseif (
$action==4) { // delete selected messages
            
check_login_member(min($access_matrix['inbox'][0],$access_matrix['outbox'][0],$access_matrix['savedbox'][0]));
            if (isset(
$_GET['del']) && !empty($_GET['del']) && is_array($_GET['del'])) {
                
$del=addslashes_mq($_GET['del']);
                
delete_messages($_SESSION['user_id'],$del,$mailbox);
                
$topass['message']=$_messages['core'][74];
            }
        } elseif (
$action==5) { // block user
            
check_login_member($access_matrix['block_members'][0]);
            if (isset(
$_GET['user_id']) && !empty($_GET['user_id'])) {
                
$blocked_id=addslashes_mq($_GET['user_id']);
                if (!
is_userblocked($_SESSION['user_id'],$blocked_id)) {
                    
$query="INSERT INTO user_blocks SET user_id='".$_SESSION['user_id']."',blocked_id='$blocked_id'";
                    if (!(
$res=@mysql_query($query))) {trigger_error(mysql_error(),E_USER_ERROR);}
                    
$topass['message']=$_messages['core'][75];
                } else {
                    
$topass['message']=$_messages['core'][76];
                }
            }
        } elseif (
$action==6) { // unblock user
            
check_login_member($access_matrix['block_members'][0]);
            if (isset(
$_GET['user_id']) && !empty($_GET['user_id'])) {
                
$blocked_id=addslashes_mq($_GET['user_id']);
                if (
is_userblocked($_SESSION['user_id'],$blocked_id)) {
                    
$query="DELETE FROM user_blocks WHERE blocked_id='$blocked_id' and user_id='".$_SESSION['user_id']."'";
                    if (!(
$res=@mysql_query($query))) {trigger_error(mysql_error(),E_USER_ERROR);}
                    
$topass['message']=$_messages['core'][77];
                    
redirect2page("blocked_list.php",$topass);
                } else {
                    
$topass['message']=$_messages['core'][78];
                }
            }
        } elseif (
$action==7) { // new message
//            check_login_member($access_matrix['mail_send'][0]);    // don't check now, we'll check on mail_send page.
            
redirect2page("mail_send.php");
        } elseif (
$action==8) { // save to savedbox
            
check_login_member($access_matrix['savedbox'][0]);
            if (isset(
$_GET['del']) && !empty($_GET['del']) && is_array($_GET['del'])) {
                
$del=addslashes_mq($_GET['del']);
                
$from='mail_inbox';
                if (
$mailbox=='inbox') {
                    
$from='mail_inbox';
                } elseif (
$mailbox=='outbox') {
                    
$from='mail_outbox';
                } elseif (
$mailbox=='savedbox') {
                    
$from='mail_savedbox';
                }
                
$mails2move=join("','",array_values($del));
                
$query="INSERT INTO mail_savedbox (read_status,user_id,from_id,from_name,subject,body,link,date_sent,message_type) SELECT read_status,user_id,from_id,from_name,subject,body,link,date_sent,message_type FROM $from WHERE mail_id IN ('$mails2move') AND user_id='".$_SESSION['user_id']."'";
                if (!(
$res=@mysql_query($query))) {trigger_error(mysql_error(),E_USER_ERROR);}
                
$query="DELETE FROM $from WHERE mail_id IN ('$mails2move') AND user_id='".$_SESSION['user_id']."'";
                if (!(
$res=@mysql_query($query))) {trigger_error(mysql_error(),E_USER_ERROR);}
                
$topass['message']=$_messages['core'][115];
            }
        }
    }
}
redirect2page("mailbox.php",$topass,"mailbox=$mailbox");
?>
Here is the mail_send.php the file that is running together with the template page.

PHP Code:
<?
/*

File location:                       processors/mail_send.php

*/

session_cache_limiter('nocache');
session_start();
require_once(
"../includes/functions.inc.php");
require_once(
"../includes/templates.inc.php");
require_once(
"../includes/apt_functions.inc.php");
require_once(
"../includes/vars.inc.php");
$access_level=$access_matrix['mail_send'][0];
db_connect(_DBHOSTNAME_,_DBUSERNAME_,_DBPASSWORD_,_DBNAME_,_PCONN_);

$topass=array();
if (
$_SERVER['REQUEST_METHOD']=='POST') {
    
$error=false;
    if (isset(
$_POST['to']) && !empty($_POST['to'])) {
        if ((
strpos($_POST['to'],"\r")!==false) || (strpos($_POST['to'],"\n")!==false)) {
                                
// dont send the email and show an error message
                                
$error=true;
                                
$topass['message']="There appears to be a problem in the \"to\" field of the form. We cannot process the message at this time";
        }
        
$to_id=get_userid_by_name(addslashes_mq($_POST['to']));
        if (empty(
$to_id)) {
            
$error=true;
            
$topass['message']=$_messages['core'][67];
        }
        if (
is_userblocked($to_id,$_SESSION['user_id'])) {
            
$error=true;
            
$topass['message']=$_messages['core'][68];
        }
    } else {
        
$error=true;
        
$topass['message']=$_messages['core'][66];
    }
    
$subject="";
    
$body="";
    if (isset(
$_POST['subject']) && !empty($_POST['subject'])) {
        if ((
strpos($_POST['subject'],"\r")!==false) || (strpos($_POST['subject'],"\n")!==false)) {
                                
// dont send the email and show an error message
                                
$error=true;
                                
$topass['message']="There appears to be a problem in the \"subject\" field of the form. We cannot process the message at this time";
        }
        
$subject=addslashes_mq($_POST['subject'],true);
        if (empty(
$subject)) {
            
$error=true;
            
$topass['message']=$_messages['core'][69];
        }
    } else {
        
$subject=$_messages['core'][116];
    }
    if (isset(
$_POST['writehere']) && !empty($_POST['writehere'])) {
        
$body=addslashes_mq($_POST['writehere'],true);
        if (empty(
$body)) {
            
$error=true;
            
$topass['message']=$_messages['core'][70];
        }
    } else {
        
$error=true;
        
$topass['message']=$_messages['core'][70];
    }
    if (isset(
$_SESSION['topass']) && !empty($_SESSION['topass'])) {
        
$oldtopass=$_SESSION['topass'];
        
$_SESSION['topass']="";
        if (isset(
$oldtopass['action'])) {
            if (
$oldtopass['action']=='reply') {
                
$access_level=$access_matrix['mail_reply'][0];
                if (
$oldtopass['to']!=addslashes_mq($_POST['to'])) {
                    
$access_level=$access_matrix['mail_send'][0];        // attempting to trick us? :)
                
}
            } elseif (
$oldtopass['action']=='forward') {
                
$access_level=$access_matrix['mail_forward'][0];
            }
        }
        unset(
$oldtopass);
    }

    
$max_messages=get_site_option('max_messages');
    if ((
get_messages_sent_today()>=$max_messages) && !empty($max_messages)) {
        
$error=true;
        
$topass['message']=$_messages['core'][71];
    }
    if (!
$error) {
        
check_login_member($access_level);

        
$senderlevel=$_SESSION['membership'];
        
$receiverlevel=get_ownerlevel($to_id);
        
$paidlevel=_PAIDLEVEL_;

    if((
$receiverlevel $paidlevel) || ($senderlevel $paidlevel)){

        if (
get_site_option('filter_emails')) {
            
$body=remove_text_emails($body);
            
$subject=remove_text_emails($subject);
        }
        if (
get_site_option('filter_urls')) {
            
$body=remove_text_urls($body);
            
$subject=remove_text_urls($subject);
        }
        if (
get_site_option('filter_words')) {
            
$body=remove_text_words($body);
            
$subject=remove_text_words($subject);
        }
    }
        
$query="INSERT INTO mail_inbox SET message_type=1,user_id='$to_id',from_id='".$_SESSION['user_id']."',from_name='".$_SESSION['name']."',subject='$subject',body='$body',date_sent=now()";
        if (!(
$res=@mysql_query($query))) {trigger_error(mysql_error(),E_USER_ERROR);}
        if (
is_send_newmessage_alerts($to_id)) {
            
send_newmessage_alert($_SESSION['user_id'],$to_id);
        }
        
$query="INSERT INTO mail_outbox SET message_type=1,user_id='".$_SESSION['user_id']."',from_id='$to_id',from_name='".addslashes_mq($_POST['to'])."',subject='$subject',body='$body',date_sent=now()";
        if (!(
$res=@mysql_query($query))) {trigger_error(mysql_error(),E_USER_ERROR);}
        if (isset(
$_POST['save']) && !empty($_POST['save'])) {
            
$query="INSERT INTO mail_savedbox SET message_type=1,user_id='".$_SESSION['user_id']."',from_id='$to_id',from_name='".addslashes_mq($_POST['to'])."',subject='$subject',body='$body',date_sent=now()";
            if (!(
$res=@mysql_query($query))) {trigger_error(mysql_error(),E_USER_ERROR);}
        }
        
$topass['message']=$_messages['core'][72];
        
redirect2page("mailbox.php",$topass,"mailbox=inbox");
    } else {
        
$topass['to']=$_POST['to'];
        
$topass['subject']=$_POST['subject'];
        
$topass['body']=$_POST['writehere'];
    }
}
redirect2page("mail_send.php",$topass);
?>
Here is the Template page that is calling the functions.

HTML Code:
<script type="text/javascript">
    function set_action(newval) {
            document.myform.action.value=newval;
    }
</script>
<form name="myform" id="myform" action="processors/mail_process.php" method="get">
<input type="hidden" name="mail_id" value="{mail_id}" />
<input type="hidden" name="mailbox" value="{mailbox}" />
<input type="hidden" name="action" />
<table cellspacing="1" cellpadding="2" width="100%" border="0">
<tr>
    <td colspan="2">
        <table cellspacing="0" cellpadding="0" width="100%" border="0">
        <tr>
            <td>
                <input class="button" type="submit" value="Delete" onclick="set_action(1)" />
                <input class="button" type="submit" value="Reply" onclick="set_action(2)" />
                <input class="button" type="submit" value="Forward" onclick="set_action(3)" />
            </td>
            <td><a href="mailbox.php?mailbox=inbox">Back to inbox</a></td>
            <td>
            <table><tr><td valign="middle"><a href="mail_read.php?mailbox={mailbox}&mail_id={mail_id}&move=1"><img src="{relative_path}images/uparrow2.gif" border="0" title="Previous" /></a></td><td valign="middle"> | </td><td valign="middle"> <a href="mail_read.php?mailbox={mailbox}&mail_id={mail_id}&move=-1"><img src="{relative_path}images/downarrow2.gif" border="0" title="Next" /></a></td></tr></table>
            </td>
        </tr>
        </table>
    </td>
</tr>
<tr>
    <td class="statusmenu" width="1%"><b>From: </b></td>
    <td class="whiterows">&nbsp;{from} | <a href="processors/mail_process.php?action=5&mailbox={mailbox}&user_id={from_id}">Block this user</a> | <a href="profile_view.php?user_id={from_id}">View profile</a></td>
</tr>
<tr>
    <td class="statusmenu" width="1%"><b>Date: </b></td>
    <td class="whiterows">&nbsp;{date_sent}</td>
</tr>
<tr>
    <td class="statusmenu" width="1%"><b>Subject: </b></td>
    <td class="whiterows">&nbsp;{subject}</td>
</tr>
<tr>
    <td colspan="2" width="100%">
        <table width="100%" cellpadding="5" cellspacing="0" border="0" height="300">
        <tr>
            <td valign="top" class="mailbody">
                <br>
                {body}<br><center>{link}</center>
            </td>
        </tr>
        </table>
    </td>
</tr>
<tr>
    <td colspan="2" align="center"><a href="mailbox.php?mailbox=inbox">Inbox</a> | <a href="mailbox.php?mailbox=outbox">Outbox</a> | <a href="mailbox.php?mailbox=savedbox">Savedbox</a></td>
</tr>
</table>
</form>
darshdude is offline
Reply With Quote
View Public Profile
 
 
Register now for full access!
Old 07-13-2008, 10:18 PM Re: PHP Mail Script bug.
Skilled Talker

Posts: 76
Trades: 0
Some body help me ?
darshdude is offline
Reply With Quote
View Public Profile
 
Old 07-13-2008, 10:37 PM Re: PHP Mail Script bug.
Truly's Avatar
Ultra Talker

Posts: 322
Trades: 0
You are probably better off to go back to the guys that wrote that script. Thats alot of code to look through for a pretty ambiguous problem.
__________________
DVD Movie Release Database:
Please login or register to view this content. Registration is FREE
Truly is offline
Reply With Quote
View Public Profile
 
Old 07-15-2008, 01:59 AM Re: PHP Mail Script bug.
Skilled Talker

Posts: 76
Trades: 0
no thanks i rather find out my self with a lil help from others.
darshdude is offline
Reply With Quote
View Public Profile
 
Old 07-16-2008, 02:08 AM Re: PHP Mail Script bug.
Skilled Talker

Posts: 76
Trades: 0
PHP Code:
<?
function redirect2page($pagename,$topass=array(),$qstring="",$full_url=false) {
    if (!empty(
$pagename)) {
        if (!
$full_url) {
            
$redirect=_BASEURL_."/".$pagename;
            
$separator="?";
            if (
SID!="") {
                
$redirect.=$separator.SID;
                
$separator="&amp;";
            }
            if (!empty(
$qstring)) {
                
$redirect.=$separator.$qstring;
                
$separator="&amp;";
            }
        } else {
            
$redirect=$pagename;
        }
        if (isset(
$topass) && !empty($topass)) {
            
$_SESSION['topass']=$topass;
        }
        
header("Status: 303 See Other",true);
        
header("Location: $redirect",true);
    } else {
        
error("No page specified for redirect",__LINE__,__FILE__);
    }
    exit;
}

?>
darshdude is offline
Reply With Quote
View Public Profile
 
Reply     « Reply to PHP Mail Script bug.
 

Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off





   
RSS Feed  Feeds: RSS   JS   XML
RSS Feed  Feeds for this forum: RSS   JS   XML



Page generated in 0.21834 seconds with 12 queries