Jump to content

Archived

This topic is now archived and is closed to further replies.

systemtek

php error

Recommended Posts

Hi All

I am trying to setup a cron to run dbsender.php, i get the following error email back when it tried to run, it also puts this in the error log in the  /home/systemte/public_html/dbsender directory.  Any ideas ? I dont own the server. ??

[03-Aug-2006 18:00:01] PHP Warning:  passthru() has been disabled for security reasons in /home/systemte/public_html/dbsender/dbsender.php on line 50
[03-Aug-2006 18:00:02] PHP Warning:  filetype(): Lstat failed for (null) (errno=2 - No such file or directory) in /home/systemte/public_html/dbsender/dbsender.php on line 72
[03-Aug-2006 18:00:02] PHP Warning:  fopen(/home/systemtek/public_html/dbsender/systemte_phpbb1-080306-0600pm_sql.tar.gz): failed to open stream: No such file or directory in /home/systemte/public_html/dbsender/dbsender.php on line 80
[03-Aug-2006 18:00:02] PHP Warning:  filesize(): Stat failed for /home/systemtek/public_html/dbsender/systemte_phpbb1-080306-0600pm_sql.tar.gz (errno=2 - No such file or directory) in /home/systemte/public_html/dbsender/dbsender.php on line 81
[03-Aug-2006 18:00:02] PHP Warning:  fread(): supplied argument is not a valid stream resource in /home/systemte/public_html/dbsender/dbsender.php on line 81
[03-Aug-2006 18:00:02] PHP Warning:  fclose(): supplied argument is not a valid stream resource in /home/systemte/public_html/dbsender/dbsender.php on line 82

Share this post


Link to post
Share on other sites
"passthru() has been disabled for security reasons" seems fairly specific.  Talk to your host and/or revise the script you're trying to run.

Share this post


Link to post
Share on other sites
#!/usr/local/bin/php
<?php
// configure your database variables below:
$dbhost = 'localhost'; // Server address of your MySQL Server
$dbuser = 'XXXXX'; // Username to access MySQL database
$dbpass = 'XXXXX'; // Password to access MySQL database
$dbname = 'systemte_phpbb1'; // Database Name

// Optional Options You May Optionally Configure


$use_gzip = "yes";  // Set to No if you don't want the files sent in .gz format
$remove_sql_file = "yes"; // Set this to yes if you want to remove the .sql file after gzipping. Yes is recommended.
$remove_gzip_file = "no"; // Set this to yes if you want to delete the gzip file also. I recommend leaving it to "no"


// Configure the path that this script resides on your server.


$savepath =
"/home/systemtek/public_html/dbsender"; // Full path to this directory. Do not use trailing slash!


$send_email = "yes";  // Do you want this database backup sent to your email? Fill out the next 2 lines
$to      = "admin@XXXXXX.co.uk";  // Who to send the emails to
$from    = "admin@XXXXXX.co.uk"; // Who should the emails be sent from?


$senddate = date("j F Y");


$subject = "MySQL Database Backup - $senddate"; // Subject in the email to be sent.
$message = "Your MySQL database has been backed up and is attached to this email"; // Brief Message.


$use_ftp = "no"; // Do you want this database backup uploaded to an ftp server? Fill out the next 4 lines
$ftp_server = "localhost"; // FTP hostname
$ftp_user_name = "ftp_username"; // FTP username
$ftp_user_pass = "ftp_password"; // FTP password
$ftp_path = "/"; // This is the path to upload on your ftp server!


// Do not Modify below this line! It will void your warranty!


       $date = date("mdy-hia");
       $filename = "$savepath/$dbname-$date.sql";    
       passthru("mysqldump --opt -h$dbhost -u$dbuser -p$dbpass
$dbname >$filename");


       if($use_gzip=="yes"){
               $zipline = "tar -czf ".$dbname."-".$date."_sql.tar.gz
$dbname-$date.sql";
               shell_exec($zipline);
       }
       if($remove_sql_file=="yes"){
               exec("rm -r -f $filename");
       }


       if($use_gzip=="yes"){
               $filename2 =
"$savepath/".$dbname."-".$date."_sql.tar.gz";
       } else {
               $filename2 = "$savepath/$dbname-$date.sql";
       }


       if($send_email == "yes" ){
               $fileatt_type = filetype($filename2);
               $fileatt_name = "".$dbname."-".$date."_sql.tar.gz";


               $headers = "From: $from";


               // Read the file to be attached ('rb' = read binary)
               $file = fopen($filename2,'rb');
               $data = fread($file,filesize($filename2));
               fclose($file);


               // Generate a boundary string
               $semi_rand = md5(time());
               $mime_boundary =
"==Multipart_Boundary_x{$semi_rand}x";


               // Add the headers for a file attachment
               $headers .= "\nMIME-Version: 1.0\n" ."Content-Type:
multipart/mixed;\n" ." boundary=\"{$mime_boundary}\"";


               // Add a multipart boundary above the plain message
               $message = "This is a multi-part message in MIME
format.\n\n" ."--{$mime_boundary}\n" ."Content-Type: text/plain;
charset=\"iso-8859-1\"\n" ."Content-Transfer-Encoding: 7bit\n\n" .
               $message . "\n\n";


               // Base64 encode the file data
               $data = chunk_split(base64_encode($data));


               // Add file attachment to the message
               $message .= "--{$mime_boundary}\n" ."Content-Type:
{$fileatt_type};\n" ." name=\"{$fileatt_name}\"\n"
."Content-Disposition: attachment;\n" ."
filename=\"{$fileatt_name}\"\n" ."Content-Transfer-Encoding:
base64\n\n" .
               $data . "\n\n" ."--{$mime_boundary}--\n";


               // Send the message
               $ok = @mail($to, $subject, $message, $headers);
               if ($ok) {
                       echo "<h4><center>Database backup created and sent! File name $filename2</center></h4>";
               } else {
                       echo "<h4><center>Mail could not be sent. Sorry!</center></h4>";
               }
       }


       if($use_ftp == "yes"){
               $ftpconnect = "ncftpput -u $ftp_user_name -p
$ftp_user_pass -d debsender_ftplog.log -e dbsender_ftplog2.log -a -E
-V $ftp_server $ftp_path $filename2";
               shell_exec($ftpconnect);
               echo "<h4><center>$filename2 Was created and uploaded to your FTP server!</center></h4>";


       }


       if($remove_gzip_file=="yes"){
               exec("rm -r -f $filename2");
       }


?>

Share this post


Link to post
Share on other sites
I have just found out from my host that passthru and system is disabled in server, is there any way around this for the above script ?

Share this post


Link to post
Share on other sites

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.