PHP mailler komut ile Yardım

3 Cevap php

Ben PHP geldiğinde clueless kulüpler ve bu e-postalar bir formun içeriği bir komut dosyası var. Sorun ben de yakalanır isim ve e-posta adresine göndermek istediğiniz zaman bana sadece yorum gönderir olduğunu.

Herkes bunu yapmak için bu komut ayarlayabilirsiniz nasıl biliyor?

Şimdiden bir milyon teşekkür!

<?php
 error_reporting(E_NOTICE);
 function valid_email($str)
 {
  return ( ! preg_match("/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/ix", $str)) ? FALSE : TRUE;
 }
 if($_POST['name']!='' && $_POST['email']!='' && valid_email($_POST['email'])==TRUE && strlen($_POST['comment'])>1)
 {
  $to = "me@me.com";
  $headers =  'From: '.$_POST['email'].''. "\r\n" .
    'Reply-To: '.$_POST['email'].'' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();
  $subject = "Contact Form";
  $message = htmlspecialchars($_POST['comment']);
  if(mail($to, $subject, $message, $headers))
  {
   echo 1; //SUCCESS
  }
  else {
   echo 2; //FAILURE - server failure
  }
 }
 else {
  echo 3; //FAILURE - not valid email
 }
?>

3 Cevap

Yapabileceğin

$extra_fields = 'Name: '.$_POST['name'].'<br>Email: '.$_POST['email'].'<br><br>Message:<br>';
$message = $extra_fields.$_POST['comment'];

Tam olarak temizlemek, ancak nokta olsun. Sadece $ mesajla verileri bağlamak.

Bu satırı değiştirin:

  $message = htmlspecialchars($_POST['comment']);

karşı

  $message = htmlspecialchars($_POST['name'] .  $_POST['email'] . "\r\n" .  $_POST['comment']);

Or something karşı that effect

Sorun onun sadece $_POST['comment']) değişkeni de dahil olmak üzere $message = ... hattıdır. Sen $_POST['name'] ve $_POST['email'] aşağıdaki gibi bir şey eklemek gerekir:

$message = '';
$message .= htmlspecialchars($_POST['name']) . "\n";
$message .= htmlspecialchars($_POST['email']) . "\n";
$message .= htmlspecialchars($_POST['comment']) . "\n";