私はPDOでサインインしようとしていますが、私は傾けません。私は古いデータベース接続を試しているときに動作しますが、PDOでは動作しません。私は正確に問題がどこにあるのか理解できません。接続はOKですが、コードは他のページに移動していません。電子メールとパスワードは正しいです。下記のメールを参照してください。php PDOサインインが機能しないのはなぜですか?
<?php
$servername = "localhost";
$username = "root";
$password = "";
try {
$conn = new PDO("mysql:host=$servername;dbname=social", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
//echo "Connected successfully";
}
catch(PDOException $e)
{
echo "Connection failed: " . $e->getMessage();
}
class UserLogin {
public $id;
public $first;
public $last;
public $email;
public $password;
function Login(){
global $conn;
$this->email = $_POST['user_email'];
$this->password = $_POST['user_email'];
$sql = $conn->prepare("SELECT * FROM scusers WHERE scemail =? AND scpass =?");
$sql->execute(array($this->email, $this->password));
while($row = $sql->fetch(PDO::FETCH_ASSOC)){
$this->email = $row['scemail'];
$this->password = $row['scpass'];
}
}
}
<?php
//print_r($_POST);
if(isset($_POST['user_email']) && isset($_POST['user_password'])){
$login = new UserLogin();
$login->email = $_POST['user_email'];
$login->password = $_POST['user_password'];
if($login->Login()){
header("Location:home.php");
}else{
echo "Negative";
}
}
?>
<body>
<header>
<form action="#" method="post">
<div class="col-sm-6">
<div class="row">
<div class="col-sm-5">
<div class="form-group">
<input name="user_email" type="text" class="form-control" placeholder="Email Address">
<div class="login-bottom-text checkbox">
<label>
<input type="checkbox" id="">
</label>
</div>
</div>
</div>
<div class="col-sm-5">
<div class="form-group">
<input name="user_password" type="text" class="form-control" placeholder="Password">
<div class="login-bottom-text"><a class="bottom-txt" href="recover_password.php">Forgot your password?</a></div>
</div>
</div>
<div class="col-sm-2">
<div class="form-group">
<button type="submit" value=" Send" class="btn btn-default" id="submit">login</button>
</div>
</div>
</div>
</div>
</form>
'Login()'メソッドには 'return'ステートメントがありません。 –
と 'ログイン'に '$ this-> password'に' $ _POST ['user_email'] 'を割り当てます。 – Jeff