Foros del Web » Programando para Internet » PHP »

duda tonta

Estas en el tema de duda tonta en el foro de PHP en Foros del Web. Es la mas tonta de las dudas miren if (!$VALOR) { include ('error.htm'); } else { include ('index.php'); } $valor es el resultado de un ...
  #1 (permalink)  
Antiguo 11/05/2005, 14:16
 
Fecha de Ingreso: marzo-2005
Mensajes: 116
Antigüedad: 12 años, 8 meses
Puntos: 1
duda tonta

Es la mas tonta de las dudas
miren
if (!$VALOR)
{
include ('error.htm');
}
else
{
include ('index.php');

}
$valor es el resultado de un select
Si $valor da resultado se abre index.php, pero si no, se abre una pagina en blanco..no se porque, pero en blanco que no tiene siquiera codigo html, por cierto error es un html sencillito de prueba.QUE PUEDE SER?
gracias
  #2 (permalink)  
Antiguo 11/05/2005, 15:21
Avatar de rbczgz  
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.208
Antigüedad: 14 años
Puntos: 147
Hola paloclanweb!!

Prueba así:

Código PHP:
if (!$VALOR) {

       
header("Location: error.htm")

     } else {

       
header("Location: index.php")

      } 
A ver si tienes más suerte...
  #3 (permalink)  
Antiguo 11/05/2005, 15:42
 
Fecha de Ingreso: diciembre-2004
Mensajes: 128
Antigüedad: 13 años
Puntos: 0
Como dice rbczgz (que dificil es escribirlo) con ese codigo deberia andar todo bien, aparte le pondria la funcion die() para que no se siga ejecutando nada en la pagina que redirecciona. Tambien se podria tener en cuenta si $valor esta seteado (contiene algun valor) cuando se pasa como argumento:
if (!isset($VALOR)) {
header("Location: error.htm") ;
die();
} else {
header("Location: index.php")
die();
}
  #4 (permalink)  
Antiguo 11/05/2005, 15:44
 
Fecha de Ingreso: marzo-2005
Mensajes: 116
Antigüedad: 12 años, 8 meses
Puntos: 1
sigo igual

Ruben gracias por tu interes pero cambie el script con lo que me dijiste y me sigue dando el mismo resultado, aqui te escribo el script mas completo a ver si se te ocurre algo, de todas maneras muchas gracias.
Gilberto

$result = $db->Execute("SELECT id FROM usuarios where usuario='$usuario'
and password='$password'");
while (!$result->EOF)
{
for ($i=0, $max=$result->FieldCount(); $i < $max; $i++)
$VALOR=$result->fields[$i];
if (!isset($VALOR))
{

header("Location: error.htm");

}
else
{
header("Location: index.php");

}
$result->MoveNext();
}
  #5 (permalink)  
Antiguo 11/05/2005, 16:18
 
Fecha de Ingreso: diciembre-2004
Mensajes: 128
Antigüedad: 13 años
Puntos: 0
Duda: la pagina que llamas "error.htm" es igual de nombre o estension a la que tienes guardada?
Si usas Windows (cualquiera) no hay problemas con el nombre, pero si usas GNU/Linux debes respetar mayusculas/minusculas.
  #6 (permalink)  
Antiguo 11/05/2005, 16:24
 
Fecha de Ingreso: diciembre-2004
Mensajes: 128
Antigüedad: 13 años
Puntos: 0
Otra cosa: Cual es la idea-funcion de este script?
  #7 (permalink)  
Antiguo 11/05/2005, 16:32
Avatar de maralbust  
Fecha de Ingreso: febrero-2004
Ubicación: Santiago
Mensajes: 578
Antigüedad: 13 años, 9 meses
Puntos: 0
se me hace que es sistema de usuarios

o me equivoco?????
__________________
..:: NADA SE PIERDE SOLO SE TRANSFORMA ::..
  #8 (permalink)  
Antiguo 11/05/2005, 16:40
Avatar de dwaks  
Fecha de Ingreso: agosto-2002
Ubicación: Panamá
Mensajes: 962
Antigüedad: 15 años, 4 meses
Puntos: 15
Información Cambio de codigo

Creo que si primero validas si trae o no registro la consulta seria mejor.
Ya que solo quieres ver si esta en la base de datos y redireccionar.
Código PHP:
<?php
$result 
$db->Execute("SELECT id FROM usuarios where usuario='$usuario'
and password='$password'"
);
$max=$result->FieldCount();
 if (
$max==|| $max=="") {
  
header("Location: error.htm");
 }
 else{
  
header("Location: index.php");
 }
?>
  #9 (permalink)  
Antiguo 11/05/2005, 16:45
 
Fecha de Ingreso: diciembre-2004
Mensajes: 128
Antigüedad: 13 años
Puntos: 0
Lo que pasa es que no entiendo la recorrida de la consulta, pq si chequea con usuario/password de hecho, no deberia haber 2 usuarios que tengan, por lo menos, el mismo password. Me imagino que es para ingresar un nuevo usuario al sistema, entonces se puede hacer la consulta mas simple, solo con chequear si existe mas de uno, es que ya tengo ese nombre y ese pasword en la BD.

Cita:
Iniciado por paloclanweb
$result = $db->Execute("SELECT id FROM usuarios where usuario='$usuario'
and password='$password'");
while (!$result->EOF)
{
for ($i=0, $max=$result->FieldCount(); $i < $max; $i++)
$VALOR=$result->fields[$i];
if (!isset($VALOR))
{

header("Location: error.htm");

}
else
{
header("Location: index.php");

}
$result->MoveNext();
}
  #10 (permalink)  
Antiguo 11/05/2005, 16:47
Avatar de dwaks  
Fecha de Ingreso: agosto-2002
Ubicación: Panamá
Mensajes: 962
Antigüedad: 15 años, 4 meses
Puntos: 15
Información

Primero veo que tienes una clase para conectar a la base de datos,por alli la ayuda es limitada porque no conocemos todo lo que abarca esa clase.

Para ser mas preciso es necesario que digas que quieres hacer ya que todo este post se base en validar una variable si tiene valor.

Asi que mejor es que digas que deseas hacer y asi sin hacer uso de esa clase podemos escribir script que te puedan ayudar y guiar mejor.
  #11 (permalink)  
Antiguo 12/05/2005, 07:24
 
Fecha de Ingreso: marzo-2005
Mensajes: 116
Antigüedad: 12 años, 8 meses
Puntos: 1
una duda tonta

Cita:
Iniciado por matigro
Lo que pasa es que no entiendo la recorrida de la consulta, pq si chequea con usuario/password de hecho, no deberia haber 2 usuarios que tengan, por lo menos, el mismo password. Me imagino que es para ingresar un nuevo usuario al sistema, entonces se puede hacer la consulta mas simple, solo con chequear si existe mas de uno, es que ya tengo ese nombre y ese pasword en la BD.
matrigo realmente eso es lo que quiero hacer ...pero no tengo la menor idea de como hacerlo porque estoy usando ADODB, bueno si me das una idea de como saber que hay mas de uno ....
gracias
  #12 (permalink)  
Antiguo 12/05/2005, 07:34
 
Fecha de Ingreso: marzo-2005
Mensajes: 116
Antigüedad: 12 años, 8 meses
Puntos: 1
Cita:
Iniciado por dwaks
Primero veo que tienes una clase para conectar a la base de datos,por alli la ayuda es limitada porque no conocemos todo lo que abarca esa clase.

Para ser mas preciso es necesario que digas que quieres hacer ya que todo este post se base en validar una variable si tiene valor.

Asi que mejor es que digas que deseas hacer y asi sin hacer uso de esa clase podemos escribir script que te puedan ayudar y guiar mejor.
dwaks esa clase es propia de ADODB, lo que quiero hacer es confirmar que ese usuario existe (realmente para una mayor comprension del error, quite bastante codigo y deje solo ese pedazo que al final tampoco funciona)la idea es si el usaurio existe tomar su id (llave primaria) para insertar en otra tabla , pero por el momento lo que quiero es saber si el usuario existe, de ser asi, se abre index.php, de no ser asi, se abre error.htm.El primer caso funciona correctamente, el segundo se queda como que buscando...realmente de la clase esa no te puedo decir mucho porque es una clase prefijada de ADODB y no la he estudiado quizas ahi radique el problema.Gracias
paloclanweb
  #13 (permalink)  
Antiguo 12/05/2005, 07:42
 
Fecha de Ingreso: marzo-2005
Mensajes: 116
Antigüedad: 12 años, 8 meses
Puntos: 1
Amigos ya encontre la solucion es la siguiente:$result = $db->Execute("SELECT id FROM usuarios where usuario='$usuario'
and password='$password'");
if ($result->EOF) include('error.htm'); // si esta vacio es que no existe el login con el password dado
else include ('index.php');


todavia no entiendo porque no funcionaba de la manera incial, si se dieran cuenta les agradeceria. Gracias a ustedes por su preocupacion.
Saludos
paloclanweb
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:32.