2015-03-04 2 views
-1

Я в этом как бы новичок и могу использовать некоторую помощь. Видите ли, у меня есть форма на странице входа, но когда я нажимаю кнопку, она ничего не делает, даже сообщение об ошибке. Он должен отправить меня на страницу под названием «formulario.php». Я просто не могу найти ошибку, и я видел множество учебников и книг.Форма ничего не делает, ничего не посылает php

Это мой PHP-файл: login.php

<?php 
#connect to mysql 
$conexion = mysql_connect("localhost", "root", "admin") or die ("PROBLEMAS AL INTENTO ESTE DE CONEXION"); 

#connect to database 
mysql_select_db("generatedata", $conexion) or die ("ERROR AL TRATAR DE CONECTAR CON DATABASE"); 

#form parameters 
$nombre = $_REQUEST['username']; 
$pass = $_REQUEST['pass'];  

#query to select users from the database 
$estandar = mysql_query("SELECT * FROM usuarios where usuario = '.$nombre.' and `contrasena` = '.$pass.'") or die(mysql_error()); 

if ($row = mysql_fetch_array($estandar)){ 

    header("Location: formulario.php"); 
}else { 
    echo "error";#header("Location: 404.html"); 
} 

?> 

и моя форма

<form action="login.php" method="post" > 
<table class="table"> 
     <tr> 
     <td>Nombre:</td> 
     <td><input type="text" class="form-control" name="username" value="" id="username"> </td> 
     </tr> 
     <td>contraseña:</td> 
     <td><input type="password" class="form-control" name="pass" value="" id="password"> </td> 
     </tr> 
</table> 

    <button type="submit" name="login" value="login" class="btn btn-primary">Log in</button> 
    <button type="reset" name="res" value="res" class="btn btn-primary">LImpiar</button> 
</form> 
+0

Под «ничего не значит» вы подразумеваете, что он показывает пустую страницу? Это часто свидетельствует о неподтвержденной ошибке в PHP. Проверьте журналы PHP, включите отчет об ошибках. Также обратите внимание, что в коде есть две существенные проблемы. 1) Код базы данных широко открыт для атак SQL-инъекций. 2) Вы сохраняете пароли пользователей в виде простого текста. Оба эти очень плохие вещи. – David

+2

''. $ Nombre.'' и ''. $ Pass.'' удалить точки или добавить двойные кавычки. 'mysql_error()' должен был сказать вам, что есть ошибка, но вы не смогли показать это нам. –

+0

Также дезинфицируйте свои пользовательские входы, поскольку вы открыты для SQL-инъекций. Я также напишу вам записку, чтобы посмотреть в подготовленные заявления PDO/MySQLi, поскольку библиотека 'mysql_ *' устарела. – Darren

ответ

0

Ваш код прекрасно работает на моем компьютере. Это означает, что ваши данные являются проблемой. Попробуйте это и дайте нам знать значение $sql

<?php 
#connect to mysql 
$conexion = mysql_connect("localhost", "root", "admin") or die ("PROBLEMAS AL INTENTO ESTE DE CONEXION"); 

#connect to database 
mysql_select_db("generatedata", $conexion) or die ("ERROR AL TRATAR DE CONECTAR CON DATABASE"); 

#form parameters 
$nombre = $_REQUEST['username']; 
$pass = $_REQUEST['pass'];  

#query to select users from the database 
$sql = "SELECT * FROM usuarios where usuario = '".$nombre."' and `contrasena` = '".$pass."'"; 

print $sql; 

$estandar = mysql_query($sql) or die(mysql_error()); 

if ($row = mysql_fetch_array($estandar)){ 

    header("Location: formulario.php"); 
}else { 
    echo "error"; 
} 
+0

, выполняющий команду print SELECT * FROM usuarios, где usuario = '.fernando.' и 'contrasena' = '.123456.'error' –

+0

Вы видели, что я исправил? –

+0

Он принимал точки как часть вашего имени пользователя и вашего пароля. Это должно сработать. Теперь вы можете удалить печать $ sql. –

0

Пожалуйста, проверьте Выбрать Query Line ...

 
$estandar = mysql_query("SELECT * FROM usuarios where 
usuario = '".$nombre."' and `contrasena` = '".$pass."'") or die(mysql_error()); 

На самом деле когда вы проверяете для входа цели Вы должны использовать mysql_num_rows не mysql_fetch_Array ..

Смежные вопросы