Просмотр полной версии : проблемы с PHP pro bid
Не смог найти на вашем форуме тему, посвященную этому скрипту.
Использую версию 5.24.
Скрипт не отправляет письма активации.
Если кто-нибудь занимается фрилансингом и может помочь - готов быть благодарен не только на словах.
Если кто-то сталкивался с этой проблемой и решил ее - пожалуйста подскажите.
Даллее привожу полный текст файла functions.php, в котором по моему разумению находится ошибка.
Чтобы не пугать людей делаю это отдельным постом
ой - нет - я чего-то не расчитал - код слишко длинный - меня за спам удалят :))
оставлю аську - стучите, если можете помочь 465 421 286
gold-goblin
25.01.2008, 17:57
аставляй не забанят (используй теги )
пробовали использовать теги [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) >> 8 & 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']."')");
}
}
аааа - сообщение всё ползет и ползёт вниз - и до сих пор никто не ответил!
Сервер хостинга забанен за спам либо функция mail отключена, других причин не вижу
если у тебя есть настройка в скриптах, укажи способ отправки через mail а не через sendmail, м.б. sendmail у тя недоступен или не правильно указаны до него пути.
sendmail $setts['mailer']=="sendmail"
mail $setts['mailer']=="mail"
м.б может то что сказал Macro, но тогда бы письма приходили бы просто не навсе почтовики. Или по пробуй любой скрипт для отправки почты чтобы проверить функцию mail
Проверял другими скриптами - всё работает. Хостинг поддерживает и mail() и sendmail
Пробовал менять настройки этого скрипта (через mail и через sendmail) он не отправляет в любом случае.
Помогиииииите!!!
Реально - очень надо.
ок - попробую упростить задачу....
нужно просто взять - и переписать вот этот участок функции (который отправляет письма по средствам mail() )
## 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..";
ну или в конце концов - скажите, можно ли сделать так, чтобы все сгенерированные письма заносились в какой-нибудь файл - а оттуда я бы их уже вручную отсылал..... ну как-нибудь ведь можно решить эту проблему
и еще. если кто-нибудь подскажет, что означают в строчке
$params = sprintf("-oi -f%s", $sender);
параметры -oi -f
буду очень признателен
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot