duda con isset

Iniciado por maryrisas, 4 Febrero 2008, 22:02 PM

0 Miembros y 3 Visitantes están viendo este tema.

maryrisas

Mi duda está en si por ejemplo tengo este codigo pues me hace lo contrario,es decir siempre me sale 'user y pass introducidos' tanto si introduzco user y pass como sino no los pongo en el formulario.¿que hago mal?Haber si me podeis ayudar.1saludo

if (!isset($_POST['usuario']) || !isset($_POST['password'])){
      
         echo 'Introduce user y pass';
      }
else{
         echo 'user y pass introducidos';
         }

дٳŦ٭

Cita de: maryrisas en  4 Febrero 2008, 22:02 PM
Mi duda está en si por ejemplo tengo este codigo pues me hace lo contrario,es decir siempre me sale 'user y pass introducidos' tanto si introduzco user y pass como sino no los pongo en el formulario.¿que hago mal?Haber si me podeis ayudar.1saludo

if (!isset($_POST['usuario']) || !isset($_POST['password'])){
      
         echo 'Introduce user y pass';
      }
else{
         echo 'user y pass introducidos';
         }

Revisa bien tu código porque debes estar declarando las variables... sino prueba con:

Código (php) [Seleccionar]
if ($_post['usuario']!="" || $_post['password']!=""){
echo 'user y pass introducidos';
else{
echo 'Introduce user y pass';
}


Suerte


Con sangre andaluza :)


alone-in-the-chat

Si tu formulario tiene dos input asi no envies ningun valor dentro de esos campos , se crean las variables $_POST['nombrecampo'] , prueba con el codigo que te dio Ing_Amc de esa forma podras ver el si campo esta vacio tb existe una funcion llamada empty que te puede ayudar en esos casos.

Saludos


http://www.php.net/manual/es/function.empty.php


Because maybe
You're gonna be the one that saves me
And after all
You're my wonderwall
d[n_n]b

maryrisas

Muchas gracias por la ayuda pero me sigue sin funcionar...El codigo del formulario es este:

<?
session_start();
?>
<html>
<body>
<h1>Login</h1>
<form action="menu.php" method="POST">
<label for="usuario">Username:<input type="text" name="usuario" maxlength="30"><br>
<label for="password">Password:<input type="text" name="password" maxlength="30"><br />
<p><input type="submit" name="logIn" value="Login"/></p>
</form>
</body>
</html>

alone-in-the-chat

Coloca el codigo de menu.php porfavor

Saludos

Because maybe
You're gonna be the one that saves me
And after all
You're my wonderwall
d[n_n]b

maryrisas

el codigo del menu.php es este:

<?
//comprobamos que user y pass llegan
if (!isset($_POST['usuario']) && !isset($_POST['password'])){
      
         echo 'user y pass no introducidos';
      }
else{
         echo 'user y pass introducidos';
      }
$host = 'localhost';
$user = 'root';
$pass = '';
$data = 'agenda';

$db = mysql_connect($host, $user, $pass) or die('No hay conexión');
mysql_select_db($data, $db) or die('No hay conexión');

$sql = "SELECT * FROM usuarios";
$qry = mysql_query($sql, $db);
?>

eLank0

Si usas el operador AND en la condición, sólo si ambas están inicializadas devuelve FALSE.

Deberías usar el operador OR, de este modo conseguirás el mensaje deseado si uno de los dos campos del formulario no está inicializado.

Salu2

Carxl

Cita de: maryrisas en  4 Febrero 2008, 22:02 PM

<?php
if (!isset($_POST['usuario']) || !isset($_POST['password'])){

echo 'Introduce user y pass';
}
else{
echo 'user y pass introducidos';
}
?>



Hola maryrisas... Las variables post, siempre estarán definidas por lo que isset siempre te retornarán TRUE. Isset suele tener ese tipo de mal interpretación, dicha instrucción es para determinar si una variable está definida.

La mejor manera de comprobar si una variable posee un valor, osea que no esté vacía, ni un 0 (desde php5 el cero se constituye como un valor que designa a una variable vacía) y que esté definida, es preguntando por ella misma, es decir:


<?php
if ($_POST['usuario']) && $_POST['password'])
{
echo 
'Hay valores para usuario y password';
}
else
{
echo 
'NO HA INTRODUCIDO VALORES!!!!';
}
?>



Saludos, espero te sirva ;)
Hay 10 tipos de personas, los que entienden binario... y los que no!

maryrisas

ok,muchas gracias ya solucioné el problema

sortilego

Te combiene de todos modos usar:

if (!empty(dfsdfsdfsdf))

ya que la funcion "empty" es mas completa   (revisa vacios nulls etc)