Foros del Web » Programando para Internet » PHP »

Ocultar registro para registrados

Estas en el tema de Ocultar registro para registrados en el foro de PHP en Foros del Web. bueno, hace poco hice un sistema de registro de usuario. logre hacer que con esto: Código PHP: <?  if(! $_COOKIE [ uid ]) {  ?>   ...
  #1 (permalink)  
Antiguo 26/04/2010, 13:15
 
Fecha de Ingreso: agosto-2009
Mensajes: 349
Antigüedad: 14 años, 8 meses
Puntos: 8
Ocultar registro para registrados

bueno, hace poco hice un sistema de registro de usuario.

logre hacer que con esto:

Código PHP:
<? 
if(!$_COOKIE[uid]) { 
?> 
CODIGOS DEL LOGIN
<? 

else { 
?>
BIENVENIDA AL USUARIO
<? 

?>
Se muestre el login (no logeados) y la bienvenida (logeados), tambien con el mismo logre hacer que en la barra de navegacion se muestre el link de registrarse o el de panel de control respectivamente.

ahora intento hacer que si un usuario ya logeado intenta ingresar a la direccion de registrarse le salga un mensaje que le diga que ya esta identificado.

Intente con los codigos de arriba pero me da el siguiente error:

Parse error: syntax error, unexpected T_ELSE in C:\xampp\htdocs\PortalTS Design\registrarse1.php on line 204

mi codigo es el siguiente:

Código PHP:
<script> 
function revisar() { 
if(formulario.nick.value.length < 3) { 
alert('El nick debe contener por lo mínimo 3 caractéres.') ; 
return false ; 
}
if(formulario.nombre.value.length < 1) { 
alert('Olvidaste ingresar tu Nombre.') ; 
return false ; 
}
if(formulario.contrasena.value.length < 6) { 
alert('La contraseña debe contener por lo mínimo 6 caractéres.') ; 
return false ; 

if(formulario.contrasena.value != formulario.c_contrasena.value) { 
alert('Las contraseñas no son correctas.') ; 
return false ; 
}
if(!/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(formulario.email.value)) { 
alert('Debes poner un email válido.') ; 
return false ; 


</script>
<title>PortalTS - Design Community</title>
<?php include("incluido.php"); ?>
<div align="center">
<table width="990" height="174" cellspacing="0" cellpadding="0">
<tr>
<td width="100%"></td><td>
<!-- login -->
<? 
if(!$_COOKIE[uid]) { 
?> 
<form method="post" action="ingresando.php">
<table cellpadding="3" cellspacing="0">
<tr><td><font color="#c9ecf6" size="1">&nbsp;<b>USUARIO:</b></font></td><td><font color="#c9ecf6" size="1">&nbsp;<b>PASSWORD:</b></font></td><td></td></tr>
<tr><td><div class="input_d"><input type="text" name="nick" maxlength="20"></div></td><td><div class="input_d"><input type="password" name="contrasena" maxlength="20"></div></td><td><div id="login_d"><input type="submit" name="enviar" value="Iniciar Sesión"></div></td></tr>
</td></tr>
<tr><td colspan="3"><font size="1" color="#d4d4d4">&nbsp;&nbsp;&nbsp;<a href="#" class="logo">¿Olvidaste tu contraseña?</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<label for="cb_cookieuser_navbar">Recordarme&nbsp;&nbsp;&nbsp;<input type="checkbox" name="option1" value="send"></label>
</table></form>
<? 

else { 
?>
<table cellpadding="3" cellspacing="0" width="300">
<tr><td><font size="1" color="#ffffff"><div align="center">Bienvenido/a <b><?=$_COOKIE[unick]?></b></div></td></tr>
<tr><td><div align="center"><font size="1" color="#d4d4d4"><a href="salir.php" class="logo">Cerrar Sesión</a></font></div></td></tr>
</table>
<? 

?>
<!-- fin login --></td>
</tr>
</table>
<table class="navegacion" cellspacing="0" cellpadding="2" border="0" width="990" align="center">
<?php include("navegacion.php"); ?>
<tr>
<td colspan="7" style="background: #16233a;">
<table width="100%" cellspacing="0" cellpadding="10">
<tr>
<td>
<div align="center">
<table cellpadding="0" cellspacing="0" border="0">
<tr><td><img src="images/top_bar.jpg"></td></tr>
<tr><td class="tdcontenido">
<? 
if(!$_COOKIE[uid]) { 
?> 

<div style="padding-top:10px;padding-left:10px;padding-bottom:5px;"><img src="images/registro.png"></div><br>
<!-- registrar -->
<div align="center">
<form name="formulario" method="post" action="<?=$_SERVER[PHP_SELF]?>" onsubmit="return revisar()">
  <table cellpadding="7" border="0" height="1">
  <tr>
  <td colspan="3">
  <? 
if($_POST[enviar]) { 
require 
'config.php' 
function 
quitar($texto) { 
$texto trim($texto) ; 
$texto htmlspecialchars($texto) ; 
$texto str_replace(chr(160),'',$texto) ; # Elimina espacios que no pueden ser borrados por trim() 
return $texto 

$nick quitar($_POST[nick]) ; 
$email quitar($_POST[email]) ; 
$con mysql_query("select count(id) from usuarios where nick='$nick' or email='$email'") ; 
if(
mysql_result($con,0,0)) { 
echo 
'<br><div align="center"><font size="2" color="#ffffff"><b>Al parecer el nick o email que elegiste ya estan siendo usados.</b></font></div><br><div align="center"><font size="1" color="#a0a0a0">Haz click <a class="logo" href="javascript:history.back(-1)">aquí</a> para regresar.</font></div><br>' 

else { 
$fecha time() ; 
$contrasena md5(md5(quitar($_POST[contrasena]))) ;
$nombre quitar($_POST[nombre]);
$n_dia quitar($_POST[n_dia]);
$n_mes quitar($_POST[n_mes]);
$n_ano quitar($_POST[n_ano]);
mysql_query("insert into usuarios (fecha,nick,contrasena,email,ip,n_dia,n_mes,n_ano,nombre) values ('$fecha','$nick','$contrasena','$email','$_SERVER[REMOTE_ADDR]','$n_dia','$n_mes','$n_ano','$nombre')") ; 
echo 
'<br><div align="center"><font size="2" color="#ffffff"><b>Has sido registrado/a satisfactoriamente!</b></font></div><br><div align="center"><font size="1" color="#a0a0a0">Haz click <a href="index.php" class="logo">aquí</a> para regresar a la página principal e iniciar sesión</font></div><br>' 


else { 
?>
  <font color="#a0a0a0" size="1">Al registrarte en PortalTS, tendrás acceso a nuestro contenido en su totalidad, tendrás una sección exclusiva para nuestros miembros, foro, entre otros beneficios.</font></td></tr>
    <tr>
<td>
<div align="center"><table cellpadding="9">
<tr><td colspan="3"><font color="white" size="2"><b>Datos de la Cuenta</b></font></td></tr>
<tr>
      <td width="210" height="1"><font color="white" size="2">&nbsp;&nbsp;Usuario:</font></td>
      <td width="210" height="1"><div class="input_c"><input type="text" name="nick" maxlength="20"></div></td><td><div align="left"><font color="#a0a0a0" size="1">*Campo obligatorio</font></div></td>
    </tr>
    <tr>
      <td width="210" height="1"><font color="white" size="2">&nbsp;&nbsp;Password:</font></td>
      <td width="210" height="1"><div class="input_c"><input type="password" name="contrasena" maxlength="10"></div></td><td><div align="left"><font color="#a0a0a0" size="1">*Campo obligatorio</font></div></td>
    </tr>
    <tr>
      <td width="210" height="1"><font color="white" size="2">&nbsp;&nbsp;Confirmar Password:</font></td>
      <td width="210" height="1"><div class="input_c"><input type="password" name="c_contrasena" maxlength="10"></div></td><td><div align="left"><font color="#a0a0a0" size="1">*Campo obligatorio</font></div></td>
    </tr>
        <tr><td colspan="3"><div style="padding-top:10px;"><font color="white" size="2"><b>Datos Personales</b></font></div></td></tr>
    <tr>
      <td width="210" height="1"><font color="white" size="2">&nbsp;&nbsp;Nombres y Apellidos:</font></td>
      <td width="210" height="1"><div class="input_c"><input type="text" name="nombre" maxlength="50"></div></td><td><div align="left"><font color="#a0a0a0" size="1">*Campo obligatorio</font></div></td>
    </tr>
    <tr>
        <td><font color="white" size="2">&nbsp;&nbsp;Fecha de Nacimiento:</font></td>
    <td>
        QUITE ESTO POR ESPACIO
</td>
      </tr>
    <tr>
      <td width="210" height="1"><font color="white" size="2">&nbsp;&nbsp;Email:</font></td>
      <td width="210" height="1"><div class="input_c"><input type="text" name="email" maxlength="40"></div></td><td><div align="left"><font color="#a0a0a0" size="1">*Campo obligatorio</font></div></td>
    </tr>
    <tr>
      <td height="1" colspan="3">
      <div align="center" style="padding-top:10px;"><input type="submit" name="enviar" value="Registrar"> <input type="reset" value="Restablecer"></div></td>
    </tr>
    </table></div>
</td>
    </tr>
  </table>
 </form>
<!-- fin registrar --></div>
<? 

else { 
?><td align="center"><font size="1">Ya estas regitrado</td>
<? 

?>
</td></tr></table>
</div>
</td></tr>
</table>
</td>
</tr>
</table>
</div> 
<? 

?>
como ven el codigo que menciono se esta usando dos veces en el mismo archivo (pienso que es por eso que no funciona).

Espero que me puedan ayudar
  #2 (permalink)  
Antiguo 26/04/2010, 13:58
 
Fecha de Ingreso: diciembre-2009
Mensajes: 612
Antigüedad: 14 años, 4 meses
Puntos: 16
Respuesta: Ocultar registro para registrados

puedes decirme cual es la linea 204?
  #3 (permalink)  
Antiguo 26/04/2010, 14:02
 
Fecha de Ingreso: agosto-2009
Mensajes: 349
Antigüedad: 14 años, 8 meses
Puntos: 8
Respuesta: Ocultar registro para registrados

si aqui la tienes, no la agrege en el primer post xq no me dejaba escribir más

Código PHP:
else {  
?><td align="center"><font size="1">Ya estas regitrado</td> 
<?  
}  
?>
  #4 (permalink)  
Antiguo 26/04/2010, 14:12
 
Fecha de Ingreso: diciembre-2009
Mensajes: 612
Antigüedad: 14 años, 4 meses
Puntos: 16
Respuesta: Ocultar registro para registrados

pegame la linea anterior :S

Puede ser que te hayas olvidado un ";"?
  #5 (permalink)  
Antiguo 26/04/2010, 15:40
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: Ocultar registro para registrados

Si tratas de ejecutar este código :

Código PHP:
Ver original
  1. if(1==1) {
  2.  
  3. } else {
  4.  
  5. } else {
  6.    
  7. }

Te lanzará el mismo error, y es porque un else no puede ser precedido por otr else.

Tu código tiene aquel error... en la línea del "ya estás registrado", la línea PHP que antecede a ese else, es otro else, por eso te lanza el error.
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #6 (permalink)  
Antiguo 26/04/2010, 15:43
 
Fecha de Ingreso: agosto-2009
Mensajes: 349
Antigüedad: 14 años, 8 meses
Puntos: 8
Respuesta: Ocultar registro para registrados

y no hay otra forma de hacer que este formulario no se muestre para los usuarios ya logeados? :S

Gracias por sus respuestas
  #7 (permalink)  
Antiguo 26/04/2010, 15:48
 
Fecha de Ingreso: diciembre-2009
Mensajes: 612
Antigüedad: 14 años, 4 meses
Puntos: 16
Respuesta: Ocultar registro para registrados

si eso hazlo en dos archivos, y haces includes :S
  #8 (permalink)  
Antiguo 26/04/2010, 20:11
 
Fecha de Ingreso: agosto-2009
Mensajes: 349
Antigüedad: 14 años, 8 meses
Puntos: 8
Respuesta: Ocultar registro para registrados

corte esta parte:

Código PHP:
<tr><td class="tdcontenido"> 
<?  
if(!$_COOKIE[uid]) {  
?> 

......


<?  
}  
else {  
?><td align="center"><font size="1">Ya estas regitrado</td> 
<?  
}  
?>
y la puse en un nuevo archivo (formularioreg.php)

y luego en el registrarse1.php le agrege esta linea:

Código PHP:
<?php include("formularioreg.php"); ?>
y me sige saliendo lo mismo T__T que estoy haciendo mal?
  #9 (permalink)  
Antiguo 27/04/2010, 13:58
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: Ocultar registro para registrados

Es porque pegaste el mismo código. Ese código podrías pegarlo en un millón de archivos y siempre te lanzará el mismo error.

No puedes tener un else, luego de otro else. Para eso debes usar else if...

http://www.w3schools.com/php/php_if_else.asp
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #10 (permalink)  
Antiguo 27/04/2010, 20:28
 
Fecha de Ingreso: agosto-2009
Mensajes: 349
Antigüedad: 14 años, 8 meses
Puntos: 8
Respuesta: Ocultar registro para registrados

pero segun entiendo en el link que me proporcionaste, el elseif se usa para hacer mas de una condición, en mi caso la unica condicion es que si esta logeado (if(!$_COOKIE[uid]) ) no muestre el formulario.

disculpa por preguntar tanto pero recien empiezo en esto y me cuesta entenderlo muchas gracias
  #11 (permalink)  
Antiguo 28/04/2010, 13:53
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: Ocultar registro para registrados

Ok, mira, esto tienes en tu código :

Comienzas con el if

Código PHP:
Ver original
  1. <!-- login -->
  2. <?
  3. if(!$_COOKIE[uid]) {
  4. ?>

Luego sigues con el primer else :

Código PHP:
Ver original
  1. }
  2. }
  3. else {
  4. ?>
  5.   <font color="#a0a0a0" size="1">Al registrarte en PortalTS, tendrás acceso a nuestro contenido en su totalidad, tendrás una sección exclusiva para nuestros miembros, foro, entre otros beneficios.</font></td></tr>
  6.     <tr>


Luego, tu segundo else :

Código PHP:
Ver original
  1. <!-- fin registrar --></div>
  2. <?
  3. }
  4. else {
  5. ?><td align="center"><font size="1">Ya estas regitrado</td>
  6. <?
  7. }
  8. ?>

Tu primer else, debería contener alguna condición, para que el código esté bien...

Podría ser algo como :

Código PHP:
Ver original
  1. else if($esta_registrado == false) {
  2.    // ...
  3. }
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #12 (permalink)  
Antiguo 28/04/2010, 14:47
 
Fecha de Ingreso: agosto-2009
Mensajes: 349
Antigüedad: 14 años, 8 meses
Puntos: 8
Respuesta: Ocultar registro para registrados

disculpa xD parece q el codigo esta medio confuso.. te explico como lo arme :

primero esta esto:

Código PHP:
<!-- login --> 
<?  
if(!$_COOKIE[uid]) {  
?>
CODIGOS DEL LOGEO DE USUARIO
luego viene este else:

Código PHP:
<?  
}  
else {  
?> 
BIENVENIDA AL USUARIO SI ESTA LOGEADO
<?  
}  
?>
<!-- fin login --></td>
luego vuelvo a repetir el primer if:

Código PHP:
<?  
if(!$_COOKIE[uid]) {  
?> 
CODIGOS DEL FORMULARIO DE REGISTRO
y finalmente viene el else:

Código PHP:
<!-- fin registrar --></div> 
<?  
}  
else {  
?><td align="center"><font size="1">Ya estas regitrado</td> 
<?  
}  
?>
se que el problema esta en que llamo dos veces al mismo if, pero no se de que otra manera acomodarlo para conseguir lo que necesito, que es ocultar el formulario para los logeados.

muchas gracias por tu paciencia ^^
  #13 (permalink)  
Antiguo 29/04/2010, 16:44
 
Fecha de Ingreso: agosto-2009
Mensajes: 349
Antigüedad: 14 años, 8 meses
Puntos: 8
Respuesta: Ocultar registro para registrados

disculpen que haga doble post, pero encontre informacion extra, que tal vez podria servir.

En el tutorial en el que me base para hacer este sistema daban este codigo, el cual se agregaba en el tope de las paginas que queria ocultar para los usuarios NO registrados:

Código PHP:
<? require 'logeando.php' ?>

logeando.php:

Código PHP:
<?
require 'config.php' ;
$con mysql_query("select count(id) from usuarios where id='$_COOKIE[uid]' and nick='$_COOKIE[unick]' and contrasena='$_COOKIE[ucontrasena]'") ;
if(!
mysql_result($con,0,0)) {
exit(
'<p><b>Esta sección es sólo para usuari@s registrad@s.</b><p><a href="javascript:history.back(-1)">» Regresar</a>') ;
}
?>
pues la verdad entiendo el contenido de logeando.php, pero no tengo ni la mas minima idea de como usarlo para lo que necesito.

espero su ayuda. Gracias

Etiquetas: registrados, registro
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 07:10.