как назначить переменную поля ввода из извлеченного адреса электронной почты из URL с помощью PHP - PullRequest
0 голосов
/ 30 апреля 2019

я пытаюсь передать переменную в поле ввода, переменная - это адрес электронной почты, который я извлек из 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);
                            ?>

я получаюполе пароля, потому что это пользователь, который вводит его, но я не знаю, почему адрес электронной почты не приходит, я перепробовал все, что знаю, но он все еще не работает

пожалуйста, парень, помогите мне

Ответы [ 2 ]

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

Во-первых: проверьте службу электронной почты smtp на ПК или в Linux

Проверьте настройки PHP в файле php.ini для активной версии php, которую вы используете.

т.е. Использование MAMP для MAC OS, gtв Приложения -> MAMP -> conf -> php7.0.32 (должна быть активная версия, которую вы используете, поэтому, если вы используете php 5.3.14, перейдите в этот каталог) -> php.ini Отредактируйте файл 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"

Перезапустите apache2 после обновления файла php.ini.

При использовании MAC OS для остановки и перезапуска почтовой службы: sudo postfix stop && sudo postfix start sudopostfix reload

Тестовое электронное письмо

Отправка тестового электронного письма из терминала CLI:

echo "Test sending email from Postfix" | mail -s "Test Postfix" example@gmail.com

В качестве альтернативы я могу отправить тестовое сообщение из терминала CLI, используя это:

echo "test message" | sendmail -v example@gmail.com

Проверка ошибок для sendmail с помощью команды терминала CLI: mailq

<?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);
?>
0 голосов
/ 30 апреля 2019

@ Britchi3 Проблема в том, что $ email или $ _POST не могут получить адрес электронной почты с URL-адреса, для его получения необходимо использовать $ _GET.

Также вы можете удалить избыточный $ email = $ email; в строке 4 вашего PHP-скрипта. $ email = $ _POST ['email']; достаточно просто ... кроме того, это должно быть $ email = $ _GET ['email']; так как вы извлекаете письмо из URL. Затем, чтобы избежать ошибки, когда $ _GET ['email'] пусто, вы можете обернуть $ _GET ['email'] в метод empty () следующим образом: if (! Empty ($ _ GET ['email'])) { echo $ _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);
                            ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...