2012-04-14 6 views
0

Ich habe ein Problem mit etwas Programmierung. Wenn ein Kunde einen Tisch in einem Café auf der Website des Cafés bestellt, kann der Besitzer des Cafés einsteigen und die Bestellung genehmigen oder ablehnen. Dann muss der Kunde, der die Karte bestellt hat, eine E-Mail erhalten, die besagt, dass die E-Mail akzeptiert oder abgelehnt wird.PHP E-Mail an den Kunden

<?php 

// Connect to server and select database. 
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB"); 
mysql_query("SET NAMES utf8"); 
mysql_query("SET character_set_results='utf8&#8242;"); 

function escapeAddr($addr) { 
    $check = preg_match('/(.*)<(.*)>/', $addr, $a); 
    if ($check) $addr = '=?UTF-8?B?'.base64_encode($a[1]).'?= <'.$a[2].'>'; 
    return $addr; 
} 
function mail_utf8($to, $subject='no subject', $message='', $from='', $cc='', $bcc='') { 
$to = $email; 
$subject = "subject"; 
$message = "message" ; 
$from = escapeAddr($from); 
$header = 'From: '.$from.PHP_EOL 
      . 'Return-Path: '.$from.PHP_EOL 
      . 'Reply-To: '.$from.PHP_EOL 
      . 'MIME-Version: 1.0'.PHP_EOL 
      . 'Content-type: text/plain; charset=UTF-8'.PHP_EOL 
      . 'X-Mailer: PHP/'.phpversion().PHP_EOL 
      . 'Content-Transfer-Encoding: 8bit'.PHP_EOL; 
    if ($cc!='') $header .= 'Cc: '.escapeAddr($cc).PHP_EOL; 
    if ($bcc!='') $header .= 'Bcc: '.escapeAddr($bcc).PHP_EOL; 
    $header .= PHP_EOL; 
    return mail($to, '=?UTF-8?B?'.base64_encode($subject).'?=', $message, $header); 
} 

$g_id = (isset($_GET['id']) && is_numeric($_GET['id']) ? (int)$_GET['id'] : FALSE); 
if(!$g_id) { 
    echo 'Error'; // ID not currect 
} 
else { 
    $query = mysql_query("SELECT email FROM $tbl_name WHERE id=$g_id"); 
    $row = mysql_fetch_assoc($query); 
    $email = $row['email']; 

    if(mail_utf8($email, 'Table', 'message', '[email protected]')) { 
     echo 'Accepted'; 
    } 
    else 
    { 
     echo 'Error'; 
    } 
} 
?> 

Der Besitzer muss sich natürlich anmelden, um die Bestellung genehmigen oder ablehnen zu können. Da es ein Formular ist, das Sie zum Ablehnen oder Genehmigen drücken, aber eine <a href Verbindung, habe ich den Pfad accept.php?Id= verwendet.

Die E-Mail muss an die E-Mail gesendet werden, die der Bestellung entspricht.

+1

Ihre Frage ist nicht klar, bitte bearbeiten und eine klare Frage, um Unterstützung zu erhalten löschte –

+0

Die Frage ist: habe, kann ich diese an die Arbeit. - es funktioniert nicht, wenn ich auf den Link zum Akzeptieren klicke. Der Kunde erhält keine E-Mail, wenn der Eigentümer die Bestellung annimmt und ablehnt. Bitte überprüfen Sie den Code auf Fehler. Vielleicht muss etwas nicht da sein, vielleicht vermisse ich etwas. Ich weiß es nicht. – user1333574

+0

** Spam ** Wenn Sie dies tun Ihre E-Mails vielleicht immer in Spam/Junk-Bereich gehen, weil dies in der Regel sieht Spam erinnern alle diese wirklich Ihren Abonnenten und diese Aufgabe zu erfüllen verwenden ständigen Kontakt oder SSL –

Antwort

0

Zuerst muss das Html-Zeichen in Ihrer zweiten Mysql-Query nicht da sein. Ersetzen Sie es durch eine ' Und zweitens könnten Sie versuchen, die Content-Transfer-Codierung aus dem Mail-Header zu entfernen. Dritter, aber trivialer Grund: ist $ tbl_name gesetzt? Sind Sie sicher, dass die Adresse in der $ from-Variablen das richtige Format für den regulären Ausdruck hat?

1

in einigen Servern, hängen Sie von den Einstellungen ab, PHP-Mailer nicht arbeiten! Vielleicht brauchen Sie SMTP-Klasse, um E-Mails zu senden.

Verwandte Themen