php - MySQL和PHP解析错误

标签 php mysql html mysqli

我的程序假设要存储用户的电子邮件,并允许他们登录(如果它是新电子邮件),或者如果该电子邮件已经用于登录,则该程序是要提醒用户该电子邮件邮件已经登录。我的问题是该电子邮件似乎未存储在表中以验证以前是否使用过该电子邮件。每次我使用相同的凭据登录时,都会收到祝贺声明,而不是错误声明。有人看到我不正确的地方吗?也许是我的语法(我一直在这里工作数小时,但似乎无法找出问题所在)。先谢谢了!任何输入表示赞赏!

dbparams.txt

username=sdev_owner
password=sdev300
host=localhost
db=sdev


Disc_7.php

<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <title>Discussion 7 </title>
</head>
<body OnLoad="document.createlogin.uname.focus();">
  <?php     
    if(isset($_POST["CreateSubmit"])) {                     
        validate_form();             
    } else {                
        $messages = array();
    show_form($messages);  
    } 
?>

  <?php
function show_form($messages) {         
    // Assign post values if exist
    $uname="";
    $email="";
    if (isset($_POST["uname"])) 
          $uname=$_POST["uname"];

    if (isset($_POST["email"])) 
          $email=$_POST["email"];   


    echo "<p></p>";
    echo "<h2> Enter Login Information</h2>";
    echo "<p></p>";     
?>
    <form name="createlogin" method="POST" action="Disc_7.php">
      <table border="1" width="100%" cellpadding="0">
        <tr>
          <td width="157">Username:</td>
          <td><input type="text" name="uname" value='<?php echo $uname ?>' size="30"></td>
        </tr>
        <tr>
          <td width="157">Email:</td>
          <td><input type="text" name="email" value='<?php echo $email ?>' size="30"></td>
        </tr>
        <tr>
          <td width="157"><input type="submit" value="Submit" name="CreateSubmit"></td>
          <td>&nbsp;</td>
        </tr>
      </table>
    </form>

    <?php
} 
?>
      <?php
function validate_form(){

$messages = array();
$redisplay = false;
$uname = $_POST["uname"];
$email = $_POST["email"];

  $login = new LoginClass($uname,$email);   
  $count = countLogin($login);   

    if ($count==0) {    
        $res = insertLogin($login); 
        echo "<h3>Congratulations, you've logged in!</h3> ";         
    } else {
        echo "<h3>Error: A login with that e-mail has already logged in.</h3> ";        
    }   
}

function countLogin ($login){        

$mysqli = connectdb();
$uname = $login->getUname();
$email = $login->getEmail();

$mysqli = connectdb();

$Myquery = "SELECT count(*) as count from LoginData where eMail='$email'";   

if ($result = $mysqli->query($Myquery)) {
    while( $row = $result->fetch_assoc()) {
        $count=$row["count"];                                             
    }    
    $result->close();         
}
    $mysqli->close();   

    return $count;      
}

function insertLogin ($login){

$mysqli = connectdb();

$uname = $login->getUname();
$email = $login->getEmail();

$Query = "INSERT INTO LoginData (userName,eMail) VALUES ('$uname', '$email')";

    $Success=false;           
    if ($result = $mysqli->query($Query)) { 
      $Success=true;
    }
    $mysqli->close();

        return $Success;
    }

function getDbparms(){
    $trimmed = file('parms/dbparms.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
    $key = array();
    $vals = array();
    foreach($trimmed as $line){
        $pairs = explode("=",$line);    
         $key[] = $pairs[0];
         $vals[] = $pairs[1]; 
    }

    $mypairs = array_combine($key,$vals);

    $myDbparms = new DbparmsClass($mypairs['username'],$mypairs['password'], $mypairs['host'],$mypairs['db']);

    return $myDbparms;
}

function connectdb() {              
    $mydbparms = getDbparms();

    $mysqli = new mysqli($mydbparms->getHost(), $mydbparms->getUsername(),$mydbparms->getPassword(),$mydbparms->getDb());

    if ($mysqli->connect_error) {
        die('Connect Error (' . $mysqli->connect_errno . ') '
                . $mysqli->connect_error);      
    }
    return $mysqli;
    }

 class DBparmsClass
    {
        private $username="";
        private $password="";
        private $host="";
        private $db="";

        public function __construct($myusername,$mypassword,$myhost,$mydb)
        {
          $this->username = $myusername;
          $this->password = $mypassword;
              $this->host = $myhost;
                $this->db = $mydb;
        }

          public function getUsername ()
        {
            return $this->username;
        } 
          public function getPassword ()
        {
            return $this->password;
        } 
          public function getHost ()
        {
            return $this->host;
        } 
          public function getDb ()
        {
            return $this->db;
        }    

        // Set methods 
        public function setUsername ($myusername)
        {
            $this->username = $myusername;      
        }
        public function setPassword ($mypassword)
        {
            $this->password = $mypassword;      
        }
        public function setHost ($myhost)
        {
            $this->host = $myhost;      
        }
        public function setDb ($mydb)
        {
            $this->db = $mydb;      
        }    

    } // End DBparms class

 // Class to construct Students with getters/setter
class LoginClass
{
    // property declaration
    private $uname="";
    private $email="";

    // Constructor
    public function __construct($uname,$email)
    {
      $this->uname = $uname;
      $this->email = $email;     
    }

    // Get methods 
      public function getUname ()
    {
        return $this->uname;
    } 
      public function getEmail ()
    {
        return $this->email;
    } 

    // Set methods 
    public function setUname ($value)
    {
        $this->uname = $value;      
    }
    public function setEmail ($value)
    {
        $this->email = $value;      
    }

} 
?>
</body>
</html>

最佳答案

我发现了问题,我必须登录MySQL并在那里创建表。我不确定在哪里创建表并在尝试将其添加到程序中时无法识别该表。

关于php - MySQL和PHP解析错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43563768/

相关文章:

PHP 如何在复制字符串中的每个字符后将字符串变为 "unduplicate"(还原字符串)

PHP - wkhtmltopdf 二进制文件

php - 文本框内的 undefined variable

html - 在等高 div 的底部 float 段落

javascript - 用javascript检测当前页面是否有post数据

php - JSON 字符串输出浮点值

mysql - 在不登录的情况下检查MySQL服务器是否启用了ssl

php mysql WHERE子句错误

html - 神秘元素在移动设备上增加了额外的宽度

PHP - array_filter 引用或类似