Foros del Web » Programando para Internet » PHP »

Ayuda

Estas en el tema de Ayuda en el foro de PHP en Foros del Web. pues sigo con el sistema de registro, y no se dnd tengo el fallo, o si me e liado con los else :P Código PHP: ...
  #1 (permalink)  
Antiguo 23/08/2010, 04:10
 
Fecha de Ingreso: agosto-2010
Ubicación: pontevedra
Mensajes: 64
Antigüedad: 13 años, 9 meses
Puntos: 1
Ayuda

pues sigo con el sistema de registro, y no se dnd tengo el fallo, o si me e liado con los else :P
Código PHP:
<?php
include("archivos/conexion.php");
?>
<!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 content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Berto1989 Registro</title>
<link href='css/logeo.css' rel='stylesheet' type='text/css' />
<link rel='shortcut icon' href='archivos/imagenes/favicon.png' type='image/x-icon'/>
</head>

<body>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<form action='?registro=1' method='post' enctype='multipart/form-data' name='formulario'>
<table class='table' align='center' style='width: 490px; height: 390px'>
<tr>
<td>
<p align='center' style='height: 73px'>
<label>Usuario</label> &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;<input name='usuario' type='text' style='width: 230px'/><br/>
<label>email</label> &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input name='email' type='text' style='width: 230px'>
<br/>
<label>password</label> &nbsp; &nbsp;<input name='password' type='password' style='width: 230px'/><br/>
<input name='id' type='hidden' value='$id1'/></p>
<p class='error' align='center'>
<?php 
$campo1 
$_POST['usuario'];
$campo2 $_POST['email'];
$campo3 $_POST['password'];

$id1 $_GET['id'];
$query mysql_query("SELECT * FROM  registros WHERE id = '$id1'") or die(mysql_error());
$data mysql_fetch_array($query);

if (isset(
$_GET["registro"]))
{
if(
$data['id'] == "")
{
echo 
"Lo sentimos, el registro es por invitacion";
}
else
{
if(
$campo1;$campo2;$campo3 == ""){
echo 
"Debe cumplimentar todos los campos";
}
}
else
{
$user $_POST['usuario'];
$query mysql_query("SELECT * FROM  usuarios WHERE usuario= '$user'") or die(mysql_error());
$data mysql_fetch_array($query);

if(
$data['usuario'] == ($user)){

echo 
"Lo sentimos, este usuario ya esta en uso";
}
}
else
{
$usuario1 $_POST['usuario'];
$pass $_POST['password'];
$pass_md5 md5($pass);
$email1 $_POST['email'];
$id2 $_POST['id'];

@
mysql_query("INSERT INTO `usuarios` (`usuario`, `password`, `password2`,  `email`) VALUES ('$usuario1', '$pass_md5', '$pass', '$email1')");
@
mysql_query("DELETE FROM registros WHERE id = '$id2'") or die(mysql_error());

header("location: index.php");
exit();
}
}
?>


</p>
<p align='center' style='height: 26px; width: 484px'>
<input type='submit' value='Registrar'/>
<br/>
</p>
</td>
</tr>
</table>
</form>
</body>
</html>
  #2 (permalink)  
Antiguo 23/08/2010, 04:15
Avatar de geq
geq
 
Fecha de Ingreso: agosto-2006
Ubicación: Rosario
Mensajes: 655
Antigüedad: 17 años, 8 meses
Puntos: 22
Respuesta: Ayuda

Hola,

El primer error que veo es el else. En las condiciones, no puedes usar ;, poner algo como eso. Tienes que validar cada variable por separado y armar la condición lógica con AND (&&) o OR (||). A demás, usa elseif en lugar de else y dentro otro if!

Ejemplo:

Código PHP:
} elseif($campo1==""||$campo2==""||$campo3=="") { 
Saludos!
  #3 (permalink)  
Antiguo 23/08/2010, 05:08
 
Fecha de Ingreso: agosto-2010
Ubicación: pontevedra
Mensajes: 64
Antigüedad: 13 años, 9 meses
Puntos: 1
Respuesta: Ayuda

buenas, lo e puesto asi y sigue sin ir
  #4 (permalink)  
Antiguo 23/08/2010, 05:14
Avatar de geq
geq
 
Fecha de Ingreso: agosto-2006
Ubicación: Rosario
Mensajes: 655
Antigüedad: 17 años, 8 meses
Puntos: 22
Respuesta: Ayuda

¿Revisaste todo el if completo? ¿Qué problema tiene, tira algún error?

Luego envía cómo te ha quedado el código.

Saludos
  #5 (permalink)  
Antiguo 23/08/2010, 05:26
 
Fecha de Ingreso: agosto-2010
Ubicación: pontevedra
Mensajes: 64
Antigüedad: 13 años, 9 meses
Puntos: 1
Respuesta: Ayuda

pues ahora me salta seguido k el registro es por invitacion

Código PHP:
<?php 
$campo1 
$_POST['usuario'];
$campo2 $_POST['email'];
$campo3 $_POST['password'];

$id1 $_POST['id'];
$query mysql_query("SELECT * FROM  registros WHERE id = '$id1'") or die(mysql_error());
$data mysql_fetch_array($query);

$user $_POST['usuario'];
$query1 mysql_query("SELECT * FROM  usuarios WHERE usuario= '$user'") or die(mysql_error());
$data1 mysql_fetch_array($query1);


if (isset(
$_GET["registro"]))
{
if(
$data['id'] == "")
{
echo 
"Lo sentimos el registro es por invitacion o esta<br/> invitacion ya a sido utilizada";
}
elseif(
$campo1==""||$campo2==""||$campo3=="")
{
echo 
"Debe cumplimentar todos los campos";
}
elseif(
$data1['usuario'] == ($user))
{
echo 
"Lo sentimos, este usuario ya esta en uso";
}
else
{

$usuario1 $_POST['usuario'];
$pass $_POST['password'];
$pass_md5 md5($pass);
$email1 $_POST['email'];
$id2 $_POST['id'];

@
mysql_query("INSERT INTO `usuarios` (`usuario`, `password`, `password2`,  `email`) VALUES ('$usuario1', '$pass_md5', '$pass', '$email1')");
@
mysql_query("DELETE FROM registros WHERE id = '$id2'") or die(mysql_error());

header("location: index.php");
exit();
}
}
?>
  #6 (permalink)  
Antiguo 23/08/2010, 05:32
Avatar de geq
geq
 
Fecha de Ingreso: agosto-2006
Ubicación: Rosario
Mensajes: 655
Antigüedad: 17 años, 8 meses
Puntos: 22
Respuesta: Ayuda

¿Has revisado en el código fuente que el campo id tenga algún valor?

Saludos
  #7 (permalink)  
Antiguo 23/08/2010, 05:57
 
Fecha de Ingreso: agosto-2010
Ubicación: pontevedra
Mensajes: 64
Antigüedad: 13 años, 9 meses
Puntos: 1
Respuesta: Ayuda

bueno creo que ya esta solucionado

codigo php
Código PHP:
<?php 
$campo1 
$_POST['usuario'];
$campo2 $_POST['email'];
$campo3 $_POST['password'];

$id1 $_POST['id'];
$query mysql_query("SELECT * FROM  registros WHERE id = '$id1'") or die(mysql_error());
$data mysql_fetch_array($query);

$user $_POST['usuario'];
$query1 mysql_query("SELECT * FROM  usuarios WHERE usuario= '$user'") or die(mysql_error());
$data1 mysql_fetch_array($query1);


if (isset(
$_GET["registro"]))
{
if(
$data['id'] == "")
{
echo 
""Lo sentimos el registro es por invitacion o esta<br/> invitacion ya a sido utilizada"";
}
elseif(
$campo1==""||$campo2==""||$campo3=="")
{
echo 
"Debe cumplimentar todos los campos";
}
elseif(
$data1['usuario'] == ($user))
{
echo 
"Lo sentimos, este usuario ya esta en uso";
}
else
{

$usuario1 $_POST['usuario'];
$pass $_POST['password'];
$pass_md5 md5($pass);
$email1 $_POST['email'];
$id2 $_POST['id'];

@
mysql_query("INSERT INTO `usuarios` (`usuario`, `password`, `password2`,  `email`) VALUES ('$usuario1', '$pass_md5', '$pass', '$email1')");
@
mysql_query("DELETE FROM registros WHERE id = '$id2'") or die(mysql_error());

header("location: index.php");
exit();
}
}
?>
Ahora el problema que tengo es que si el usuario existe, me lo comprueba bien, pero en la url me pone ?registro=1, y ya si pone bien los datos y le da a registrar, ya no me lo registra
  #8 (permalink)  
Antiguo 23/08/2010, 06:09
 
Fecha de Ingreso: octubre-2009
Ubicación: En el ordenador
Mensajes: 504
Antigüedad: 14 años, 7 meses
Puntos: 10
Respuesta: Ayuda

Código PHP:
<?php
include("archivos/conexion.php");
?>
<!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 content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Berto1989 Registro</title>
<link href='css/logeo.css' rel='stylesheet' type='text/css' />
<link rel='shortcut icon' href='archivos/imagenes/favicon.png' type='image/x-icon'/>
</head>

<body>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<?php//En el action de aquí abajo, prueba a poner la ruta "entera" ('registro.php?registro=1') ?>
<form action='?registro=1' method='post' enctype='multipart/form-data' name='formulario'>
<table class='table' align='center' style='width: 490px; height: 390px'>
<tr>
<td>
<p align='center' style='height: 73px'>
<label>Usuario</label> &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;<input name='usuario' type='text' style='width: 230px'/><br/>
<label>email</label> &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input name='email' type='text' style='width: 230px'>
<br/>
<label>password</label> &nbsp; &nbsp;<input name='password' type='password' style='width: 230px'/><br/>
<?php //Este $id1 debería estar: entre php, y tener un valor, porque creo que el id1 se muestra en el asterisco de más abajo (*). Por tanto, aquí pues sería <input name='id' type='hidden' value='<?php echo $id1; ?>'/></p>. En el caso de que el asterisco de abajo sea el valor que debe mostrar, deberías subir esto hasta aquí ?>
<input name='id' type='hidden' value='$id1'/></p>
<p class='error' align='center'>
<?php 
$campo1 
$_POST['usuario'];
$campo2 $_POST['email'];
$campo3 $_POST['password'];
//(*) Este es el asterisco, además, no estoy seguro, pero creo que debería ser por post, ¿o no?
$id1 $_GET['id'];
$query mysql_query("SELECT * FROM  registros WHERE id = '$id1'") or die(mysql_error());
$data mysql_fetch_array($query);
//esto, como han dicho, puede ser un if{}else if{}else{}
if (isset($_GET["registro"])){
       if(
$data['id'] == ""){
             echo 
"Lo sentimos, el registro es por invitacion";
       }
       
//como han dicho, esto no puede ir con comas, tienen que ser condiciones separadas: else if($campo1 == "" or $campo2 =="" or $campo3==""){   . Ten en cuenta también la función empty
       
else if ($campo1;$campo2;$campo3 == ""){
              echo 
"Debe cumplimentar todos los campos";
      }
      else{
$user $_POST['usuario'];
$query mysql_query("SELECT * FROM  usuarios WHERE usuario= '$user'") or die(mysql_error());
$data mysql_fetch_array($query);
//aqui no hacen falta parentesis en user
if($data['usuario'] == $user){
       echo 
"Lo sentimos, este usuario ya esta en uso";
}
}
else{
$usuario1 $_POST['usuario'];
$pass $_POST['password'];
$pass_md5 md5($pass);
$email1 $_POST['email'];
$id2 $_POST['id'];
@
mysql_query("INSERT INTO `usuarios` (`usuario`, `password`, `password2`,  `email`) VALUES ('$usuario1', '$pass_md5', '$pass', '$email1')");
@
mysql_query("DELETE FROM registros WHERE id = '$id2'") or die(mysql_error());

header("location: index.php");
exit();
}
}
?>


</p>
<p align='center' style='height: 26px; width: 484px'>
<input type='submit' value='Registrar'/>
<br/>
</p>
</td>
</tr>
</table>
</form>
</body>
</html>
Suerte!


Edito: no habia visto que habias respondido!
__________________
Buscando ideas para proyectos....

Esperando a tener 18 años....
  #9 (permalink)  
Antiguo 23/08/2010, 06:16
 
Fecha de Ingreso: agosto-2010
Ubicación: pontevedra
Mensajes: 64
Antigüedad: 13 años, 9 meses
Puntos: 1
Respuesta: Ayuda

si pongo como dices de registro.php?registro=1, me salta un error en otra pagina de custom404error
  #10 (permalink)  
Antiguo 23/08/2010, 06:18
 
Fecha de Ingreso: octubre-2009
Ubicación: En el ordenador
Mensajes: 504
Antigüedad: 14 años, 7 meses
Puntos: 10
Respuesta: Ayuda

Me he expresado mal, quería decir:

(la pagina actual)?registro=1
__________________
Buscando ideas para proyectos....

Esperando a tener 18 años....
  #11 (permalink)  
Antiguo 23/08/2010, 06:25
Avatar de geq
geq
 
Fecha de Ingreso: agosto-2006
Ubicación: Rosario
Mensajes: 655
Antigüedad: 17 años, 8 meses
Puntos: 22
Respuesta: Ayuda

Yo te recomendaría pasar registro como otro campo hidden en lugar de ponerlo en el action del formulario, pruébalo.

Verifica también el valor del campo id!

Saludos
  #12 (permalink)  
Antiguo 23/08/2010, 06:43
 
Fecha de Ingreso: agosto-2010
Ubicación: pontevedra
Mensajes: 64
Antigüedad: 13 años, 9 meses
Puntos: 1
Respuesta: Ayuda

el campo id me fufa bien, pero el problema es el siguiente:


Si pongo un usuario que esta registrado me pone "Este usuario ya esta en uso", y sigue en el registro, pero la url cambio de registro.php?id=xxxxx a registro.php?registro=1, por eso no me debe ir bien.
  #13 (permalink)  
Antiguo 23/08/2010, 06:53
 
Fecha de Ingreso: octubre-2009
Ubicación: En el ordenador
Mensajes: 504
Antigüedad: 14 años, 7 meses
Puntos: 10
Respuesta: Ayuda

Te hace eso al enviar, porque cuando lo envías, se queda solo el registro=1.

Quizás me equivoqué y en el action, con ?registro=1 había suficiente.

Pruébalo, a ver si me me he equivocado
__________________
Buscando ideas para proyectos....

Esperando a tener 18 años....
  #14 (permalink)  
Antiguo 24/08/2010, 13:04
 
Fecha de Ingreso: agosto-2010
Ubicación: pontevedra
Mensajes: 64
Antigüedad: 13 años, 9 meses
Puntos: 1
Respuesta: Ayuda

wenas siento haber tardado tanto en contestar, pero tuve k instalar windows 7 en un ordenador, y me daba problemas la tarjeta wifi.


Cuando le doy a enviar me cambia lo de ?id=xxx por ?registro=1, pero el id ya no me lo tiene, asi k no me puede validar el id y no me lo registra. alguna manera de solucionarlo?
  #15 (permalink)  
Antiguo 24/08/2010, 13:08
 
Fecha de Ingreso: octubre-2009
Ubicación: En el ordenador
Mensajes: 504
Antigüedad: 14 años, 7 meses
Puntos: 10
Respuesta: Ayuda

Hola!

prueba así en el form:

action="<?php echo $_SERVER['PHP_SELF']; ?>&registro=1"

No se si PHP_SELF te guardará también el get

EDITO: la he cagado, no va con interrogante, sino con &
__________________
Buscando ideas para proyectos....

Esperando a tener 18 años....
  #16 (permalink)  
Antiguo 29/08/2010, 06:04
 
Fecha de Ingreso: agosto-2010
Ubicación: pontevedra
Mensajes: 64
Antigüedad: 13 años, 9 meses
Puntos: 1
Respuesta: Ayuda

siento haber tardado tanto de nuevo, al ejecutarlo, me pone en la url los datos, pero no registra.
  #17 (permalink)  
Antiguo 29/08/2010, 07:59
 
Fecha de Ingreso: octubre-2009
Ubicación: En el ordenador
Mensajes: 504
Antigüedad: 14 años, 7 meses
Puntos: 10
Respuesta: Ayuda

Hola!

Pero los gets de arriba estan bien puestos?
__________________
Buscando ideas para proyectos....

Esperando a tener 18 años....
  #18 (permalink)  
Antiguo 29/08/2010, 14:16
 
Fecha de Ingreso: agosto-2010
Ubicación: pontevedra
Mensajes: 64
Antigüedad: 13 años, 9 meses
Puntos: 1
Respuesta: Ayuda

si no recuerdo mal si, puesto k registrar me registra si pongo un usuario k no este en la bd
  #19 (permalink)  
Antiguo 30/08/2010, 07:40
 
Fecha de Ingreso: octubre-2009
Ubicación: En el ordenador
Mensajes: 504
Antigüedad: 14 años, 7 meses
Puntos: 10
Respuesta: Ayuda

pues si registra, cúal es el problema?
__________________
Buscando ideas para proyectos....

Esperando a tener 18 años....
  #20 (permalink)  
Antiguo 30/08/2010, 12:22
 
Fecha de Ingreso: agosto-2010
Ubicación: pontevedra
Mensajes: 64
Antigüedad: 13 años, 9 meses
Puntos: 1
Respuesta: Ayuda

pues k si mete un usuario k esta registrado, le salta el mensaje de "Este usuario esta registrado", y cambia la url de ?id=xxxxx a ?registro=1, y asi luego de volver a escribir otro usuario, no me deja registrarlo, por k no tiene id que validar
  #21 (permalink)  
Antiguo 30/08/2010, 13:26
 
Fecha de Ingreso: octubre-2009
Ubicación: En el ordenador
Mensajes: 504
Antigüedad: 14 años, 7 meses
Puntos: 10
Respuesta: Ayuda

Esto último no entiendo demasiado bien por qué es, pero se podría probar así:

Código PHP:
<?php
$pagina 
"la pagina actual.php";
if(
$_GET['id']){
            
$pagina .= '?id='.$_GET['id'].'&registro=1';
}else{
             
$pagina .= '?registro=1';
}
<form action="<?php echo $pagina; ?>"....
__________________
Buscando ideas para proyectos....

Esperando a tener 18 años....
  #22 (permalink)  
Antiguo 31/08/2010, 02:01
 
Fecha de Ingreso: agosto-2010
Ubicación: pontevedra
Mensajes: 64
Antigüedad: 13 años, 9 meses
Puntos: 1
Respuesta: Ayuda

ese codigo no lo entiendo, dnd ai k ponerlo?
  #23 (permalink)  
Antiguo 31/08/2010, 03:58
 
Fecha de Ingreso: octubre-2009
Ubicación: En el ordenador
Mensajes: 504
Antigüedad: 14 años, 7 meses
Puntos: 10
Respuesta: Ayuda

<form action='?registro=1' method='post' enctype='multipart/form-data' name='formulario'>

Esto de aquí (no se ahora mismo como está en tu código), prueba a cambiarlo por esto:

<?php
$pagina
= "la pagina actual.php";
if(
$_GET['id']){
$pagina .= '?id='.$_GET['id'].'&registro=1';
}else{
$pagina .= '?registro=1';
}
?>
<form action='<?php echo $pagina; ?>' method='post' enctype='multipart/form-data' name='formulario'>

Espero que funcione bien de una p*** vez
__________________
Buscando ideas para proyectos....

Esperando a tener 18 años....
  #24 (permalink)  
Antiguo 31/08/2010, 05:36
 
Fecha de Ingreso: agosto-2010
Ubicación: pontevedra
Mensajes: 64
Antigüedad: 13 años, 9 meses
Puntos: 1
Respuesta: Ayuda

pos no me funciona :S, me sale siempre el registro y no me da ni error ni me registra


edito: muchas gracias markmb ya ta solucionao asi k si tal cerrar el post

Última edición por berto1989; 31/08/2010 a las 15:57

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 10:31.