Foros del Web » Programando para Internet » PHP »

Validando, ¿Que estoy haciendo mal?

Estas en el tema de Validando, ¿Que estoy haciendo mal? en el foro de PHP en Foros del Web. Alguien me puede por favor decir que estoy haciendo mal aqui: Código PHP: if ( $HTTP_SESSION_VARS [ "ses_mem_type" ]== "Dealer" ) {     if( mysql_num_rows ( $rsCnt ...
  #1 (permalink)  
Antiguo 20/08/2007, 01:44
Avatar de SI TAN SOLO TUVIERA  
Fecha de Ingreso: marzo-2006
Ubicación: Aburrilandia, US
Mensajes: 652
Antigüedad: 18 años, 1 mes
Puntos: 3
Pregunta Validando, ¿Que estoy haciendo mal?

Alguien me puede por favor decir que estoy haciendo mal aqui:

Código PHP:
if ($HTTP_SESSION_VARS["ses_mem_type"]=="Dealer")
{
    if(
mysql_num_rows($rsCnt) == ($num_fil=intval($HTTP_SESSION_VARS["ses_mem_plan"]))) 
        
$display_new=false;

$HTTP_SESSION_VARS["ses_mem_plan"] es un STRING, y lo que trato de validar es que si el # de filas de la tabla es igual al valor de este, a $display_new le asigne false.

Use el intval para pasar $HTTP_SESSION_VARS["ses_mem_plan"] a Entero pq lo tengo asignado a la BD como String. Pense que por eso no me funcionaba, pero tampoco,

alguien me da un poco de ayuda pf?

Gracias.!
__________________
¿Dónde encontrar carros baratos en USA? En Autopten.

Última edición por SI TAN SOLO TUVIERA; 20/08/2007 a las 13:30
  #2 (permalink)  
Antiguo 20/08/2007, 03:40
 
Fecha de Ingreso: septiembre-2006
Ubicación: Buenos Aires
Mensajes: 125
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: Validando, ¿Que estoy haciendo mal?

A simple vista no le veo nada.
No recuerdo bien ;pero revisa si cerraste la BD porque si esta cerrada creo que los comandos mysql no funcionan.
Para revisar el codigo yo haria asi
Código PHP:
if ($HTTP_SESSION_VARS["ses_mem_type"]=="Dealer"

    print 
"la variable vale Dealer";
if(
mysql_num_rows($rsCnt) == ($num_fil=intval($HTTP_SESSION_VARS["ses_mem_plan"])))  
        
$display_new=false
   print 
"num_fil=".$num_fil;
   print 
" mysql() vale ".$mysql_num_rows($rsCnt);
 


__________________
alquiler gesell
  #3 (permalink)  
Antiguo 20/08/2007, 03:51
 
Fecha de Ingreso: mayo-2004
Mensajes: 9
Antigüedad: 19 años, 11 meses
Puntos: 0
Re: Validando, ¿Que estoy haciendo mal?

qué versión de php usas?
  #4 (permalink)  
Antiguo 20/08/2007, 06:47
Avatar de shakaran  
Fecha de Ingreso: agosto-2005
Ubicación: España - Ciudad Real
Mensajes: 374
Antigüedad: 18 años, 8 meses
Puntos: 7
Re: Validando, ¿Que estoy haciendo mal?

Uses la version que uses, creo que seria un codigo con mas posibilidad de futuro si usaras los $_SESSION
__________________
Quijost Backend Engineer - www.quijost.com - Hosting rápido, eficiente y profesional
Blog: www.shakaran.net
  #5 (permalink)  
Antiguo 20/08/2007, 17:53
Avatar de SI TAN SOLO TUVIERA  
Fecha de Ingreso: marzo-2006
Ubicación: Aburrilandia, US
Mensajes: 652
Antigüedad: 18 años, 1 mes
Puntos: 3
Re: Validando, ¿Que estoy haciendo mal?

Cita:
Iniciado por shakaran Ver Mensaje
Uses la version que uses, creo que seria un codigo con mas posibilidad de futuro si usaras los $_SESSION
HOla, shakaran podrias explicarme un poco esto que dices? por que a futuro?

La version de php es 4. Cuando empeze a hacer la pagina aun no estaba circulando la 5 o no me habia jactado.

- la BD no esta cerrada.


Lo que pasa es que con $display_new valido si el usuario puede seguir o no subiendo mas registros . Si es "private seller" solo podria subir un registro, y si es "dealer" puede subir el # de registros que se encuentra en esta variable en string "$HTTP_SESSION_VARS["ses_mem_type"]"

Copio el siguiente codigo a ver si ayuda un poco:

Código PHP:
$sqlCnt "SELECT COUNT(*) 
           FROM "
.$db_prefix."cars
           WHERE (stock='$stock' OR '$stock'='')
           AND (year='$year' OR '$year'='')
           AND (model LIKE '$model%' OR '$model'='') ... .... ... /** etc hasta que llega aqui **/
$display_new=true;
if ($HTTP_SESSION_VARS["
ses_mem_type"]!="Dealer")
{
    if(mysql_num_rows($rsCnt)>0)
        mysql_data_seek($rsCnt,0);
    if (@mysql_result($rsCnt,0,0)>0)    
        $display_new=false;

Esto pedazo de codigo funciona bien, pero valida solo si es "Private Seller", el cual solo puede subir un registro.. Aunque no lo entiendo mucho, no lo hice yo. Si $display_new es FALSE, mas adelante no imprime la opcion para subir mas registros.

Código PHP:
<?php if ($display_new){?>
• <a href="new.php">Add a New Vehicle</a>&nbsp;&nbsp;
<?php }?>
Ahora lo que quiero hacer es que valide si NO es "Private Seller" que entonces a $display_new le agregue FALSE si el numero de filas ocupadas por los registros del usuario es igual a $HTTP_SESSION_VARS["ses_mem_type"]

Estoy es lo que estoy tratando de hacer pero no me funca...

Código PHP:
$display_new=true;
if (
$HTTP_SESSION_VARS["ses_mem_type"]!="Dealer")
{
    if(
mysql_num_rows($rsCnt)>0)
        
mysql_data_seek($rsCnt,0);
    if (@
mysql_result($rsCnt,0,0)>0)    
        
$display_new=false;
}
/** de aqui para adelante no me funca **/
if ($HTTP_SESSION_VARS["ses_mem_type"]=="Dealer")
{
    if(
mysql_num_rows($rsCnt) == ($num_fil=intval($HTTP_SESSION_VARS["ses_mem_plan"]))) 
        
$display_new=false;

Me hago entender? por favor necesito un poco de ayuda.
__________________
¿Dónde encontrar carros baratos en USA? En Autopten.
  #6 (permalink)  
Antiguo 20/08/2007, 18:27
Avatar de shakaran  
Fecha de Ingreso: agosto-2005
Ubicación: España - Ciudad Real
Mensajes: 374
Antigüedad: 18 años, 8 meses
Puntos: 7
Re: Validando, ¿Que estoy haciendo mal?

Si tienes la opcion de php de register_global=off (aconsejable) debes utilizar $_POST,$_GET,$COOKIE,$_SESSION, etc en tus script y no directamente el nombre de la variable.

Posiblemente no te funcione esta linea porque
if ($HTTP_SESSION_VARS["ses_mem_type"]=="Dealer")

porque HTTP_SESSION_VARS es antigua y se utiliza $_SESSION en su lugar (a partir de una version de PHP creo que es alguna superior a la 4.1.2 o algo asi)

prueba poniendo

if ($_SESSION["ses_mem_type"]=="Dealer")

y lo mismo en todos los sitios donde aparezca algo asi.
__________________
Quijost Backend Engineer - www.quijost.com - Hosting rápido, eficiente y profesional
Blog: www.shakaran.net
  #7 (permalink)  
Antiguo 20/08/2007, 22:11
Avatar de SI TAN SOLO TUVIERA  
Fecha de Ingreso: marzo-2006
Ubicación: Aburrilandia, US
Mensajes: 652
Antigüedad: 18 años, 1 mes
Puntos: 3
Re: Validando, ¿Que estoy haciendo mal?

Te agradezco Shakaran.

Para probar esto hice ambas pruebas (valgame la redundancia):

Código PHP:
<?php echo $_SESSION["ses_mem_plan"]; ?>
<?php 
echo $HTTP_SESSION_VARS["ses_mem_plan"]; ?>
y ambas funciones me imprimieron el mismo valor:

5
5

5 es el valor que tiene $ses_mem_plan en esa sesion. El servidor que uso soporta php 4 y 5, por eso creo que por ahi no es la cuestion.


Realmente, pido ayuda para entender esta validacion que no hice yo:

Código PHP:
if ($HTTP_SESSION_VARS["ses_mem_type"]!="Dealer")
{
    if(
mysql_num_rows($rsCnt)>0)
        
mysql_data_seek($rsCnt,0);
    if (@
mysql_result($rsCnt,0,0)>0)    
        
$display_new=false;

$HTTP_SESSION_VARS["ses_mem_type"] puede ser o "Dealer" o "Private Seller", no mas.

Sinceramente de ahi para adelante no la entiendo, por mas que busco. Y en esta, que funciona bien, es que me quiero basar para hacer la que quiero.


GRacias nuevamente.
__________________
¿Dónde encontrar carros baratos en USA? En Autopten.

Última edición por SI TAN SOLO TUVIERA; 20/08/2007 a las 22:27
  #8 (permalink)  
Antiguo 21/08/2007, 20:42
Avatar de SI TAN SOLO TUVIERA  
Fecha de Ingreso: marzo-2006
Ubicación: Aburrilandia, US
Mensajes: 652
Antigüedad: 18 años, 1 mes
Puntos: 3
Re: Validando, ¿Que estoy haciendo mal?

Por fin pude. Hago el copy por si le llega a servir a alguien alguna vez:


Código PHP:
if ($_SESSION["ses_mem_type"]=="Dealer")
        {
            
$result mysql_query("SELECT c.member_id FROM ".$db_prefix."cars AS c WHERE (c.member_id=".$member_id.")"$conn);
            
$num_fil mysql_num_rows($result);
            if (
$member_plan == $num_fil)         
                {
                    
$display_new=false;
                }
        } 
__________________
¿Dónde encontrar carros baratos en USA? En Autopten.
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 17:32.