Foros del Web » Programando para Internet » PHP »

complicacion con if.. =S

Estas en el tema de complicacion con if.. =S en el foro de PHP en Foros del Web. Buenas a todos los del foros del web!! me a pasado algo que me a puesto a analizar mas o menos, esa es la programacion ...
  #1 (permalink)  
Antiguo 23/04/2010, 13:57
Avatar de JoseGMariani  
Fecha de Ingreso: diciembre-2008
Ubicación: Edo Lara
Mensajes: 251
Antigüedad: 15 años, 4 meses
Puntos: 8
Pregunta complicacion con if.. =S

Buenas a todos los del foros del web!! me a pasado algo que me a puesto a analizar mas o menos, esa es la programacion o.O aveces se las trae.. :S

bueno fijence es que yo queria hacer un sistema de referidos.. verdad.. entoncs bueno.. es lago sencillo es por get agarra el id del usuario y el formulario lee el get y lo inseta en el campo "ref" de ese usuario que se acaba de registrar.. :)

register.php?ref=123 (el usuario se registrara y su ref seria: 123

hasta hay todo bien perfecto. :) y pues cuando se vayan a registrarpor la pagina pues la pagina no tiene la variable ref, definida por get y el campo ref del usuario queda vacio..

register.php (el usuario se registra y su ref seria vacio.. que en mysql me lo toma como 0..

perfecto! =)!

Lo que sucede ahora y sin alargarlo mas.. es que quiero que compruebe que el numero de referido es decir el id.. en este caso: 123, existe! de ser correcto pues prosiga.. d elo contrario, salg algun alert y eso.. ya saben.. ;)

la cosa s eme complica cuando me doy cuenta de que el id "vacio" no existe verdad entoncs bueno se me ocurrio quepodria hacer esto, decirle:

if($ref>0) {
$checkref = mysql_query("SELECT id FROM usuarios");
$ref_exist = mysql_num_rows($checkref);

if ($ref_exist<0) //esto quiere decir que no existe. {
echo "el link que utilizaste para registrarte es incorrecto";
}
Prosiga...
}
//fin..

supuesta mente asi.. solo me dice bueno si ref>0 paso lo siguiente.. y si no sigo normal..

es que no queria repetir tooodo el codigo.. :S ese es el punto..
yo podria poner un else.. y repetir el codigo.. :s pero creo q hay forma d hacerlo como digo.. :) ! ya lo probe el problema es que no me sigue el codigo.. :S noc ejecuta nada y no da error ni nada.. :S

Algunas de apara hacer lo que pido, o descubrir por q no funciona, porfa.. =S la otra solucons seria hacer otro archivo php para los ref pero eso seria noc muy poco profecional.. =S
__________________
"Nunca seas arrogante con los humildes, ni humilde con los arrogantes." Paulo Coelho..
  #2 (permalink)  
Antiguo 23/04/2010, 15:04
 
Fecha de Ingreso: diciembre-2009
Mensajes: 612
Antigüedad: 14 años, 4 meses
Puntos: 16
Respuesta: complicacion con if.. =S

$checkref = mysql_query("SELECT id FROM usuarios where id='$id'");

if($row = mysql_flech_array(checkref))
{
Prosigue aquí y realiza las tareas
} else {
termina aquí }
  #3 (permalink)  
Antiguo 23/04/2010, 15:06
 
Fecha de Ingreso: abril-2010
Mensajes: 16
Antigüedad: 14 años
Puntos: 0
Hola!

Mira, yo no se mucho de php(Casi nada) pero creo que podrias probar con algo asi.


Código:
$checkref = mysql_query("SELECT id FROM usuarios");
$ref_exist = mysql_num_rows($checkref);

if ($ref_exist==0){
echo "el link que utilizaste para registrarte es incorrecto";
} else {
[ACA EL CODIGO DE TU REGISTRO]
}



Igual, estaria mucho mas bueno si pusieras todo el codigo, a si es mas facil :)

A y el ref seria el id de usuario o el nombre?


saludos! :)

uh ya erre mal ahi, me equivoque :P
Código:
$checkref = mysql_query("SELECT id FROM usuarios where id='%s'", mysql_real_escape_string($ref));
$ref_exist = mysql_num_rows($checkref);

if ($ref_exist==0){
echo "el link que utilizaste para registrarte es incorrecto";
} else {
[ACA EL CODIGO DE TU REGISTRO]
}

Última edición por GatorV; 23/04/2010 a las 16:30
  #4 (permalink)  
Antiguo 23/04/2010, 19:41
Avatar de JoseGMariani  
Fecha de Ingreso: diciembre-2008
Ubicación: Edo Lara
Mensajes: 251
Antigüedad: 15 años, 4 meses
Puntos: 8
Respuesta: complicacion con if.. =S

nomuchachos estan bien sus ejemplos pero .. :S presisamente eso e slo q eh hecho.. :S

el detalle esta en que al mismo tiempo no puede ser 0 por que cuando el ponga la direccion
register.php se tiene q seguir registrando de todas formas.. :S

es decir si es 0 pues prosige.. y si es mayor que 0 .(que son todos los id... pue slo verifica que exista si existe prosige si no existe no prosige.. :S .. eso e slo que quiero lograr..

aunq ahora para salvarme,... eh creado otro archivo para el registro que se encuentra en otra carpeta q s ellama referrer.. entoncs bueno trato los casos por separado.. :)
cuando se vana registar por la pagina es por register.php .. hay no sucede nada y el ref es 0 .

y cuando se van a regsitrar por un referido el linck seria
misitio.com/referrer/?r=ID_DEL_REFERIDOR
crey que ocn esto me slavava de complicarme con los if.. pero resulta que no. =( aun asi .. me sigue registrando al usuario asi el id no exista.. :S

aqui esta el codigo:
Código PHP:
<?

include ('../seg/conexion.php');
//funcion para comprobar un mail
function comprobar_mail($mail)

  if (!
ereg("^([a-zA-Z0-9._]+)@([a-zA-Z0-9.-]+).([a-zA-Z]{2,4})$",$mail)){ 
      return 
FALSE
  } else { 
       return 
TRUE
  } 
 
}

// Preguntaremos si se han enviado ya las variables necesarias
if (isset($_POST["nombre"])) {
$nombre $_POST["nombre"];
$email $_POST["email"];
$ref $_POST["ref"];
$estado 1;
$pass $_POST["password"];
$cpassword $_POST["cpassword"];
$sc $_POST["sc"];
$sexo $_POST["sexo"];
$dia $_POST["dia"];
$mes $_POST["mes"];
$anno $_POST["anno"];
$fn =$anno."-".$mes."-".$dia;
$link =$_POST["link"];
$pais $_POST["pais"];
$fecha=date("Y-m-d");
$ip=$_SERVER["REMOTE_ADDR"];
$sc2=base64_encode("$sc");
$nombre2=base64_encode("$nombre");
$mail2 "[email protected]";
// Hay campos en blanco
if(empty($nombre) | empty($pass) | empty($sc) | empty($sexo) | empty($link) | empty($dia) | empty($mes) | empty($anno) | empty($pais) | empty($cpassword) | empty($email)) {
echo 
"<script type=\"text/javascript\">alert(\"Un Campo Esta Vacio\"); window.history.back();</script>";
}else{
// ¿Coinciden las contraseñas?
if($pass!=$cpassword) {
echo 
"<script type=\"text/javascript\">alert(\"Las Contraseñas no coinciden\"); window.history.back();</script>";
}else{
// si el id es correcto..*********AQUI
$checkref mysql_query("SELECT id FROM usuarios WHERE estado!='$estado'");
$ref_exist mysql_num_rows($checkref);

if (
$ref_exist>0) {

$checkemail mysql_query("SELECT email FROM usuarios WHERE email='$email'");
$email_exist mysql_num_rows($checkemail);

if (
$email_exist>0) {
echo 
"<script type=\"text/javascript\">alert(\"Este email ya esta siendo utilizado, intenta con otro.\");window.history.back();</script>";
}else{
$checknombre mysql_query("SELECT nombre FROM usuarios WHERE nombre='$nombre'");
$nombre_exist mysql_num_rows($checknombre);

if (
$nombre_exist>0) {
echo 
"<script type=\"text/javascript\">alert(\"Este usuario ya existe en nuestra base de datos!.\"); window.history.back();</script>";}else{
if(
comprobar_mail($email))
{
/*Si la función devuelve TRUE, o sea que si está correcto muestro un mensaje o lo que quiera mostrar*/ 
        //Todo parece correcto procedemos con la inserccion
    
$query "INSERT INTO usuarios (nombre, pass, sc, pais, sexo, fn, link, email, fecha, ip, ref) VALUES('$nombre','$pass','$sc','$pais','$sexo','$fn','$link','$email','$fecha' ,'$ip','$ref')";
    
mysql_query($query) or die(mysql_error());
    
$header 'From: ' $mail2 " \r\n";
$header .= "X-Mailer: PHP/" phpversion() . " \r\n";
$header .= "Mime-Version: 1.0 \r\n";
$header .= "Content-Type: text/plain";

$mensaje "Bienvenido(a)  " $nombre ", al Banco de Comercio, 'Bancomer' El Banco mas grande de Erepublik \r\n";
$mensaje .="\r\n";
$mensaje .="Tu Datos son los siguientes:\r\n";
$mensaje .="\r\n";
$mensaje .="Nombre: ".$nombre."\r\n";
$mensaje .="\r\n";
$mensaje .="Clave de Acceso: ".$pass." utilizala para entrar a tu cuenta en el Banco de Comercio\r\n";
$mensaje .="\r\n";
$mensaje .="Clave de Seguridad: ".$sc." Se te solicitara para algunos movimientos como medida de seguridad.\r\n";
$mensaje .="\r\n";
$mensaje .="Sexo: ".$sexo."\r\n";
$mensaje .="\r\n";
$mensaje .= " Para Comprobar que este es tu email y Activar Tu Cuenta haz clic aqui: \r\n";
$mensaje .= "\r\n";
$mensaje .= "http://misitio/es/comprob.php?78363hysksldidud76eh9=$nombre2&b65478ib23=$sc2&B1=Enviar\r\n";
$mensaje .= "\r\n";
$mensaje .="Saludos.\r\n";
$mensaje .="\r\n";
$mensaje .="-Banco de Comercio exclusivo para el juego online Erepublik\r\n";
$mensaje .="http://misitio/es/";

$asunto 'Bienvenido(a) al Banco de Comercio';
mail($email$asuntoutf8_decode($mensaje), $header); 
    echo 
'<script languaje="JavaScript">
var varjs="'
.$nombre.' haz sido registrado(a) en Banco de Comercio. Desde ahora podras acceder a tu cuenta una vez hayas comprobado tu email pulsando en el link que se te ha enviado. En unos segundos recibirás un mensaje con tus datos, al correo '.$email.' Revisa tu bandeja de correo electrónico no deseado. (Se te recomienda marcarlo como correo seguro o deseado.)";
alert(varjs); window.close();
</script>'
;  
;
}else

       echo 
"<script type=\"text/javascript\">alert(\"Email Mal Escrito o inecistente.\"); window.history.back();</script>";
}
}
}
/
AQUIIIIIIIIIIIIIIII
}else{echo "<script type=\"text/javascript\">alert(\"El link que estas usando para registrarte esta incorrecto, seras redirigido a la pagina ofccial. ");window.history.back();</script>";
}
}
}
?>
la parte del where estado!=$estado (donde estado=1) es por que los usuarios que tengan estado 1 son baneados.. entonces pro eos no se les toma en cuenta..

espero hayan entendido bien el codigo.. :S ahora le problma que me da es que me registra el usuario de igual forma.. :S aunq le ponga un id erroneo.. :S
:)

MIllan2525 no entiendo muy bien tu codigo. .:S ..
__________________
"Nunca seas arrogante con los humildes, ni humilde con los arrogantes." Paulo Coelho..

Etiquetas: Ninguno
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 21:40.