Foros del Web » Programando para Internet » PHP »

solución para script

Estas en el tema de solución para script en el foro de PHP en Foros del Web. Hola a todos: primero que nada, esta mal que haga uba consulta con $_SESSION['login'] que contiene el nombre de usuario?. Aparte de eso Tengo un ...
  #1 (permalink)  
Antiguo 15/05/2006, 13:28
Avatar de decano  
Fecha de Ingreso: diciembre-2005
Ubicación: Montevideo, Uruguay
Mensajes: 146
Antigüedad: 18 años, 11 meses
Puntos: 0
solución para script

Hola a todos:
primero que nada, esta mal que haga uba consulta con $_SESSION['login'] que contiene el nombre de usuario?.

Aparte de eso Tengo un seccion en mi pagina que les permite cambiar a los usuarios algunos datos, mi pequeño problema es que cuando algunos de esos datos nuevos que ingresan estan mal se los haga, por ejemplo su password.

Código PHP:
if(($_POST['pais'] !='') || ($_POST['email'] !='') || ($_POST['pass'] !=''))

    {
        
      
    if((
in_array('pais',$_POST['actualizar'])) and ($_POST['pais'] !=''))
    
    {
            
         {
               
        
$sql  "UPDATE administradores SET pais=('$_POST[pais]') where id='$row[id]'";
        
$r mysql_query($sql);
        
         }
     
    if((
in_array('email',$_POST['actualizar'])) and ($_POST['email'] !=''))
    
    
         {

            if(
is_email_valid($_POST['email']))

            {  
            
            
$sql2 "UPDATE administradores SET email=('$_POST[email]') where id='$row[id]'";
            
$r mysql_query($sql2);
            
            }

         }
            
    if((
in_array('password',$_POST['actualizar'])) and ($_POST['pass'] !=''))
    
        {

            if(
comprobar($_POST['pass'])) 

            {

                
$pass md5($_POST['pass']);
                
$sql3 "UPDATE administradores SET password=('$pass') where id='$row[id]'";
                
$r mysql_query($sql3);
    
            }

        }
        
    }
 
        
header('Location:../?your_acount='.$row['id'].'&aser=modificar');

      }
    
         else 
    
                
header('Location:../?your_acount='.$row['id'].'&aser=errores'); 
en esta parte los redirige pero no les informa que hayan errores, solo les dice que fueron modificados o que no hizo cambios, pero quiero que si su email esta mal como lo dice la funcion les diga o que si el pawweord esta mal tambien se los diga, como puedo llevar los errores para la otra pagina.

Les cuento que es algo que quiero hacer para por separado, porque el formulario que trae la informacion les da la opcion de cambiar el dato que quieran.
Código HTML:
 <td><div align="center">Tareas de mantenimiento: modificar datos de <?=$_SESSION['login']?><br>
                            Recuerde que su password debe de tener mas de 6 caracteres.</div></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td><div align="center">Password -&gt;
        <input name="pass" type="password" > Actualizar <INPUT type="checkbox" name="actualizar[]" value="password">           
    </div><br>
    <div align="center">Pais &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&gt;
        <input name="pais" type="text" > Actualizar <INPUT type="checkbox" name="actualizar[]" value="pais">        
    </div></td>
  </tr>
  <tr>
    <td><INPUT type="hidden" value="<?=$row['id']?>" name="id"><div align="center">Actual &nbsp;&nbsp;&nbsp; <? if($row['pais'] =='')echo 'Sin Dato'; else echo $row['pais']?><br><br>Actual <?=$row['email']?></div></td>
  </tr>
  <tr>
    <td><div align="center">E-mail &nbsp;&nbsp;&nbsp; -&gt;
        <input name="email" type="text" > Actualizar <INPUT type="checkbox" name="actualizar[]" value="email">
    </div></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
  </tr>
  <tr> 
gracias a todos
  #2 (permalink)  
Antiguo 15/05/2006, 15:18
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Cita:
primero que nada, esta mal que haga uba consulta con $_SESSION['login'] que contiene el nombre de usuario?.
Pues .. mm no? .. Ahora .. en lugar de un "login" con un nombre de usuario yo usaría un "ID" del usuario (más que nada para optimizar las consultas SQL).

Cita:
en esta parte los redirige pero no les informa que hayan errores, solo les dice que fueron modificados o que no hizo cambios, pero quiero que si su email esta mal como lo dice la funcion les diga o que si el pawweord esta mal tambien se los diga, como puedo llevar los errores para la otra pagina.
Con la misma filosofía que aplicas en los otros casos ...

Código PHP:
<?
if(comprobar($_POST['pass']))  

            { 

                
$pass md5($_POST['pass']); 
                
$sql3 "UPDATE administradores SET password=('$pass') where id='$row[id]'"
                
$r mysql_query($sql3); 
     
            } else {
                  
// Supuestamente aquí llegará el flujo del código si no pasa tu validación que aplica esa función .. en consecuencia:

                 
header ("Location: dondetengas queier.php ....");
                 exit; 
// Ya no me interesa ejecutar el resto del código .. voy a redireccionar a otro script para que tome el control el otro script no este ya.
            
}

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 16/05/2006, 11:29
Avatar de decano  
Fecha de Ingreso: diciembre-2005
Ubicación: Montevideo, Uruguay
Mensajes: 146
Antigüedad: 18 años, 11 meses
Puntos: 0
Hola y gracias, sabes es estoy haceindo sotod bajo session, or usuario $_SESSION['login'], ya que no esta en la session su id, por eso preguntaba, y con la otra parte, com exit() sale de ese script y de todo, porque me interesa que le de error y cometio en uno de los casos, porque puede que no haya cometido error en password y si en email o viceversa, no se si me explico.
saludos
graicas
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 14:07.