PHP login.php 用户无法在 mysql 上工作

标签 php mysql

我登录数据库时遇到问题。 我有表格:

<form data-abide method="post" action="confirmar-login.php" id="formlogin" name="formlogin" >
                <div class="row">
                    <div class="small-8">
                        <div class="row">
                            <div class="small-3 columns">
                                <label for="email" class="right inline">E-Mail:</label>
                            </div>
                            <div class="small-9 columns">
                                <input class="radius" type="email" id="email" name="email" placeholder="joao@mail.com" required="">
                                <small class="error">Field required</small>
                            </div>
                        </div>
                    </div>
                    <div class="small-8">
                        <div class="row">
                            <div class="small-3 columns">
                                <label for="senha" class="right inline">Senha:</label>
                            </div>
                            <div class="small-9 columns">
                                <input class="radius" type="password" id="senha" name="senha" placeholder="****" required="">
                                <small class="error">Field required</small>
                            </div>
                        </div>
                    </div>
                    <div class="small-8">
                        <div class="row">
                            <input type="submit" class="button radius " value="Logar">
                            <a href="cadastro.php" class="button radius " >Cadastrar</a>
                        </div>
                    </div>
            </form>

当提交登录表单时,它会激活confirmar-login.php文件,它的代码是: 变量 $banco 它是我的数据库名称

<?php
session_start();
require_once 'configuracao.php';
$email = $_POST['email'];
$senha = $_POST['senha'];
$conexao -> query("use $banco") or die ("Erro ao selecionar o database");
$result = $conexao -> prepare("SELECT * FROM usuarios WHERE email_usuario = '$email'   and senha = '$senha'") or die("Erro ao selecionar o usuário");

if (mysql_num_rows($result) > 0) {
$_SESSION['email'] = $email;
$_SESSION['senha'] = $senha;
header('location:index.php');
} else {
unset($_SESSION['email']);
unset($_SESSION['senha']);
header('location:login.php');
}
?>

在我的文件 configuracao.php 中有代码:

$conexao = new PDO($dsn, $user, $pass);

我没有发现问题...查询返回任何内容,并且代码没有输入 IF。也就是说,当我输入电子邮件和密码时,它只会将我重定向到登录名......

最佳答案

您正在使用PDO,因此不要使用mysql_*,请参阅以下内容:

$prepared = array(
   'email' => $_POST['email'],
   'senha' = >$_POST['senha']);
$conexao -> query("use $banco") or die ("Erro ao selecionar o database");
$result = $conexao -> prepare("SELECT * FROM usuarios WHERE email_usuario = :email and senha = :senha");

$result->execute($prepared);
if ($result->fetch()) {

official docs

关于PHP login.php 用户无法在 mysql 上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23861384/

相关文章:

php - 测试监听 webhook 的 Laravel 路由

php - 从 mysql 表填充的自动完成的输出

php - � 出现在网页上,回显数据库结果

javascript - 通过 JavaScript 提交时,提交按钮未随请求一起发送

php - MySQL 服务没有运行

php - 在数据库中存储银行信息的最佳实践

PHP:重要的空格

javascript - JQuery 不工作,因为 Mootools 已经加载到 joomla

mysql - 使用返回数组的库函数

php - 在查询中创建空间以导出 csv 文件