登录表单出错

时间:2015-05-30 13:45:41

标签: php html

当我尝试登录时,它总是出现:“El usuario ocontraseñaesincorrecto”,我不知道问题。 我认为当我倾斜代码时,我做了一件坏事。

这里我留下代码:

Acceso.php

<?php
session_start();
$titulo = "Acceso al panel";
include 'inc/header.php';
if($_SESSION['Logueado'] == TRUE) {
    header('Location: funciones/panel.php');
}else{
?>
<html>
<center>
<form method="POST" action="funciones/panel.php">
  <div class="form-group">
Nombre: <input type="text" name="nombre"></input>
<hr>
Contraseña: <input type="password" name="pass"></input>
<hr>
<input type="submit" name="enviar" value="Acceso"></input>
</div>
</form>
</center>
</html>
<?php
include 'inc/footer.php';
}
?>

下一步:panel.php

<?php
session_start();
include 'inc/header.php';
include 'panel_funciones.php';

$usuario = $_POST["nombre"];
$pass = $_POST["pass"];
try {
    $bd = new PDO("mysql:host=localhost;dbname=b9_16267033_1","b9_16267033","123456");
    $bd->query("SET NAMES 'utf8'");
} catch (Exception $e){
    echo "No se ha podido conectar";
    exit;
}
try{
        $sql= "SELECT usuario, pass FROM usuarios WHERE usuario='$usuario' and pass='$pass'";
}catch(Exception $e){
    echo "Error en consulta";
    exit;
}
$iniciosesion=mysql_query($sql);
$contar = mysql_num_rows($iniciosesion);

// AQUI COMIENZA COMPROBACIÓN

if ($contar == 1) {
    $_SESSION['Logueado'] = TRUE;
panel();
}
else{
    echo "El usuario o contraseña es incorrecto";
}
include 'inc/footer.php';
?>

功能:panel_funciones.php

<?
$user = "Javier";
function panel(){
session_start();
echo "<center><h3>Bienvenido al Panel de Control</h1></center></h3></center>";
   echo '<form action="logout.php" method="post">';
   echo '<input type="submit" value="salir"></form>';
   echo '<center>
<h4>Añadir Imagen</h4><hr>
<form method="POST" action="accion.php">
<div class="form-group">
Nombre: <input type="text" name="titulo"></input>
Link a Imagen: <input type="text" name="link"></input>
<input type="submit" name="enviar" value="Enviar"></input>
</div>
</form>
<center>';
echo '
<h4>Eliminar Imagen</h4><hr>
<form method="POST" action="accion2.php">
Escribe link <input type="text" name="imagen"></input>
<input type="submit" name="enviar2" value="Enviar"></input>';
}
?>

感谢您的帮助,我不时尝试学习,我需要提出一些问题。

1 个答案:

答案 0 :(得分:1)

使用PDO非常棒。

但我假设你忘了检查哪些参数采用mysql_query: 你正在使用PDO语句而不是字符串。

<强> panel.php

...
$sql=$bd->query("SELECT usuario, pass 
                 FROM usuarios 
                 WHERE usuario='$usuario' and pass='$pass') ");
}
catch(Exception $e){
echo "Error en consulta";
exit;
}
// Continue to use PDO instead depreciated functions :'(
// Using fetchAll() & count instead

$iniciosesion=mysql_query($sql);
$contar = mysql_num_rows($iniciosesion);

将这两条最后一行移动到最后一次尝试&amp;通过以下方式替换

$iniciosesion = $bd->query($sql);
$result = $iniciosesion->fetchAll();
$contar = count($result);

Acceso.php

你在主页中遗漏了<html>个标签。

<?php session_start(); ?>
<html>
<head></head>
<body>
<?php 
...
//Then close body & html close at the end of your file.

来源:

PHP.net : PdoStatement::Fetchall

PHP.net mysql_query