Foros del Web » Programando para Internet » PHP »

ayuda con estos if porfavor

Estas en el tema de ayuda con estos if porfavor en el foro de PHP en Foros del Web. llevo 3 horas comiendome la cabeza con este script Cita: if(isset($_POST['pregunta'])) { $_POST['user'] = $user; $_POST['passwd'] = $passwd; $_POST['pregunta'] = $pregunta; $_POST['respuesta'] = $respuesta; $_POST['mail'] ...
  #1 (permalink)  
Antiguo 06/08/2007, 03:21
 
Fecha de Ingreso: junio-2006
Mensajes: 62
Antigüedad: 17 años, 10 meses
Puntos: 0
Desacuerdo ayuda con estos if porfavor

llevo 3 horas comiendome la cabeza con este script

Cita:


if(isset($_POST['pregunta'])) {



$_POST['user'] = $user;
$_POST['passwd'] = $passwd;
$_POST['pregunta'] = $pregunta;
$_POST['respuesta'] = $respuesta;
$_POST['mail'] = $mail;






if (!$user != "" and $passwd != "" and $pregunta != "" and $respuesta != "" and

$mail != "" ){
print('El campo "usuario" quedo sin completar, por favor hagalo');}
elseif ($user != "" and !$passwd != "" and $pregunta != "" and $respuesta != "" and

$mail != "" ){
print('El campo "contraseña" quedo sin completar, por favor hagalo');}
elseif ($user != "" and $passwd != "" and !$pregunta != "" and $respuesta != "" and

$mail != "" ){
print('La pregunta secreta quedo sin completar, por favor hagalo'); }
elseif ($user != "" and $passwd != "" and $pregunta != "" and !$respuesta !="" and

$mail != "" ){
print('La respuesta a la pregunta secreta quedo sin completar, por favor hagalo');}
elseif ($user != ""and $passwd != "" and $pregunta != "" and $respuesta != "" and

!$mail != "" ){
print('El campo "correo electronico" quedo sin completar, por favor hagalo');}
elseif(!$user != "" or !$passwd != "" or !$pregunta != "" or !$respuesta != "" or

!$mail != "") {
print("Le han quedado campos importantes por completar, por favor hagalo");}
if($user != "" and $passwd != "" and $pregunta != "" and $respuesta != "" and $mail

!= "" ){

$sql = "SELECT * from basiclogin where user='$user' limit 1;";
$result = mysql_query($sql) or die (mysql_error());
while ($row = mysql_fetch_array($result));



}

if ($row['user'] = $user) {


print("Ya existe ese usuario en la base de datos");



}
else if ($row['user'] != $user) {


$sql = "INSERT INTO basiclogin (user,passwd,pregunta,respuesta,mail)

VALUES('$user','$passwd','$pregunta','$respuesta', '$mail');";
$result = mysql_query($sql) or die (mysql_error());

print("El registro se ha concluido con exito <br>");

}

ahora bien donde marque con azul pasa algo raro,

asi como esta el script me tira siempre false = "ya existe ese usuario"

pero si el "=" lo reemplazo por "==" me tira siempre true :/
y lo mas raro de todo es que despues le pido que me devuelva las dos variables para comprobar el resultado. nunca me devuelve $user

ayuda por favor ya se me agotaron las ideas
  #2 (permalink)  
Antiguo 06/08/2007, 05:00
Avatar de cala932  
Fecha de Ingreso: septiembre-2006
Ubicación: San Juan-Argentina
Mensajes: 902
Antigüedad: 17 años, 7 meses
Puntos: 9
Re: ayuda con estos if porfavor

Hola kelev, supongo que las variables las estas trayendo de algun lado. Entonces deberias colocar esto asi:
Código PHP:
$user=$_POST['user'] ;
$passwd=$_POST['passwd'] ;
$pregunta=$_POST['pregunta']  ;
$respuesta=$_POST['respuesta'] ;
$mail=$_POST['mail'];

//entonces ahora corriges el if. que por cierto antes hacias una asignacion.
if ($row['user'] == $user) { 
Probalo, y comentanos como te fue.

Saludos
__________________
->Aprender es un proceso que incluye el error..
  #3 (permalink)  
Antiguo 06/08/2007, 05:44
 
Fecha de Ingreso: junio-2006
Mensajes: 62
Antigüedad: 17 años, 10 meses
Puntos: 0
Re: ayuda con estos if porfavor

mmm sigo teniendo problemas, pero puede ser cualqueir cosa porque hice todo el procesador de todo el sitio en el mismo archivo, voy a separar esta parte en particular y voy a ver si anda, despues comento bien que paso


desde ya gracias cala
  #4 (permalink)  
Antiguo 06/08/2007, 15:19
Avatar de IMAC/  
Fecha de Ingreso: octubre-2005
Mensajes: 738
Antigüedad: 18 años, 5 meses
Puntos: 14
Re: ayuda con estos if porfavor

Tampoco me atrevería a asegurar nada.

Pero creo que el problema está en que en el if que marcaste estás asignando un valor en lugar de compararlo. De este modo supongo que mientras se pueda asignar un valor a $row['user'] dará 1 o true y el if se ejecutará siempre.


Para comparar valores diría que se usan dos signos de igual: ==

Quedaría así:

Código PHP:
 if ($row['user'] == $user) { 
Pruebalo si aún no solucionaste el problema. Aunque repito que no estoy muy seguro de si puede ser esta la causa.

Saludos.
  #5 (permalink)  
Antiguo 06/08/2007, 17:37
 
Fecha de Ingreso: agosto-2007
Mensajes: 6
Antigüedad: 16 años, 8 meses
Puntos: 1
Re: ayuda con estos if porfavor

hola!!! espero sto te sirva

si suponiendo que $user =$_POST['user']; =menvel
en el if lo que estas haciendo es decir

if($row['user'] == $user) logicamente siempre sera verdadero
esto pasa si sustituimos valores
if( menvel == menvel )

'user' viene de algun formulario y viene con el valor de = menvel y a su ves le estas diciendo ke $user se le asigne ese valor =menvel, por eso siempre teda verdadero cambialo a esto

if( $row[0] == $user )

para sacarte de dudas has esto otro:
pon un printf( $user ); despues de $user =$_POST['user']; asi ves que valor trae
y despues pon un printf( $row['user'] ); antes de if($row['user'] == $user) , asi ve el valor que sale y vas a ver que son iguales, y si a todo esto estoy mal me corriges vale.

por cierto creo que ese while esta mal, creo no me hagas caso.
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 16:48.