Foros del Web » Programando para Internet » PHP »

Comparar dos contraseñas y actualizar

Estas en el tema de Comparar dos contraseñas y actualizar en el foro de PHP en Foros del Web. Necesito ayuda, pues bien me encuentro ante otro nuevo problema, mustro en un formulario los datos de los usuarios para poder cambiarlos, y para cambiar ...
  #1 (permalink)  
Antiguo 03/05/2010, 04:02
Avatar de dengaku  
Fecha de Ingreso: enero-2010
Mensajes: 69
Antigüedad: 14 años, 10 meses
Puntos: 1
Comparar dos contraseñas y actualizar

Necesito ayuda, pues bien me encuentro ante otro nuevo problema, mustro en un formulario los datos de los usuarios para poder cambiarlos, y para cambiar sus contraseñas pongo una imagen que al clicar manda el codigo del usuario a otro php distinto tal que asi:

Código PHP:
            print "<td><a href=pass.php?codigod=".$reg3['cod_usuario']."><img src=flecha.png></a></td>"
Con eso me aseguro el cod_usuario en pass.php, bien, el siguiente php es el siguiente:

Código PHP:
<?php
    
//Iniciar sesión
   
session_start();


 
?>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Cambiar clave </title>
<link href="stilo.css" rel="stylesheet" type="text/css" />

</head>

<body class="stilo2">
<div id="Layer1" class="stilo1">
<?php
// Sesión iniciada
   
if (isset($_SESSION["usuario_valido"]))
   {
        include(
"libreria.php");
        
$conexion=conecta();
        
$uv=$_SESSION["usuario_valido"]; 
         
$cod_usup=$_REQUEST[codigod];
           print 
$cod_usup;

if (isset (
$_REQUEST['modificav'])){
    
$erroresv false;
    
$cod $_REQUEST['cod'];
    
$pass1 $_REQUEST['pass1'];
    
$pass2 $_REQUEST['pass2'];
    
$nick1 $_REQUEST['nic'];

    if (
$pass1 != $pass2){ 
       
$error[1]=' No coinciden'
       
$erroresv=true;}
}

if (isset (
$_REQUEST['modificav']) and $erroresv==false){

    
$conexion=conecta();
$salt substr ($nick102);
$clave_crypta crypt ($pass1$salt);
$sq11="update usuarios set pass='$clave_crypta' where cod_usuario='$cod'";
$registros2=mysql_query($sq11,$conexion) or
              die(
"Problemas en el update".mysql_error());
 echo 
"Archivo fue modificado";
         
$paginaca="adminusu.php";
        
header("Location:$paginaca");
 }        
 

        print 
$sqvv;
        
$sqvv="select pass from usuarios where cod_usuario = $cod_usup";
        
$registros1a=mysql_query($sqvv,$conexion) or
          die(
"Problemas en el select:".mysql_error());



    
        
        print 
"<p class='stilo5'>Cambiar contraseña de ";
        
//print $cc.":</p>";
           
print "<table border='2' cellspacing='0' class='stilo3'>";


        while (
$regv=mysql_fetch_array($registros1a))
        {
              print 
'<form action="pass.php" method="post">';
            
            print 
'<input size=5 type="text" name="cod" value="'.$regv['cod_usuario'].'">';
            print 
'<input size=5 type="text" name="nic" value="'.$regv['nick'].'">';
            

            print 
'<tr><td>Escribe contraseña</td>';            
            print 
'<td class=stilo7><input size=5 type="text" name="pass1" value="">';
        print (
"<font color=white>$error[1]</font><BR>");"</td></tr>";
        
            print 
"<tr><td>Repite la contraseña</td>";
            
            print 
'<td class=stilo7><input size=5 type="text" name="pass2" value="">';
        print (
"<font color=white>$error[1]</font><BR>");"</td></tr>";
            
             print 
'<tr><td class=stilo7><input type="submit" name="modificav" value="Modifica"></td></tr>';
            print 
"</form>";
        }
        print 
"</table>";

}

?>
bien, estoy metiendo el valor de codigod en una variable que se llama $cod_usup, hago un print y me sale correcto, pero ya abajo en el formulario si hago un print del mismo no me da ningun resultado, es más, justo antes del formulario tengo una consulta, si hago pront de cualkier campo no sale nada, es como si no hiciese la consulta, pero el formulario si sale ¿me puede ayudar alguien?.

Última edición por dengaku; 03/05/2010 a las 04:03 Razón: corrección
  #2 (permalink)  
Antiguo 03/05/2010, 04:09
 
Fecha de Ingreso: abril-2010
Mensajes: 61
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Comparar dos contraseñas y actualizar

No encuentro nada donde cambie esa variable, si te funciona bien al hacer el print deberia funcionarte despues.
Lo que si te recomiendo es que al hacer las consultas concatenes las variables en vez d eponerlas y ya, no solo se debe hacer asi, sino que ademas como lo pone de otro color sera mas facil para encontrar fallos y cosas por el estilo
  #3 (permalink)  
Antiguo 03/05/2010, 04:11
 
Fecha de Ingreso: marzo-2010
Ubicación: Barcelona
Mensajes: 657
Antigüedad: 14 años, 7 meses
Puntos: 26
Respuesta: Comparar dos contraseñas y actualizar

Y no puede ser que directamente no te entre en esa parte del codigo? es decir que no entre en el if.

EDIT: en mi opinión puede ser que el error esté por el if:
Código PHP:
if (isset ($_REQUEST['modificav']) and $erroresv==false){ 
Comprueba que no sea por esto.
  #4 (permalink)  
Antiguo 03/05/2010, 04:25
Avatar de dengaku  
Fecha de Ingreso: enero-2010
Mensajes: 69
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: Comparar dos contraseñas y actualizar

Vale, garcias por responder tan rapido :D, creo que ya e dado con la rata, cuando hacía la consulta sacaba "pass" y le mandaba desde el formuladio un cod_usuario para la where del update, al solo sacar pass, no habia nada en $regv['cod_usuario'], e puesto select * y ahora si me saca los datos, claro antes no podia comparar nada, Y ahora mismo toy enzarzado con el $erroresv que cuando coinciden si la cambia, pero cuando no me saca un error en la consulta linea 1 voy a ver si lo soluciono :P, gracias a todos ^^

Última edición por dengaku; 03/05/2010 a las 04:33
  #5 (permalink)  
Antiguo 03/05/2010, 04:28
Avatar de dengaku  
Fecha de Ingreso: enero-2010
Mensajes: 69
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: Comparar dos contraseñas y actualizar

Cita:
Iniciado por hawkeye Ver Mensaje
No encuentro nada donde cambie esa variable, si te funciona bien al hacer el print deberia funcionarte despues.
Lo que si te recomiendo es que al hacer las consultas concatenes las variables en vez d eponerlas y ya, no solo se debe hacer asi, sino que ademas como lo pone de otro color sera mas facil para encontrar fallos y cosas por el estilo

Con lo de concatenar variables a que te refieres, que yo soy un poco orko pa todo esto, podría poner un ejemplo?
  #6 (permalink)  
Antiguo 03/05/2010, 04:34
 
Fecha de Ingreso: abril-2010
Mensajes: 61
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Comparar dos contraseñas y actualizar

por ejemplo tu escribes

"select * from tabla where campo=$variable;"

concatenando seria asi:

"select * from tabla where campo='".$variable."';"
  #7 (permalink)  
Antiguo 03/05/2010, 04:36
Avatar de dengaku  
Fecha de Ingreso: enero-2010
Mensajes: 69
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: Comparar dos contraseñas y actualizar

Cita:
Iniciado por hawkeye Ver Mensaje
por ejemplo tu escribes

"select * from tabla where campo=$variable;"

concatenando seria asi:

"select * from tabla where campo='".$variable."';"
Ok gracias comprendido ^^
  #8 (permalink)  
Antiguo 03/05/2010, 04:57
Avatar de dengaku  
Fecha de Ingreso: enero-2010
Mensajes: 69
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: Comparar dos contraseñas y actualizar

Sigo en este post, me falla la comprobacion de errores, me dice:

Problemas en el select:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

Yo hago lo siguiente:

Código PHP:
if (isset ($_REQUEST['modificav'])){
    
$erroresv false;
    
$cod $_REQUEST['cod'];
    
$pass1 $_REQUEST['pass1'];
    
$pass2 $_REQUEST['pass2'];
    
$nick1 $_REQUEST['nic'];

    if (
$pass1 != $pass2){ 
       
$error[1]=' No coinciden'
       
$erroresv=true;}
       
    if (
$pass2 != $pass1){ 
       
$error[2]=' No coinciden'
       
$erroresv=true;}
}

if (isset (
$_REQUEST['modificav']) and $erroresv==false){

    
$conexion=conecta();
$salt substr ($nick102);
$clave_crypta crypt ($pass1$salt);
$sq11="update usuarios set pass='$clave_crypta' where cod_usuario='$cod'";
$registros2=mysql_query($sq11,$conexion) or
              die(
"Problemas en el update".mysql_error());
 echo 
"Archivo fue modificado";
         
$paginaca="adminusu.php";
        
header("Location:$paginaca");
 } 
parece que se pasa por el forro mi control de errores o lo hago mal, porque me coge $pass1 este correcta o no y la mete. Toy probando cosas mientras, si alguno tiene una idea.
Bueno explico lo que quiero hacer, meter dos contraseñas, que las compare si son iguales, y si lo son coger una y meterla con el update en la tabla usuarios como pass, claro está que si no son iguales quiero que me diga que no son iguales y que se pare y no meta nada.
  #9 (permalink)  
Antiguo 03/05/2010, 05:02
 
Fecha de Ingreso: abril-2010
Mensajes: 61
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Comparar dos contraseñas y actualizar

prueba a hacer la consulta en mysql o algun otro gestor de BBDD que tengas y a ver por que falla, ya que el fallo que tienes es por que no esta bien la sintaxis, aloejor te mete alguna variable que esta vacia o algo asi
  #10 (permalink)  
Antiguo 03/05/2010, 12:31
Avatar de dengaku  
Fecha de Ingreso: enero-2010
Mensajes: 69
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: Comparar dos contraseñas y actualizar

Bueno esto ya va :O , pero no se muy bien como explicarlo, se ve ke al ser iguales si va bien, pero al no serlo se hace un lio con $cod_usup estos son lso cambios que e realizado:

Código PHP:
<?php
// Sesión iniciada
   
if (isset($_SESSION["usuario_valido"]))
   {
        include(
"libreria.php");
        
$conexion=conecta();
        
$uv=$_SESSION["usuario_valido"]; 
         
$cod_usup=$_REQUEST[codigod];

if (isset (
$_REQUEST['modificav'])){

    
$erroresv false;
    
$cod_usup $_REQUEST['cod'];
    
$pass1 $_REQUEST['pass1'];
    
$pass2 $_REQUEST['pass2'];
    
$nick1 $_REQUEST['nic'];
//    echo $pass1."</br>";
//    echo $pass2."</br>";

    
if ($pass1 != $pass2){ 
       
$error[1]=' No coinciden'
       
$erroresv true;}
       
}
//echo $_REQUEST['modificav'].'<br>'.$erroresv;
if (isset ($_REQUEST['modificav']) && $erroresv==false)
{
    
$conexion=conecta();
$salt substr ($nick102);
$clave_crypta crypt ($pass1$salt);
$sq11="update usuarios set pass='$clave_crypta' where cod_usuario='$cod_usup'";
$registros2=mysql_query($sq11,$conexion) or
              die(
"Problemas en el update".mysql_error());
 echo 
"Archivo fue modificado";
         
$paginaca="adminusu.php";
        
header("Location:$paginaca");
 }        
        
$conexion=conecta();
        
$sqvv="select * from usuarios where cod_usuario =$cod_usup";
        
$registrosaa=mysql_query($sqvv,$conexion) or
          die(
"Problemas en el select:".mysql_error());
            
        
           print 
"<table border='2' cellspacing='0' class='stilo3'>";


        while (
$regv=mysql_fetch_array($registrosaa))
        {
              print 
'<form action="pass.php" name="modificav" method="post">';
            print 
"<p class='stilo5'>Cambiar contraseña de ".$regv['nick']."</p>";
            print 
'<input size=5 type="hidden" name="cod" value="'.$regv['cod_usuario'].'">';
            print 
'<input size=5 type="hidden" name="nic" value="'.$regv['nick'].'">';
            print 
'<input size=5 type="hidden" name="nic" value="'.$regv['pass'].'">';
            

            print 
'<tr><td>Escribe contraseña</td>';            
            print 
'<td class=stilo7><input size=5 type="text" name="pass1" value="">';
        print (
"<font color=white>$error[1]</font><BR>");"</td></tr>";
        
            print 
"<tr><td>Repite la contraseña</td>";
            
            print 
'<td class=stilo7><input size=5 type="text" name="pass2" value="">';
        print (
"<font color=white>$error[1]</font><BR>");"</td></tr>";
            
             print 
'<tr><td class=stilo7><input type="submit" name="modificav" value="Modifica"></td></tr>';
            print 
"</form>";
        }
        print 
"</table>";

}

?>

Etiquetas: comparar, contraseñas, dos
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 07:49.