Nasıl sorun bir hemen hemen aynı senaryo için iç sunucu hatası ateş üzerinde herhangi bir öneriniz?

3 Cevap php

Sitemde ben mail ve replyMail.php gönderen bir contactUser.php var. Ben büyük çalışıyor e-posta bildirimleri göndermek için benim iletişim kullanıcı phpMail koyduk. Ben aynı değişkenleri onun bana bir iç sunucu hatası veriyor paylaşıyor (kontak kullanıcı posta kutusu olarak aynı yere gider mail) Benim replyMail üzerinde aynı kod yığın koyduğunuzda. Ben farklı GET vars yanı sıra yankılandı die ($ vars) denenmiş ve sorguları yankılandı var. Sorun ne olabilir Herhangi bir fikir. İşte benim kod:

$prof = new User($_GET['id']);

$query = "SELECT `Email` FROM `Users` WHERE `id` = '" . $prof->id . "'";
$request = mysql_query($query,$connection) or die(mysql_error());
$result = mysql_fetch_array($request); 

$Email = $result['Email'];


$to = $Email;
$subject = "$auth->first_name $auth->last_name sent you a message";
$message = "$auth->first_name $auth->last_name sent you a message:<br /> <br /> <a href='http://www.blah.org/Inbox.php'>Click here to view</a><br /><br /> The Team";
$from = "blah<noreply@blah.org>";
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= "From:$from";
mail($to, $subject, $message, $headers);

3 Cevap

Ben gerçekten bir işlev içine sarma öneririz. Deftere kadarıyla, ben herhangi bir oto-ayardaki sayısı veya kolayca değişkenler ile karıştırmasını olabilir içeren bu durumda, genel ad tüm koduna sahip anlamda olsun.

Gibi bir şey:

// Function that accepts a user object and a database connection, then sends a notice email.
function email_message_notice($prof, $connection){
$query = "SELECT `Email` FROM `Users` WHERE `id` = '" . $prof->id . "'";
$request = mysql_query($query,$connection) or die(mysql_error());
$result = mysql_fetch_array($request); 

$Email = $result['Email'];

$to = $Email;
$subject = "$auth->first_name $auth->last_name sent you a message";
$message = "$auth->first_name $auth->last_name sent you a message:<br /> <br /> <a href='http://www.blah.org/Inbox.php'>Click here to view</a><br /><br /> The Team";
$from = "blah<noreply@blah.org>";
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= "From:$from";
$res = mail($to, $subject, $message, $headers);
return $res;
}


$prof = new User($_GET['id']);
$sent = email_message_notice($prof, $connection);

Ilgili bir veritabanı var bu yana, bu denenmemiş kodu, o yüzden çalışıp çalışmadığını sınamak ve başka sorunları kendiniz ayıklamak istediğiniz isteyeceksiniz, ama aksi takdirde kod bölümlere ve paylaşmak için iyi bir yol olmalı. Her iki komut tam olarak aynı şeyi yapıyoruz, sadece içeren ayrı bir email_user fonksiyon içerebilir.

Sunucu günlüğüne içine bak. Neyin yanlış olduğunu söylemek gerekir. Belki izinleri dosya.

Olduğu bütün script? 500 hatası neden olabilecek bir şey orada göremiyorum. Eğer tüm sayfayı veya tüm sayfanın kaynak koduna bir bağlantı gönderebilir miyim?

Bu tekrar tekrar çağrılan bazı döngü veya toplu posta bir parçası mı?

Apache hata günlükleri ele almak için bir yolu var mı? Sadece onlar yanlış giderse ne size kesin bir cevap verecektir.