Foros del Web » Programando para Internet » PHP »

Arreglos y parametros

Estas en el tema de Arreglos y parametros en el foro de PHP en Foros del Web. Estoy comprobando si el login de algún usuario que trate de registrarse en mi web existe ya en la BDatos. Si existe entonces le genero ...
  #1 (permalink)  
Antiguo 21/06/2004, 19:02
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 15 años
Puntos: 1
Arreglos y parametros

Estoy comprobando si el login de algún usuario que trate de registrarse en mi web existe ya en la BDatos. Si existe entonces le genero varios nuevos. Esta es la función que he creado con dicha finalidad:
Código PHP:
function GeneraName($login,$name,$lastname){
  global 
$newname;
  
$newname = array();
  
$year date("Y");
  
array_push($newname,$login.$name); # Login - Nombre
  
array_push($newname,$login.$name.$lastname); # Login - Nombre - Apellido
  
array_push($newname,$name.$login); # Nombre - Login
  
array_push($newname,$lastname.$login); # Apellido - Login
  
array_push($newname,$login.$lastname.$name); # Login - Apellido - Nombre
  
array_push($newname,$login.$name.$year); # Login - Nombre - Año
  
array_push($newname,$login.$lastname.$year); # Login - Apellido - Año
  
array_push($newname,$login.$year.$name); # Login - Año - Nombre
  
array_push($newname,$login.$year.$lastname); # Login - Año - Apellido
  
array_push($newname,$login."_".$name); # Login - _ - Nombre
  
array_push($newname,$login."_".$name.$lastname); # Login -_- NombreApellido
  
array_push($newname,$login."_".$name.$year); # Login -_- NombreAño
  
return $newname;
 } 
pues bien la duda surge a la hora de llamarla:
Código PHP:
# Comprobamos si ya existe algún usuario que tenga ese nick que trata de ser registrado
        
$query1 "select * from rpmf_users where login='".$_POST['login']."'";
        
$result1 mysql_query($query1) or die("No se ha podido ejecutar la consulta ".$query1.". MySQL ha dicho: ".mysql_error());
        if(
mysql_num_rows($result1)!=0){
         
$dividido explode("",$_POST['namelastname']);
         list(
$nombre,$primerapellido,$segundoapellido) = $dividido;
         
$newlogin GeneraName($_POST['login'],$nombre,$primerapellido); # Llamamos a la función para crear un login de usuario
         
$cant count($newlogin);
         
$loginnew = array();
         for(
int $i=0;$i<$cant;$i++){
          
$query2 "select * from rpmf_users where login='".$newlogin[$i]."'";
          
$result2 mysql_query($query2) or die("No se ha podido ejecutar la consulta ".$query2.". MySQL ha dicho: ".mysql_error());
          if(
mysql_num_rows($result)!=0){
           
array_push($loginnew,$newlogin[$i]);
          }
         }
        } 
lo que hago es que recorro el nuevo arreglo creado con los posibles logins de usuarios que el usuario puede usar, además vuelvo a comprobar que de esos nuevos no haya ninguno ya en la Base de Datos y los meto en otro array. Lo que me pasa es que si me da ese error debería redireccionar a la página de registro de usuarios y mostrarle todos esos posibles nicks al usuario pero no se como los puedo pasar por parámetros por la URL para luego obtenerlos de ella y mostrarlos. Me dan alguna idea al respecto?
Salu2
__________________
Ing. Reynier Pérez Mira
  #2 (permalink)  
Antiguo 21/06/2004, 20:34
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 15 años
Puntos: 1
Nada se me ocurrio una idea un poco mejor

Se me ocurrio la idea de generar un tabla con OptionButton para darle a escoger a el usuario uno de esos. Hice esto:
Código PHP:
# Función para distribuir los resultados de los nuevos logins sugeridos al usuario
 
function LayerLogin($login){
  
$cant count($login);
  echo 
"<table width='150'>";
  for(
$i=0;$i<$cant;$i++){
   
$_SESSION['login'] = $login[$]i;
   echo 
"<tr><td class='td font'><label><input name='groupname' type='radio' value='".$i."'>".$login[$i]."</label></td></tr>";
  }
  echo 
"</table>";
 } 
pero como muestro el resultado dentro del HTML. Ya ahi tengo la tabla con todos los elementos de $login que son los que no esta en la BDatos pero no se me ocurre como mostrarlos al HTML.

Salu2
__________________
Ing. Reynier Pérez Mira
  #3 (permalink)  
Antiguo 22/06/2004, 07:52
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Respondiendo la primera pregunta ..

Supongo que $newlogin es el array final que obtienes con los "login" posibles verificados contra tu BD que no existen (de los generados por tu función GeneraName() ..)

Si es así .. ya que usas sesiones .. podrías meter ese array sin más en una variable de sesión antes de redireccionar a tu formulario final que haces para darle la opción a que tu usuario seleccione uno de los sugeridos tan sólo:

Código PHP:
$_SESSION['logins_posibles']=$newlogin;
// redireccionas a tu formulario .. 
Si en tu "formulario" usas la función: LayerLogin()

pues tan sólo pasarle el array que tienes en tu sesión:

LayerLogin($_SESSION['logins_posibles'])

Y si no necesitas más esa variable de sesión .. te deshaces de ella con:

unset($_SESSION['logins_posibles']);

al final de tu función (despues de la llamada sería lo lógico), quedando algo así:

Código PHP:
function LayerLogin($login){ 
  
$cant count($login); 
  echo 
"<table width='150'>"
  for(
$i=0;$i<$cant;$i++){ 
//Esto no te haría falta .. ya le pasas a la función como parámetro tu "array" que se obtiene de tu variable de sesión.
  // $_SESSION['login'] = $login[$]i; 
   
echo "<tr><td class='td font'><label><input name='groupname' type='radio' value='".$i."'>".$login[$i]."</label></td></tr>"
  } 
  echo 
"</table>"

Un saludo,

Última edición por Cluster; 22/06/2004 a las 07:55
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 04:55.