Autor
|
Tema: Duda sobre reconocimiento de URL de un usuario en concreto! (Leído 3,532 veces)
|
jen_
Desconectado
Mensajes: 6
Programador web.
|
Hola a todos, mirad, si os soy sincero estoy algo desesperado ya que llevo como 3 horas intentando averiguar cómo hacerlo pero ni a patadas consigo, veréis, hace una temporada que empecé con PHP y estoy en el desarrollo de una web dinámica y mi intención es un proyecto de instituto que es basado en un login, registro, mensajes privados y todo ese rollo, (esa parte ya la tengo hecha) pero al tema que os traigo es que, aún no me entra en la cabeza de qué forma puedo hacer para que cuando un usuario se registre le aparezca tipo /user?id=2938 y luego pueda personalizarlo a un simple /nombredeusuario, no sé si me entendéis, he probado muchas cosas pero no puedo, habréis notado que el usuario es nuevo, me acabo de registrar, no sabía a quién acudir, os dejo parte de mi código del login y del registro a ver qué se os ocurre, un saludo y gracias. r.php<?php # configuración principal de registro include_once ('config/connection_hex.php'); function check__mail ($user__check_val__) { if (!ereg('^([a-zA-Z0-9._]+)@([a-zA-Z0-9.-]+).([a-zA-Z]{2,4})$', $user__check_val__)) { return FALSE; } else { return TRUE; } } # configuración primaria # recolocación de valores en variables $name = $_POST['firstname']; $emai = $_POST['reg_email__']; $token = $_POST['reg_token__']; $reg_date__ = date('Y-m-d'); # comprobación de si el usuario existe $nw__usr = mysql_query ("SELECT reg_email__ from usuarios WHERE reg_email__ = '$emai'"); echo 'El email ya está en uso.'; } else { $nw__tok = mysql_query ("SELECT reg_token__ from usuarios WHERE reg_token__ = '$token'"); echo 'El token ya está asignado.'; } else { if(isset($_POST['register'])) # al pulsar el valor del 'submit' declarado como 'register' que haga: { if($_POST['wp_stamp__'] == '2'){ echo 'No puedes hacer esto.'; } else { if($_POST['firstname'] == '') { echo 'Nombre?'; } else { if($_POST['lastname'] == '') { echo 'Apellidos?'; } else { # si los campos siguientes están vacíos mandar 'echo' if($_POST['reg_email__'] == '' or $_POST['reg_email_confirmation__'] == '' or $_POST['reg_passwd__'] == '') { echo 'Email, repite email y contraseña'; } else { if($_POST['sex'] == '0'){ echo 'Debes definir un sexo.'; } else { $sql_selector__ = 'SELECT * FROM usuarios'; $check__user___ = 0 if ($result ->usuario == $_POST['reg_email__']) { $check__user___ = 1; } } if ($check__user___ == 0) { if ($_POST['reg_email__'] == $_POST['reg_email_confirmation__']) { $reg_passwd__ = d5 (sha1($_POST['reg_passwd__'])); $birthday_day = $_POST['birthday_day']; $birthday_month = utf8_decode($_POST['birthday_month']); $birthday_year = $_POST['birthday_year']; $term = $_POST['terms']; $reg_token__ = $_POST['reg_token__']; $locale = $_POST['locale']; $wp_stamp__ = $_POST['wp_stamp__']; $timezone = $_POST['timezone']; $sql_selector__ = "INSERT INTO usuarios (firstname, lastname, reg_email__, reg_passwd__, reg_date__, birthday_day, birthday_month, birthday_year, sex, reg_token__, locale, terms, wp_stamp__, timezone) VALUES ('$firstne', '$lastname', '$usuario', '$reg_passwd__', '$reg_date__', '$birthday_day', '$birthday_month', '$birthday_year', '$sex', '$reg_token__', '$locale', '$terms', '$wp_stamp__', '$timezone')"; echo 'Te has registrado correctamente.'; } else { echo 'Las contraseñas no coinciden.'; } } else { echo 'Este usuario no está disponible.'; } } } }}}}}}
Login.php<?php require_one('connection.php'); class rester { public function index() # esta función se encarga de comprobar si existe el usuario en la base de datos { # recoger las variables POST del formulario # realización de la consulta SQL # colocación de mysql_real_scapestring para evitar inyecciones $query = "SELECT * FROM usuarios WHERE reg_email__='".$email."' AND reg_passwd__='".$passwd."';"; # ejecutar la consulta y guardar el resultado en la variable $result_cons { $_SESSION['firstnam'] = $reg['firstname']; }else{ header("Location:index.php?login_attempt=1); ?>
[/
|
|
« Última modificación: 3 Abril 2015, 19:50 pm por marcopolo129 »
|
En línea
|
|
|
|
|
jen_
Desconectado
Mensajes: 6
Programador web.
|
No me ayuda teo, ya me informé sobre eso pero no me ayuda, no estoy pidiendo que me den el código ya hecho, sólo un por donde puedo empezar, y darme algunas ideas de la estructuración en la que me puedo basar para hacerlo.
|
|
|
En línea
|
|
|
|
Alex_bro
Desconectado
Mensajes: 1.246
|
Amigo la solución que te dieron es la correcta, eso se hace con mod_rewrite en el archivo .htaccess Ejemplo: RewriteRule ^user/([a-zA-Z0-9]+)/$ user.php?id=$1 [L,NC]
Así, conviertes las direcciones como user/3/ en user.php?id=3 Espero que te ayude. Saludos! Edito:Se me olvidó comentarte que significa lo de [L,NC]. Se les denominan Flags (por si quieres buscar más sobre el tema). L (Last Rule) deja de leer las demás reglas al cumplirse esta. NC es para que le de igual si son mayúsculas o minúsculas.
|
|
« Última modificación: 3 Abril 2015, 21:41 pm por Alex_bro »
|
En línea
|
|
|
|
jen_
Desconectado
Mensajes: 6
Programador web.
|
Gracias por intentar echarme una mano, pero me gustaría saber cómo hago para que se cree ese id?=numerodeusuario, y separar un perfil de otro, lo he intentado de una forma, pero al guardar los cambios de algún usuario, por ejemplo, de la localización o los apellidos, todos los tblApellidos se cambiaban, todos los de la tabla 'usuarios'...
|
|
|
En línea
|
|
|
|
Alex_bro
Desconectado
Mensajes: 1.246
|
Crea en la base de datos una columna en la tabla de los usuarios que se llame "id" y marca auto_increment, de esa forma, cada vez que hagas un INSERT... se creará ese id incrementando en uno cada vez. Al usar UPDATE tienes que especificar ese id en el WHERE para que no se modifiquen todos los registros de la tabla como comentas. Ejemplo: UPDATE usuarios SET name = 'Pepe' WHERE id = '3'
Saludos.
|
|
« Última modificación: 3 Abril 2015, 21:41 pm por Alex_bro »
|
En línea
|
|
|
|
jen_
Desconectado
Mensajes: 6
Programador web.
|
Sí, ya tenía creada la columna 'id', pero mi pregunta sería: ¿cómo hago para que al poner por ejemplo user.php?id=xx salga el número del usuario y me aparezcan sus datos, añado que los datos los saco con el $_SESSION. Un saludo.
|
|
|
En línea
|
|
|
|
MinusFour
|
Sí, ya tenía creada la columna 'id', pero mi pregunta sería: ¿cómo hago para que al poner por ejemplo user.php?id=xx salga el número del usuario y me aparezcan sus datos, añado que los datos los saco con el $_SESSION. Un saludo.
Si id = numero de usuario puedes sacar la informacion directamente de ahi: $id = (int) $_GET['id']; //Numero de usuario
Para sacar la informacion: $sql = "SELECT * FROM tabladeusuarios WHERE id = $id";
|
|
|
En línea
|
|
|
|
jen_
Desconectado
Mensajes: 6
Programador web.
|
Gracias por la idea, le echaré un vistazo a ver si funciona como quiero, muchas gracias, responderé cuando acabe, saludos!
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
duda sobre mi usuario.
Sugerencias y dudas sobre el Foro
|
newbie Rr
|
4
|
2,686
|
12 Febrero 2005, 06:01 am
por ElficO
|
|
|
Duda reconocimiento de voz c++
Programación C/C++
|
L0R0
|
6
|
9,083
|
29 Julio 2014, 19:08 pm
por Eternal Idol
|
|
|
Duda sobre guardar datos en cada usuario en php
« 1 2 ... 6 7 »
PHP
|
::: Devil :::
|
65
|
20,407
|
16 Julio 2014, 22:05 pm
por ::: Devil :::
|
|
|
Duda bypass firewall(caso concreto)
Hacking
|
edwarrow
|
9
|
5,356
|
18 Mayo 2017, 09:35 am
por edwarrow
|
|
|
Duda sobre las estadísticas de usuario
Sugerencias y dudas sobre el Foro
|
crazykenny
|
2
|
4,779
|
8 Abril 2020, 22:03 pm
por crazykenny
|
|