0

大家好,我尝试在 php 中做一个 Authenticate 表单。

首先我创建一个表单

<form id="frmlogin" name="frmlogin"  method="post" action="validarUsuario.php">
    <table align="center" width="200px">
        <tr>
            <td colspan="2" align="center"><h3>Iniciar sesi&oacute;n</h3></td>
        </tr>
        <tr>
            <td>Usuario</td>
            <td>
                <input type="text" name='usuario' id="usuario"  maxlength="50">
            </td>
        </tr>

        <tr>
            <td>Password</td>
            <td>
                <input type="password" name='password' id="password"  maxlength="50">
            </td>
        </tr>
        <tr>
            <td colspan="2" align="right">
                <input type="submit" name="enviar" value="Enviar" >
            </td>

        </tr>

        <?php

我调用了validarUsuario,所以我包含了require_once '../Classes/validarUsuario.php';

在 validarUsuario.php 我有这个代码

include("conectar_bd.php");
conectar_bd();

$usr = $_POST['usuario'];
$pw = $_POST['password'];
//Obtengo la version encriptada del password
$pw_enc = md5($pw);

$sql = "SELECT * FROM ubc_admin_user
            WHERE username = '".$usr."'
            AND password = '".$pw_enc."' ";

$result     =mysql_query($sql,$conexio);

$uid = "";

但我收到此错误

Notice: Undefined index: usuario in /Users/yp/Sites/.../Classes/validarUsuario.php on line 14 Call Stack: 0.0018 646416 1. {main}() /Users/yp/Sites/.../download/index.php:0 0.0020 654048 2. require_once('/Users/yp/Sites/.../validarUsuario.php') /Users/yp/Sites/.../index.php:38 Notice: Undefined index: password in /Users/yp/Sites/...validarUsuario.php on line 15 Call Stack: 0.0018 646416 1. {main}() /Users/../index.php:0 0.0020 654048 2. require_once('/Users/yp/Sites/.../validarUsuario.php') /Users/yp/Sites/../index.php:38

任何的想法!

4

4 回答 4

2

将您的代码更改为此

if (isset($_POST['Enviar'])) {
    $usr = $_POST['usuario'];
    $pw = $_POST['password'];
    //Obtengo la version encriptada del password
    $pw_enc = md5($pw);

    $sql = "SELECT * FROM ubc_admin_user WHERE username = '".$usr."'AND password = '".$pw_enc."' ";

    $result     =mysql_query($sql,$conexio);

    $uid = "";
}
于 2013-04-09T07:43:02.527 回答
0

检查是否接收到值。

if (isset($_POST['usuario'])) {

}
if (isset($_POST['password'])) {

}

还要确保接收文件的路径正确。

于 2013-04-09T07:49:07.837 回答
0

在您的 HTML 表单中,名称值上有单引号 (')。所以你应该改变这个:

name='usuario'
name='password'

到:

name="usuario"
name="password"
于 2013-04-09T07:54:08.717 回答
0

您不需要这样做,require_once '../Classes/validarUsuario.php';因为您的表单会在表单提交后将您重定向到该页面。删除该行。

或者您可以将表单重定向到与表单相同的地址并添加检查isset

代替:

<form id="frmlogin" name="frmlogin"  method="post" action="validarUsuario.php">

和:

<form id="frmlogin" name="frmlogin"  method="post" action="">

和:

require_once '../Classes/validarUsuario.php';

和:

if(isset($_POST['usuario'])){
    require_once '../Classes/validarUsuario.php';
}
于 2013-04-09T07:55:14.690 回答