php mail() two copies sent

前端 未结 2 1835
误落风尘
误落风尘 2020-12-12 06:16

I have a simple message that I send using php mail(). The code used:

//recipient info
$to = \"$bookernavn <$mail>\";
$from = \"Visens Venner Hillerød &         


        
2条回答
  •  长情又很酷
    2020-12-12 07:14

    an easy way to prevent this from happening is to use POST method instead of GET for the form.

    if (isset($_POST['submitted']))

    and at the end of the mail code use a redirect that will send the browser to load using a GET method.

    Not only you can then redirect your user to a OK page "mail was sent" or a error page "sorry there was a mistake, please try again", a refresh of that page open by the browser will only send a GET, not triggering the send mail function

    if (empty($errors)) {
      header('Location: http://www.example.com/mail_OK.html');
      exit;
    } else {
      // passing data to the "error/retry" page
      $info = array(
        'msg' => $msg,
        'email' => $_POST['email'],
        'name' => $_POST['name']
        // etc...
      )
      header('Location: http://www.example.com/mailform.php?'.http_build_query($info));
      exit;
    }
    

    in your form you can retrieve those info

    
    

提交回复
热议问题