У меня есть следующий код, сохраненный как 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 ответа
Чтобы получить $_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...");
}
Если вы хотите извлечь значения из параметров 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...");
}
?>
Попытайся.
<?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...");
?>
Похожие вопросы
Новые вопросы
php
PHP - это широко используемый высокоуровневый, динамический, объектно-ориентированный и интерпретируемый язык сценариев, в первую очередь предназначенный для серверной веб-разработки. Используется для вопросов о языке PHP.