Comunidad de diseño web y desarrollo en internet online

Hacer desaparecer "regístrate!" cuando el usuario ya se ha r

Citar            
MensajeEscrito el 19 Feb 2014 01:10 pm
Hola, mi problema es el siguiente:

No consigo hacer que desaparezca el texto "¿Eres nuevo usuario?" y a continuación el enlace "Registrate"!, una vez que el usuario se ha registrado. Sólo quiero que aparezca el texto "Te has registrado".

El código del archivo index_pie.php donde está ubicado es el siguiente:

<div id="pie">

<div id="registro_pie">
<?php
if(isset($_SESSION["nohayusuario"])==false)
{
echo '<form action="php/validar_usuario.php" method="post">
<table>
<tr>
<td id="usuario">Usuario <input id="registro_campousuario" class="input_a" type="text" name="usuario" /></td>
</tr>
<tr>
<td id="contra">Contraseña <input id="registro_campocontra" class="input_b" type="password" name="contra" /></td>
</tr>
<tr>
<td><input id="registro_campoenviar" type="submit" value="Iniciar Sesión" /></td>
</tr>
<tr>
<td>¿Eres Nuevo? <a href="php/registro.php" class="enlace">¡Regístrate!</a></td>
</tr>
</table>
</form>';
if(isset($_GET["registrado"])!=false)
{
echo "<p style='font-weight:normal;margin-top:-1px;'>Te has registrado</p>";
}
}else{
echo "¡Usuario o contraseña incorrectos!";

session_unset();
echo '<br /><a href="index.php" class="enlace">Volver a intentarlo.</a>';
}
?>
</div>
</div>

</body>
</html>

Quisiera que alguien me dijera qué código poner, gracias.

Por Andriu82

11 de clabLevel



Genero:Femenino  

chrome
Citar            
MensajeEscrito el 19 Feb 2014 03:32 pm
El array $_GET solo contiene valores de tipo string. Lo estás comparando con un valor booleano, eso siempre resultará en true.

Debes comparar con el valor real en string de $_GET["registrado"]. O convertir ese valor a un resultado boobleano, más o menos así:

Código PHP :

$registrado = (@$_GET['registrado'] == 'SI');
if ($registrado) {
// Lo que tengas que hacer si es verdadero
}


Saludos.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 19 Feb 2014 04:59 pm
Gracias pero el problema persiste, sigue viéndose el texto y el enlace, además no entiendo por qué has puesto un @ delante de $_GET y no sabía que se pudiera poner 'SI' en vez de true
un saludo.

Por Andriu82

11 de clabLevel



Genero:Femenino  

chrome
Citar            
MensajeEscrito el 20 Feb 2014 12:49 pm
Otro que copia y pega código sin mirar?...

El que puse fue un EJEMPLO. Ya tú sabrás cómo adaptarlo a tu caso.
Yo no sé qué valor le has querido poner a $_GET['registrado'], eso lo sabrás tu; lo que sí sé es que sea cual sea ese valor, es un string y no un boolean.

El "@" delante de una variable (en ciertos casos) impide que se cause una excepción si esa variable no está definida.

Lee esto:
http://www.php.net/manual/es/language.operators.errorcontrol.php

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 20 Feb 2014 03:25 pm
fijate.. yo ocupando isset() o el $var = "";


Gracias por la infor DriverOp

Por elporfirio

Claber

652 de clabLevel

1 tutorial

Genero:Masculino  

FullStack Web Developer

firefox
Citar            
MensajeEscrito el 20 Feb 2014 08:32 pm
Cuidado que "@" suprime el error pero no te dice si la variable está definida o no.

La mejor forma de detectar si una variable existe y tiene un valor no nulo o no vacío es:

Código PHP :

if (!empty($variable)) { ...

Por DriverOp

Claber

2510 de clabLevel



 

opera

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.