我的登录有一些问题,login.php 中是我的表单和我的脚本
<div class="container">
<!-- Mensaje -->
<div id="mensaje"></div>
<form id="login-form" method="post" action="#" class="form-horizontal" >
<div class="form-group">
<label for="Usuario" class="control-label col-xs-2">Usuario</label>
<div class="col-xs-10">
<input id="Usuario" value="<?php echo $txtUsuario; ?>" name="Usuario" type="text" class="form-control" required placeholder="Usuario">
</div>
</div>
<div class="form-group">
<label for="Contrasena" class="control-label col-xs-2" >Contraseña</label>
<div class="col-xs-10">
<input id="Contrasena" value="<?php echo $txtContrasena; ?>" name="Contrasena" type="password" class="form-control" required placeholder="Contraseña">
</div>
</div>
<div class="form-group">
<div class="col-xs-offset-2 col-xs-10">
<button id="login" type="submit" class="btn btn-primary">Iniciar Sesion</button>
</div>
</div>
</form>
</div>
<script type="text/javascript">
$(document).ready(function(){
$("#login").click(function(){
var objUsuario = new Object();
objUsuario.Usuario =$('input#Usuario').val();
objUsuario.Contrasena=$('input#Contrasena').val();
var DatosJson = JSON.stringify(objUsuario);
// Checking for blank fields.
if( objUsuario.Usuario =='' || objUsuario.Contrasena ==''){
$("#mensaje").html("<div class='alert alert-success'>HOLA HOLA HOLA: " + "</div>");
$('input[type="text"],input[type="password"]').css("border","2px solid red");
$('input[type="text"],input[type="password"]').css("box-shadow","0 0 3px red");
alert("Rellenar Campos");
}else {
$.post("LoginValidar.php",{ UsuarioPost: DatosJson},
function(data, textStatus) {
if(data.Estatus=='True') {
$("#mensaje").html("<div class='alert alert-success'>Mensaje: " + data.Msg + "</div>");
$('input[type="text"]').css({"border":"2px solid red","box-shadow":"0 0 3px red"});
$('input[type="password"]').css({"border":"2px solid #00F5FF","box-shadow":"0 0 5px #00F5FF"});
alert(data);
} if(data.Estatus=='False'){
$("form")[0].reset();
$("#mensaje").html("<div class='alert alert-danger'>Mensaje: " + data.Msg + "</div>");
$('input[type="text"],input[type="password"]').css({"border":"2px solid #00F5FF","box-shadow":"0 0 5px #00F5FF"});
alert(data);
} else{
alert(data);
}
});
}
});
});
</script>
我的文件 LoginValidar.php 将参数发送到 crud.php 我的 PDO 查询在哪里
try
{
//$array = array("Usuario"=>$Usuario, "Contrasena"=>$Contrasena);
include("constantes.php");
$Usuario = $_POST["UsuarioPost"];
$options = array('uri' => URL_BASE,'location' => WEBSERVICE);
$client = new SoapClient(NULL, $options);
$response = $client->IniciarSesion($Usuario);
echo $response;
}catch(Exception $e){
echo "Error:".$e->getMessage();
}
crud.php, i think the problem is in my crud because the parameters are sent but i cant login
public function IniciarSesion($CadenaJson){
$ObjetoJson = json_decode($CadenaJson);
$response = array("Msg"=>"","Estatus"=>"");
try
{
$stmt = $this->db->prepare("SELECT usuario from USUARIOS WHERE usuario= :Usuario AND contrasena= :Contrasena");
$stmt->bindparam(":Usuario",$ObjetoJson->Usuario);
$stmt->bindparam(":Contrasena",$ObjetoJson->Contrasena);
$stmt->execute();
$rows = $stmt->fetch(PDO::FETCH_NUM);
if($rows > 0) {
$response["Msg"] = "Login correct";
$response["Estatus"] = "True";
}
else{
echo "else";
}
}catch(PDOException $e){
$response["Msg"] = $e->getMessage();
$response["Estatus"] = "False";
}
return json_encode($response);
}
If i delete the if sentence i always receive true msg. With if i receive this msg: "Msg":"","Estatus":"" Thanks ... I hope somebody can help me :)
最佳答案
我假设您想要检查受影响的行。您可以使用 $stmt->rowCount()
示例
$stmt->execute();
if($stmt->rowCount() > 0){ //If at least 1 row is selected
$rows = $stmt->fetch(PDO::FETCH_NUM);
//Do sth. here with your result if you want
$response["Msg"] = "Login correct";
$response["Estatus"] = "True";
} else {
echo "else";
}
关于php - 无法使用pdo和json访问php登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36909149/