これは私のlogin.phpPDO - WAMPではなく、Webサーバー上で作業クエリが
<?php
error_reporting(E_ALL);
ini_set('display_errors',1);
include("config.php");
include("userClass.php");
$userClass = new userClass();
$errorMsgReg = '';
$errorMsgLogin = '';
/* Login Form */
if (!empty($_POST['loginSubmit'])) {
$usernameEmail = $_POST['usernameEmail'];
$password = $_POST['password'];
if (strlen(trim($usernameEmail)) > 1 && strlen(trim($password)) > 1) {
$id = $userClass->userLogin($usernameEmail, $password);
if(!$id)
{
echo "Not entering in userClass->Login";
}
if ($id) {
// Not entering here
$url = BASE_URL . 'welcome.php';
header("Location: $url");
} else {
echo "$id";
$errorMsgLogin = "Please check login details.";
}
}
}
であり、これは
<?php
error_reporting(E_ALL);
ini_set('display_errors',1);
class userClass
{
/* User Login */
public function userLogin($usernameEmail,$password)
{
try{
$db = getDB();
$hash_password= hash('sha256', $password); //Password encryption
$stmt = $db->prepare("SELECT id FROM doctorlocation WHERE (doctorusername=:usernameEmail or doctoremail=:usernameEmail) AND doctorpassword=:hash_password");
$stmt->bindParam("usernameEmail", $usernameEmail,PDO::PARAM_STR) ;
$stmt->bindParam("hash_password", $hash_password,PDO::PARAM_STR) ;
$stmt->execute();
$count=$stmt->rowCount();
$data=$stmt->fetch(PDO::FETCH_OBJ);
$db = null;
if($count)
{
$_SESSION['usernameEmail']=$usernameEmail;
$_SESSION['id']=$data->id; // Storing user session value
return true;
}
else
{
return false;
}
}
catch(PDOException $e) {
echo '{"error":{"text":'. $e->getMessage() .'}}';
}
}
マイ接続ファイル、config.phpの
私userClass.phpです<?php
error_reporting(E_ALL);
ini_set('display_errors',1);
session_start();
/* DATABASE CONFIGURATION */
define('DB_SERVER', '******');
define('DB_USERNAME', '******');
define('DB_PASSWORD', '******');
define('DB_DATABASE', '*******');
define("BASE_URL", "******");
function getDB()
{
$dbhost=DB_SERVER;
$dbuser=DB_USERNAME;
$dbpass=DB_PASSWORD;
$dbname=DB_DATABASE;
try {
$dbConnection = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass);
$dbConnection->exec("set names utf8");
$dbConnection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $dbConnection;
}
catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
}
?>
エラーはここにあるようです$ id = $ userClass-> userLogin($ usernameEmail、$ password);
これは小さな問題であるはずですが、私の頭の中で私の頭を包み込むように見えません。どんな指針も役に立つでしょう。
ありがとうございました
同じ名前のプレースホルダー –
@ Fred-ii-を使用することはできません。実際は同じ名前のプレースホルダーを使用できます。エミュレートされたプレースホルダーを使用するだけです。 PDO :: ATTR_EMULATE_PREPARES http://php.net/manual/en/pdo.setattribute.php – bassxzero
@bassxzeroあなたはそこにポイントがあります。なぜなら、それはローカルシステムでのみで、ライブサーバでは動作しないからです。 –