проблемы с PHP pro bid

Discussion in 'PHP' started by chaz, 25 Jan 2008.

  1. chaz

    chaz New Member

    Joined:
    25 Jan 2008
    Messages:
    8
    Likes Received:
    0
    Reputations:
    0
    Не смог найти на вашем форуме тему, посвященную этому скрипту.

    Использую версию 5.24.

    Скрипт не отправляет письма активации.

    Если кто-нибудь занимается фрилансингом и может помочь - готов быть благодарен не только на словах.

    Если кто-то сталкивался с этой проблемой и решил ее - пожалуйста подскажите.


    Даллее привожу полный текст файла functions.php, в котором по моему разумению находится ошибка.

    Чтобы не пугать людей делаю это отдельным постом
     
  2. chaz

    chaz New Member

    Joined:
    25 Jan 2008
    Messages:
    8
    Likes Received:
    0
    Reputations:
    0
    ой - нет - я чего-то не расчитал - код слишко длинный - меня за спам удалят :))

    оставлю аську - стучите, если можете помочь 465 421 286
     
    #2 chaz, 25 Jan 2008
    Last edited: 25 Jan 2008
  3. gold-goblin

    gold-goblin Elder - Старейшина

    Joined:
    26 Mar 2007
    Messages:
    917
    Likes Received:
    174
    Reputations:
    3
    аставляй не забанят (используй теги
    Code:
     
    )
     
    #3 gold-goblin, 25 Jan 2008
    Last edited: 25 Jan 2008
  4. chaz

    chaz New Member

    Joined:
    25 Jan 2008
    Messages:
    8
    Likes Received:
    0
    Reputations:
    0
    пробовали использовать теги
    PHP:
     и [code] - ничего не получилось высвечивается пустой пост....... :(

    Пожалуй тогда ограничусь функцией из фалйаФункия по моему разумению отсылает письмасгенерированные скриптом.

    function 
    htmlmail($to$subject$msg$sender$hmsg ""$sendMail=TRUE) {
        global 
    $siteurl$setts$htmlfont$currentVersion;

        
    ## set date
        
    $tz date("Z");
        
    $tzs = ($tz 0) ? "-" "+";
        
    $tz abs($tz);
        
    $tz = ($tz/3600)*100 + ($tz%3600)/60;
        
    $sendDate sprintf("%s %s%04d"date("D, j M Y H:i:s"), $tzs$tz);
        
        
    $uniq_id md5(uniqid(time()));

        
    ## create the message body
        
    if ($hmsg == ""$hmsg $msg;
        
    $htmlmsg .= "<!--\n$msg\n-->\n";
        
    $htmlmsg .= "<html><body><img src=\"" $setts['siteurl'] . "images/probidlogo.gif\"><p>$htmlfont$hmsg "</body></html>";

        if (
    $setts['mailer']=="sendmail"&&$sendMail) {
            
    ## send through the UNIX Sendmail function
            
    $Sendmail $setts['sendmail_path'];
        
            
    ## create header
            
    $header "";
            
    $header .= "Date: ".$sendDate."\n";
            
    $header .= "Return-Path: ".$sender."\n";
            
    $header .= "To: ".$to."\n"
            
    $header .= "From: ".$sender." <".$sender.">\n"

            
    ## admin BCC
            
    if ($setts['bcc']=="Y"$header .= "Bcc: ".$setts['adminemail']."\n";

            
    $header .= "Reply-to: ".$sender."\n";
            
    $header .= "Subject: ".$subject."\n";
            
    $header .= sprintf("Message-ID: <%s@%s>%s"$uniq_id$_SERVER['SERVER_NAME'], "\n");
            
    $header .= "X-Priority: 3\n";
            
    $header .= "X-Mailer: PHPProBid/Sendmail [version " $currentVersion "]\n";
            
    $header .= "MIME-Version: 1.0\n";
            
    $header .= "Content-Transfer-Encoding: 7bit\n";
            
    $header .= sprintf("Content-Type: %s; charset=\"%s\"","text/html","iso-8859-1");
            
    $header .= "\n\n";

            if (
    $sender != "")
                
    $sendmail sprintf("%s -oi -f %s -t"$Sendmail$sender);
            else
                
    $sendmail sprintf("%s -oi -t"$Sendmail);

            if(!@
    $mail popen($sendmail"w")) {
                echo 
    "Could not execute: " $Sendmail;
            }
            
            
    fputs($mail$header);
            
    fputs($mail$htmlmsg);
            
            
    $result pclose($mail) >> 0xFF;
            if(
    $result != 0) {
                echo 
    "Could not execute: " $Sendmail;
            }
        } else if (
    $setts['mailer']=="mail"&&$sendMail) {
            
    ## send through the PHP mail() function
            ## create header
            
    $boundary[1] = "b1_" $uniq_id;
            
    $boundary[2] = "b2_" $uniq_id;
        
            
    $header "";
            
    $header .= "Date: ".$sendDate."\n";
            
    $header .= "Return-Path: ".$sender."\n";
            
    $header .= "From: ".$sender." <".$sender.">\n";

            
    ## admin BCC
            
    if ($setts['bcc']=="Y"$header .= "Bcc: ".$setts['adminemail']."\n";

            
    $header .= "Reply-to: ".$sender."\n";
            
    $header .= sprintf("Message-ID: <%s@%s>%s"$uniq_id$_SERVER['SERVER_NAME'], "\n");
            
    $header .= "X-Priority: 3\n";
            
    $header .= "X-Mailer: PHPProBid [version " $currentVersion "]\n";
            
    $header .= "MIME-Version: 1.0\n";
            
    $header .= "Content-Transfer-Encoding: 7bit\n";
            
    $header .= sprintf("Content-Type: %s; charset=\"%s\"","text/html","iso-8859-1");
        
            
    $params sprintf("-oi -f %s",$sender);
            if (
    strlen(ini_get("safe_mode"))<1) {
                
    $old_from ini_get("sendmail_from");
                
    ini_set("sendmail_from",$sender);
                
    $result = @mail($to$subject$htmlmsg$header$params);
            } else {
                
    $result = @mail($to$subject$htmlmsg$header);
            }
            if (isset(
    $old_from)) ini_set("sendmail_from",$old_from);
            if (!
    $result) echo "Mail Sending Failed..";
        }
    }

    ### IP Logging addon, created by Kevin
    if ($_SESSION['memberid'] > 0) {
        
    $set 0;
        
    mysql_query("CREATE TABLE IF NOT EXISTS `probid_iphistory` (
        `memberid` INT NOT NULL, 
        `time1` INT NOT NULL, 
        `time2` INT NOT NULL, 
        `ip` VARCHAR(20) NOT NULL)"
    );
        
    $q mysql_query("SELECT time1, time2, ip FROM `probid_iphistory` WHERE 
        memberid='"
    .$_SESSION['memberid']."' ORDER by time1 DESC LIMIT 1");
        if (
    mysql_num_rows($q) > 0) {
            if (
    $r mysql_fetch_row($q)) {
                if (
    $r[2] == $_SERVER['REMOTE_ADDR']) {
                    
    mysql_query("UPDATE `probid_iphistory` SET time2='".time()."' WHERE 
                    time1='"
    .$r[0]."' AND ip='".$r[2]."'");
                    
    $set 1;
                }
            }
        }
        if (!
    $set) {
            
    mysql_query("INSERT INTO `probid_iphistory` VALUES 
            ('"
    .$_SESSION['memberid']."','".time()."','0','".$_SERVER['REMOTE_ADDR']."')");
        }
    }
     
    #4 chaz, 25 Jan 2008
    Last edited: 25 Jan 2008
  5. chaz

    chaz New Member

    Joined:
    25 Jan 2008
    Messages:
    8
    Likes Received:
    0
    Reputations:
    0
    аааа - сообщение всё ползет и ползёт вниз - и до сих пор никто не ответил!
     
  6. Macro

    Macro Elder - Старейшина

    Joined:
    11 Nov 2006
    Messages:
    552
    Likes Received:
    298
    Reputations:
    207
    Сервер хостинга забанен за спам либо функция mail отключена, других причин не вижу
     
  7. gibson

    gibson Elder - Старейшина

    Joined:
    24 Feb 2006
    Messages:
    391
    Likes Received:
    247
    Reputations:
    88
    если у тебя есть настройка в скриптах, укажи способ отправки через mail а не через sendmail, м.б. sendmail у тя недоступен или не правильно указаны до него пути.
    sendmail
    PHP:
    $setts['mailer']=="sendmail" 
    mail
    PHP:
    $setts['mailer']=="mail"
    м.б может то что сказал Macro, но тогда бы письма приходили бы просто не навсе почтовики. Или по пробуй любой скрипт для отправки почты чтобы проверить функцию mail
     
  8. chaz

    chaz New Member

    Joined:
    25 Jan 2008
    Messages:
    8
    Likes Received:
    0
    Reputations:
    0
    Проверял другими скриптами - всё работает. Хостинг поддерживает и mail() и sendmail
    Пробовал менять настройки этого скрипта (через mail и через sendmail) он не отправляет в любом случае.

    Помогиииииите!!!
    Реально - очень надо.
     
  9. chaz

    chaz New Member

    Joined:
    25 Jan 2008
    Messages:
    8
    Likes Received:
    0
    Reputations:
    0
    ок - попробую упростить задачу....

    нужно просто взять - и переписать вот этот участок функции (который отправляет письма по средствам mail() )


    PHP:
    ## send through the PHP mail() function
            ## create header
            
    $boundary[1] = "b1_" $uniq_id;
            
    $boundary[2] = "b2_" $uniq_id;

            
    $header "";
            
    $header .= "Date: ".$sendDate."\n";
            
    $header .= "Return-Path: ".$sender."\n";
            
    $header .= "From: ".$sender." <".$sender.">\n";

            
    ## admin BCC
            
    if ($setts['bcc']=="Y"$header .= "Bcc: ".$setts['adminemail']."\n";

            
    $header .= "Reply-to: ".$sender."\n";
            
    $header .= sprintf("Message-ID: <%s@%s>%s"$uniq_id$_SERVER['SERVER_NAME'], "\n");
            
    $header .= "X-Priority: 3\n";
            
    $header .= "X-Mailer: PHPProBid [version " $currentVersion "]\n";
            
    $header .= "MIME-Version: 1.0\n";
            
    $header .= "Content-Transfer-Encoding: 7bit\n";
            
    $header .= sprintf("Content-Type: %s; charset=\"%s\"","text/html","iso-8859-1");

            
    $params sprintf("-oi -f%s"$sender);
            if (
    strlen(ini_get("safe_mode"))<1) {
                
    $old_from ini_get("sendmail_from");
                
    ini_set("sendmail_from"$sender);
                
    $result = @mail($to$subject$htmlmsg$header$params);
            } else {
                
    $result = @mail($to$subject$htmlmsg$header);
            }
            if (isset(
    $old_from)) ini_set("sendmail_from"$old_from);
            if (!
    $result) echo "Mail Sending Failed..";
     
  10. chaz

    chaz New Member

    Joined:
    25 Jan 2008
    Messages:
    8
    Likes Received:
    0
    Reputations:
    0
    ну или в конце концов - скажите, можно ли сделать так, чтобы все сгенерированные письма заносились в какой-нибудь файл - а оттуда я бы их уже вручную отсылал..... ну как-нибудь ведь можно решить эту проблему
     
  11. chaz

    chaz New Member

    Joined:
    25 Jan 2008
    Messages:
    8
    Likes Received:
    0
    Reputations:
    0
    и еще. если кто-нибудь подскажет, что означают в строчке

    $params = sprintf("-oi -f%s", $sender);

    параметры -oi -f

    буду очень признателен