Ver Mensaje Individual
  #13 (permalink)  
Antiguo 04/01/2010, 16:03
RobinHead
 
Fecha de Ingreso: junio-2009
Mensajes: 9
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: hola que tal a todos haber si me pueden ayudar

A ver me perdí un poco en lo que quieres lograr veamos si algo parecido a esto.

1. Quieres que un usuario se registre con un usuario y contraseña en tu sitio.
2. En alguna parte del html aparezca el un mensaje de bienvenida como "Hola cher1_7 bienvenido" y que el "cher1_7" sea un link para editar la información del perfil del usuario.
3. Rescatar y guardar en una bd los datos del usuario.

Si es así te recomiendo lo siguiente.

1. Seguramente ya tienes tu página de log-in que debería tener mas o menos la siguiente estructura (obviaré header, y body)

log-in.php
Código HTML:
<form id="log-in" action="registrar.php" method="post">
<fieldset >
<legend>Datos:</legend>
Usuario : <input name="usuario" type="text" value="" /><br />
Clave : <input name="clave" type="password" value="" /><br />
<input type="submit" name="ingresar" value="ingresar" /><br />
</fieldset>
</form> 
esta pagian le podemos poner log-in.php y se encarga de ser solicitar los datos al usuario.

Luego al presionar el boton ingresar nos iremos a la página registrar.php pasando por parametro $_POST los valores: usuario, clave e ingresar, este ultimo no lo pescaremos.

luego nuestra página registrar.php se encargará de comprobar si los datos ingresados por el usuario son validos o no, es decir pertenecen a un usuario de la bd.

registrar.php
Código PHP:

session_start
();

//Te recomiendo siempre pasar las variables que vienen de parametros a variables fijas, así las puedes comprobar,escapear, codificar etc. yo siempre verifico que lleguen por lo menos. de la forma.

// $usuario =  (isset($_POST['usuario'])) ? mysql_real_escape_string($_POST['usuario']):die('usuario invalido');
//$usuario = (isset($_POST['clave'])) ? md5($_POST['clave']):die('usuario invalido');

$usuario $_POST['usuario'];
$clave $_POST['clave'];

$link mysql_connect('localhost''-----''-----'); 
if(!
$link) { 
die(
"Error al intentar conectar: ".mysql_error()); 

// selecciono la base de datos 
$db_link mysql_select_db('--------------'$link); 
if(!
$db_link) { 
die(
"Error al intentar seleccionar la base de datos"mysql_error()); 


$error false;

//realizo la consulta para identificar al usuario
$consulta "select id_usuario, nombre_usuario form tabla_usuario where usuario like '$usuario' and clave_usuario like '$clave' ";

//ejecuto la consulta
$resultado mysql_query($consulta,$link);

//verifico si existe el usuario
if($campo mysql_fetch_assoc($resultado)){
//si entra al if es decir que el usuario si existe en la bd, por lo que me dispongo a pasar los datos de la bd a una session

$_SESSION['usuario_id'] = $campo['id_usuario']; // esta variable no servirá para identificar al usuario durante todo el proceso.
$_SESSION['usuario_nombre'] = $campo['nombre_usuario']; // esta session nos servirá para colocar el nombre del usuario donde queramos

} else {
$error true;
}

//acostumbrate a cerrar las conexiones.
mysql_close($link);

//luego si no hubo error, redireccionamos al usuario a su portal de bienvenida.
if(!$error){
header("Location: index.php");
exit();
} else {
die(
'el usuario no existe');

luego como ya tenemos las sessiones registrardas como dijo pateketrueke ya no necistamos variables de paso $_GET.

Nuestro index.php cumplirá dos funciones, saber si el usuario está logeado, si no lo está, iremos a registrarlo, y si lo lo está mostramos su bienvenido.

index.php
Código PHP:
<?php
session_start
():
if(!isset(
$_SESSION['usuario_id'])){
//no existe la session, por lo tanto necesitamos registrar al usuario.
header("Location: log-in.php");
exit();
}else{
//OJO aquí mezclo php con Html
?>
<p> Hola <?php echo $_SESSION['usuario_nombre']; ?> como estas, deseas <a href="editar.php">editar</a> tus datos.</p>
<?php ?>
y ya etamos casí, solo nos falta el archivo editar, que lo usaremos para mostrar y capturar los datos del cristiano.

editar.php

Código PHP:
<?php
session_start
():
//siempre es bueno comprobar en cada parte si el usuario sigue sesionado ya que pudo haber perdido la session, te recomiendo crear una funcionsita y agregarla con un requiere_once.

if(!isset($_SESSION['usuario_id'])){
//no existe la session, por lo tanto necesitamos registrar al usuario.
header("Location: log-in.php");
exit();
}else{
//Aquí capturamos y rescatamos el resto de datos del usuario, asumiré qye la conexion ya esta creada en la variable $link.

$consulta "Select nombre_usuario, telefono_usuario, facebook_usuario from tabla_usuario  where id_usuario='".$_SESSION['usuario_id']."'";

$resultado mysql_query($consulta,$link);

$usuarioBD mysql_fetch_assoc($resultado);

//OJO, vuelvo a mezclar php con html
?>
[HTML]
<form id="formulario-datos" action="edito-datos.php" method="post" >
<fieldset>
<legend>Datos:</legend>
Nombre : <input name="nombre" type="text" value="<?php echo $usuarioBD['nombre_usuario']?>" /><br />
Telefono: <input name="telefono" type="text" value="<?php echo $usuarioBD['telefono_usuario']?>" /><br />
FaceBook: <input name="facebook" type="text" value="<?php echo $usuarioBD['facebook_usuario']?>" /><br />
<input type="submit" name="ingresar" value="guardar" /><br />
</fieldset>
</form>
[/HTML]
<?php ?>
Y con todo esto, creo estarías listo para lograr lo que quieres, espero haya sido eso sino me van a retar por el medio mensaje :S.

Bueno solo faltaría hacer el edito-datos.php que debe recoger los datos nombre, telefono y facebook, pero eso te lo dejo a ti, en todo caso puedes preguntar,pero la idea es que entiendas los procesos así los puedas moldear como quieras.

Que estes bien espero te sirva esto