Hola a todos.
Bueno mi problema es que al pasar un valor por el metodo post desde un formulario y al usar el valor de post en php obtengo una variable vacia y no se porque, mi codigo es este.
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang = "es">
<head>
<title>S</title>
<meta name="description" content="S" />
<meta name="keywords" content="H" />
<meta http-equiv="Content-type" content="text/html: charset=iso-8859-1" />
<link rel="StyleSheet" type="text/css" href="css/style-main.css" media="screen" />
</head>
<body>
<div id="wrapper-main">
<div id="wrapper">
<div id="form-session">
<form id="login" enctype="text/plain" method="post" action="php/session.php">
<table id="form-session">
<tr>
<td><label>Inicio de sesión</label></td>
<td><label>Usuario:</label></td>
<td><input name="user_name" type="text" size="15" /></td>
</tr>
<tr>
<td><label>Contraseña:</label></td>
<td><input name="user_pass" type="password" size="15"/></td>
<td><input type="submit" value="Entrar" /></td>
</tr>
</table>
</form>
</div>
</div>
</div>
</body>
</html>
session.php
<?php
$conexion = mysqli_connect('localhost','root','P','login');
if(!$conexion)
{
echo "Ha fallado la conexión: ";
}
$login = filter_input(INPUT_POST, "user_name", FILTER_SANITIZE_SPECIAL_CHARS);
$password_user = filter_input(INPUT_POST, 'user_pass', FILTER_SANITIZE_SPECIAL_CHARS);
if(($password_user == NULL) || ($login == NULL))
{
echo "no tiene valores<br />";
}
else{
$query = "SELECT * FROM users WHERE user_nom = '$login'";
if (($result = mysqli_query($conexion, $query)) == FALSE){
echo "La consulta no se realizo ";
}
$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
if($row["user_nom"] == $login)
{
if($row["password"] == $password_user)
{
session_start();
$_SESSION['usuario'] = $login;
header("Location: ../alumnos/default.php");
}
else
{
?>
<script languaje='javascript'>
alert("Contraseña Incorrecta");
location.href = "../index.html";
</script>
<?php
}
}
else
{
?>
<script languaje='javascript'>
alert("El nombre de usuario es incorrecto!");
location.href = "../index.html";
</script>
<?php
}
}
mysqli_close($conexion);
?>
Espero me puedan ayudar.
Saludos.
Drewermerc.
Hola!,
He probado tu código y el problema parece estar en la propiedad enctype de tu formulario.
Al eliminar dicha propiedad, HTML usa el método de codificación por defecto, que leyendo por la web aprendí que es application/x-www-form-urlencoded.
Entonces reemplazando la linea 14 de tu index.html
<form id="login" enctype="text/plain" method="post" action="php/session.php">
por
<form id="login" enctype="application/x-www-form-urlencoded" method="post" action="php/session.php">
ó
<form id="login" method="post" action="php/session.php">
deberías poder recibir y utilizar las variables sin problemas.
Espero que te sirva!
Saludos!
Fedz.-
hola fedz.
Si ese era el problema ya quedo solucionado.
Gracias por responder y por el dato de la codificación que usa por defecto html.
Saludos.
Drewermerc.