Foros del Web » Programando para Internet » PHP »

no funciona else

Estas en el tema de no funciona else en el foro de PHP en Foros del Web. Hola como estan estoy haciendo un cambio de password para la intranet que funciona muy bien, solo que no puedo lograr que me funcione el ...
  #1 (permalink)  
Antiguo 30/11/2007, 08:58
 
Fecha de Ingreso: octubre-2007
Mensajes: 43
Antigüedad: 16 años, 5 meses
Puntos: 0
no funciona else

Hola como estan estoy haciendo un cambio de password para la intranet que funciona muy bien, solo que no puedo lograr que me funcione el ultimo else del codigo, para avisarle al usuario si es que cambio o no cambio la clave, ya que aunque la cambie o no la cambie siempre arroja, "la contraseña a sido cambiada", dejo el ultimo intento del codigo para que me digan que debo hacer:


session_start();

mysql_connect ($dbhost, $dbusername, $dbuserpass);
mysql_select_db($dbname) or die("Cannot select database");

if (isset($_SESSION['s_username'])){

$username = $_SESSION["s_username"];


$passanterior = $_POST["passanterior"];
$passnuevo = $_POST["passnuevo"];
$reppassnuevo = $_POST["reppassnuevo"];


if($passnuevo!=$reppassnuevo) {
echo "Las contraseñas no coinciden";
}else{

$checkuser = mysql_query("SELECT username FROM users WHERE username='$username'");
$username_exist = mysql_num_rows($checkuser);

if ($username_exist>0) {

$query = "UPDATE users SET password='$passnuevo' WHERE username='$username' and password='$passanterior'";
mysql_query($query) or die(mysql_error());

}

$query1 = mysql_query("SELECT password FROM users WHERE username = '$username'") or die(mysql_error());
$row = mysql_fetch_row( $query1 );
$pass = $row[0];

if ($pass!=$passanterior){

echo "La contraseña a sido cambiada";

}else {

echo "la contraseña no pudo ser cambiada, ya que los campos no coincidian";
}

}
}

Lo que esta en rojo es donde no me funciona el else, que debo hacer? muchas gracias de antemano...
  #2 (permalink)  
Antiguo 30/11/2007, 09:11
Avatar de popobcn
Moderador
 
Fecha de Ingreso: noviembre-2006
Ubicación: Cerdanyola del Vallès
Mensajes: 3.892
Antigüedad: 17 años, 5 meses
Puntos: 1142
Re: no funciona else

Tienes un campo en tu tabla de usuarios llamado "CERO"???

Código PHP:
$pass $row['password']; 
Saludos
  #3 (permalink)  
Antiguo 30/11/2007, 09:50
 
Fecha de Ingreso: noviembre-2002
Mensajes: 1.341
Antigüedad: 21 años, 5 meses
Puntos: 17
Re: no funciona else

Si se ponen números en vez del nombre coge el campo que esté en la posición que indica el número, en éste caso como en la consulta sólo se selecciona un campo recogería el valor correctamente.

Al menos eso es lo que tenía entendido, aunque yo siempre lo referencio por nombre.

Y si no se mete en el else es que siempre cumple la condición. Es decir que las variables $pass y $passanterior siempre son diferentes. Prueba a mostrar por pantalla el contenido de las dos variables y a partir de ahí vete retrocediendo a donde está el fallo.
  #4 (permalink)  
Antiguo 30/11/2007, 10:29
Avatar de popobcn
Moderador
 
Fecha de Ingreso: noviembre-2006
Ubicación: Cerdanyola del Vallès
Mensajes: 3.892
Antigüedad: 17 años, 5 meses
Puntos: 1142
Re: no funciona else

Cita:
Iniciado por Keysher Ver Mensaje
Al menos eso es lo que tenía entendido, aunque yo siempre lo referencio por nombre.
Yo es que soy animal de costumbres, corto y en ocasiones hasta ciego si no veo con claridad absoluta el nombre asociado a las variables / campos xD ;) Pero tienes razón con lo de los números.

Por cierto, quizás el problema este en esta línea, ya que en el código que has publicado no aparece en ningún momento la variable $pass, desconozco cual debe de ser su contenido:

Código PHP:
if ($pass!=$passanterior){ 
Prueba a cambiarlo por:

Código PHP:
if ($passnuevo!=$passanterior){ 
Y si cumple la condición, saldra a las mil maravillas :)

Saludos
  #5 (permalink)  
Antiguo 30/11/2007, 13:13
 
Fecha de Ingreso: octubre-2007
Mensajes: 43
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: no funciona else

Hola popobcn muchas gracias por responder, pero creo que ese no era el problema ya que por lo que yo tengo entendido los row se manejan con numeros a menos que uno le de una variable con un nombre antes, y el $pass lo estoy usando para tomar los resultados de la query aqui:

$query1 = mysql_query("SELECT password FROM users WHERE username = '$username'") or die(mysql_error());
$row = mysql_fetch_row( $query1 );
$pass = $row[0];


Hola Keysher tambien gracias por respoder, si tienes razon aveces hay que empesar por lo basico, ya vi mi error al poner las variables en pantalla, solo tenia que cambiar esto:

if ($pass!=$passanterior){

por esto:

if ($pass==$passnuevo){

creo que me marie un poquito es que por aqui hace calor :P, y ando enfermito :P, no si se me escapo aveces sucede...

Muchas gracias a los dos por la ayuda no se que haria si no tubiese internet :P, creo que compraria libros :) adios....
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 23:58.