Php 功能发送电子邮件两次

Php 功能发送电子邮件两次,php,Php,我有以下功能发送电子邮件两次,我相信运行if$result两次 它在单独的页面上调用: <?php $User = new User(); $User->ValidReg(); $valid = $User->ValidReg(); if ($valid === false) { 下面是其类中的函数: public function ValidReg() { if ( !empty($_POST['username']) && !e

我有以下功能发送电子邮件两次,我相信运行if$result两次

它在单独的页面上调用:

<?php $User = new User();
  $User->ValidReg();
  $valid = $User->ValidReg();
  if ($valid === false) {
下面是其类中的函数:

public function ValidReg() {
  if (  !empty($_POST['username'])
     && !empty($_POST['password'])
     && !empty($_POST['email']) 
     && !empty($_POST['state'])) {

    //valid ?
    $valid = true;

    $username = mysql_real_escape_string($_POST['username']);
    $password = md5(mysql_real_escape_string($_POST['password']));
    $email = mysql_real_escape_string($_POST['email']);
    $firstname = mysql_real_escape_string($_POST['firstname']);
    $lastname = mysql_real_escape_string($_POST['lastname']);
    $state = mysql_real_escape_string($_POST['state']);

    $checkusername = mysql_query("SELECT * FROM users WHERE Username = '".$username."'");

    if(mysql_num_rows($checkusername) == 1) {
      echo "<div id='shopperlogin1'><p>Sorry, that username is taken.<br /> Please go back and try again.</p></div>";
    }
    else {
      //test
      $confirm_code=mysql_real_escape_string(md5(uniqid(rand())));

      $sql="INSERT INTO temp_users (
              confirm_code, Username, Password, 
              EmailAddress, FirstName, LastName, State) 
            VALUES (
              '$confirm_code', '$username', '$password', 
              '$email', '$firstname', '$lastname', '$state')";
      $result=mysql_query($sql) 
        or die ("Query failed: " . mysql_error() . " Actual query: " . $query);

      // if suceesfully inserted data into database, send confirmation link to email
      if ($result) {

        // send e-mail to ...
        $to=$email;

        // Your subject
        $subject="Your confirmation link here";

        // From
        $header="blahblah@blahbalh.com";

        // Your message
        $message="Your Comfirmation link \r\n";
        $message.="Click on this link to activate your account \r\n";
        $message.="http://www.employeediscounted.com/secret/login.php?passkey=$confirm_code";

        // send email
        $sentmail = mail($to,$subject,$message,$header);
      }

      // if not found
      else {
        echo "<div id='emailmsg'>Not found your email in our database.</div>";
      }

      // if your email succesfully sent
      if($sentmail){
        echo "<div id='emailmsg'>Your Confirmation link Has Been Sent To Your Email Address.</div>";
      }
      else {
        echo "<div id='emailmsg'>Cannot send Confirmation link to your e-mail address.</div>";
      }
    }
  }
  else {
     $valid = false;
  }
  return $valid;
}

要么我遗漏了什么,要么你只是调用了函数两次:

$User->ValidReg();
$valid = $User->ValidReg();
所以,是的,你将发送两封电子邮件


您是否希望第二次调用失败,因为该用户已存在?这不是因为您使用的是两个不同的表,用户和临时用户。

要么我遗漏了什么,要么您只是调用了两次函数:

$User->ValidReg();
$valid = $User->ValidReg();
所以,是的,你将发送两封电子邮件


您是否希望第二次调用失败,因为该用户已存在?不会的,因为您使用的是两个不同的表,用户和临时用户。

我将为团队选择一个表,并对这段代码进行格式化。在这里,我减少了总体不一致的样式并规范了缩进。不过还是有很多很长的弦。@Welbog:很大的改进-谢谢你花时间@法汉:你真的需要改进你的风格。在这个函数的不同部分,你有很多缩进和不同的打开块的样式。一点可读性会有很大帮助。@Farhan:很高兴知道。无论您如何在文件中缩进代码,当您在文件上发布代码段时,您都应该小心制表符和不必要的空白。如果您不必不断地左右滚动来查看整个内容,那么代码的调试就会容易得多。我将为团队提供一个,并对代码进行格式化。在这里,我减少了总体不一致的样式,并规范了缩进。不过还是有很多很长的弦。@Welbog:很大的改进-谢谢你花时间@法汉:你真的需要改进你的风格。在这个函数的不同部分,你有很多缩进和不同的打开块的样式。一点可读性会有很大帮助。@Farhan:很高兴知道。无论您如何在文件中缩进代码,当您在文件上发布代码段时,您都应该小心制表符和不必要的空白。如果你不需要不断地左右滚动就能看到整个过程,那么代码调试起来就容易多了。好吧,我要去掉第一个函数。我想这会解决一切的。嗯,是的,我是。好吧,我要去掉第一个函数。我想这会解决所有问题。