Запрос POST выходит пустым, почему? - PullRequest
0 голосов
/ 03 мая 2019

У меня есть следующий код, сохраненный как send.php:

<?php
$to_email = "person@gmail.com";
$subject = $_POST['subject'];
$body = "Hi, This is test email send by PHP Script";
$headers = "From: Me@myWebsite.com";

if ( mail($to_email, $subject, $body, $headers)) {
    echo("Email successfully sent to $to_email...");
} else {
    echo("Email sending failed...");
}
?>

Письмо отправляется, если я перехожу на https://myWebsite.com/Stuff/send.php и набираю $subject = "something"

Но если я установил $subject быть переменной POST.Он не отправляет тему, когда я пишу этот URL в браузере (например, электронное письмо все еще отправляется, но тема теперь пуста):

 https://myWebsite.com/Stuff/send.php?subject=notworking

Я ломал голову над этой проблемой иборолся в течение пары часов.Кто-нибудь знает?

Ответы [ 3 ]

0 голосов
/ 03 мая 2019

Чтобы получить $_POST и $_GET, вы можете использовать $_REQUEST, который будет работать для обоих.

В вашем коде замените

$subject = $_GET['subject'];

С

$subject = $_REQUEST['subject'];

Если кто-то напрямую нажал на URL в браузере без указания параметра, вы можете запретить ему использование

if(!empty($_REQUEST['subject']))
{
  $to_email = "person@gmail.com";
  $subject = $_REQUEST['subject'];
  $body = "Hi, This is test email send by PHP Script";
  $headers = "From: Me@myWebsite.com";

  if ( mail($to_email, $subject, $body, $headers))
    echo("Email successfully sent to $to_email...");
  else
    echo("Email sending failed...");
}
0 голосов
/ 03 мая 2019

Попробуй.

 <?php
    $to_email = "person@gmail.com";
    $subject = (isset($_GET['subject']) && (!empty($_GET['subject']))?$_GET['subject']:"No Subject";
    $body = "Hi, This is test email send by PHP Script";
    $headers = "From: Me@myWebsite.com";

    if ( mail($to_email, $subject, $body, $headers))
        echo("Email successfully sent to $to_email...");
    else
        echo("Email sending failed...");
?>
0 голосов
/ 03 мая 2019

Если вы хотите извлечь значения из параметров URL, вам нужно использовать $_GET глобальная переменная для получения таких данных, как

<?php
$to_email = "person@gmail.com";
$subject = $_GET['subject'];
$body = "Hi, This is test email send by PHP Script";
$headers = "From: Me@myWebsite.com";

if ( mail($to_email, $subject, $body, $headers)) {
    echo("Email successfully sent to $to_email...");
} else {
    echo("Email sending failed...");
}
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...