He conseguido casi todo gracias a las ideas que me habeis dado vosotros.
A ver os explico
Lo e conseguido creando un campo nuevo en la tabla "name" UNIQUE que es igual al username. pero username lo utilizo para iniciar sesion por eso me pasaba todo por el usuario que estaba viendo, era el el username.
$username = $_COOKIE['loggedin']; if (!isset($_COOKIE['loggedin'])) die("Usted no esta identificado, <a href=../identificarse.html>click aqui</a> para identificarse."); echo "Bienvenido $username";
Lo he solucionado asi:
<?php include "../../config.php"; " mysql_connect($server, $db_user, $db_pass) or die (mysql_error()); $result = mysql_db_query($database, "select * from $table WHERE name = 'javier'") or die (mysql_error()); while ($qry = mysql_fetch_array($result)) { echo "$qry"; } ?>
Ahora solo me falta una cosa, y es que en vez de poner el nombre
Primeo te guardas el nombre en 1 variable: $nombre = "lo que quieras"; Despues colocas esto: "select * from $table WHERE name = $nombre" que sustituiria a: "select * from $table WHERE name = 'javier'"
Pues haciendo una busqueda en la BBDD, es que no termino de entender lo que quieres hacer.
Quieres llevar el nombre del usuario en 1 variable, para eso tendras que saber el IdUsuario, o algo para hacer una busqueda a la BBDD y guardarte el nombre en $nombre; y asi despues, poder hacer la setencia que querias: select * from $table WHERE name = $nombre" ....pero ¿Como sabes que usuario es? e ahi la cuestion
Se me esta ocurriendo recoger el nombre en la variable desde la pagina de registro, al registrarse el usuario
El campo name es igual al username, que a su vez es UNIQUE, con lo cual no puede haber dos usuarios con el mismo nombre, el usuario no puede acceder al campo name por que es un campo que no sale en el registro.
Pero tampoco se como
Sname = $_POST['username']
o algo asi,no se como seria.
Tambien tengo una pagina en la que esta el link a la pagina pero el link es asi:
$username = $_COOKIE['loggedin']; mysql_connect($server, $db_user, $db_pass) or die (mysql_error()); $result = mysql_db_query($database, "select * from $table order by id desc") or die (mysql_error()); if (mysql_num_rows($result)) { echo"<p> <a href='perfil.php'>Perfil Usuario</a> | <a href='index.php'>Pagina Usuarios</a> | <a href='desconectarse.php'>Desconectarse</a> </p>"; { echo "<p><b>Lista de Usuarios registrados</b>:</p>"; while ($qry = mysql_fetch_array($result)) { echo "<div class='listContainer'> <b>Nombre:</b> $qry
<b>Pagina de $qry</b> <a href='usuarios/$qry.php' target='_blank'> Privada</a>
Pero de donde la recojo? A ver: La variante de sesion no se como funciona, y me fio de lo que me dices, pero username, por ejemplo soy yo "jose" me identifico y ya puedo accecder, ahi entra la COOKIE que me deja entrar($username = $_COOKIE['loggedin'];), y el username soy yo, el identificado, si quiero visitar la pagina tuya "antonio", al poner username me va a reconocer a mi y va a mostrar mi comentario (username"jose"), no el comoentario tuyo(username "antonio") No se si me e explicado, al final me stalla la cabeza.
Tambien me han dicho que la puedo sacar del link
Pues, al hacer clic para ver la página de otro usuario pásale una variable con Get, el link te quedaría algo así www.tupagina.com/registro/usuarios/?name=name del user que quieras ver en el code lo recoges: $name=$_Get["name"]; y así ya puedes hacer un select para el comentario del user según su ID Where name=$name
lo e intantado pero no me funciona, o no lo he hecho bien
De todas formas muchas gracias, de verdad que con personas asi da gusto.
Si quieres te envio el archivo de registro, por si te sirve a ti de algo
Lo del get tiene la desventaja que cualquiera te podria colocar la URL que quisiera y ya no te cuadraria la SQL.
Con lo que yo te digo de la variable session, funciona de tal forma que yo entro, pero yo entro desde mi PC; tu servidor reconoceria que es una sesion diferente a la de perico, que esta entrando desde francia; por lo que (pruebalo si quieres) cuando le das valor a la $COOKIE, puedes darselo tambien a $SESSION como te he dixo antes y llamarla cuando quieras, que funcionara para cada sesion.
Se que es un poco dificil de entender, o quizas que me no me he explicado bien. Un saludo.
Lo e intentado y no me funciona, supongo que es por que $_SESSION solo vale si el otro usuario esta conectado. pero no lo se
Yo por logica, creo que de donde se puede sacar mejor es de la pagina "lista.php" que sale el listado de todos los usuarios y es donde esta el link a la pagina de cada uno.
Hay si hay echo un "select * from $table order by id desc"
Lo he provado y no me funciona no sale nada en la pagina que lo recoge.
Codigo pagina "lista.php"
<?php $username = $_COOKIE['loggedin']; if (!isset($_COOKIE['loggedin'])) die("Usted no esta identificado, <a href=identificarse.html>click aqui</a> para identificarse."); ?> <?php include "configuracion.php"; $username = $_COOKIE['loggedin']; mysql_connect($server, $db_user, $db_pass) or die (mysql_error()); $result = mysql_db_query($database, "select * from $table order by id desc") or die (mysql_error()); $_SESSION['name'] = "$qry"; if (mysql_num_rows($result)) { echo"<p> <a href='perfil.php'>Perfil Usuario</a> | <a href='index.php'>Pagina Usuarios</a> | <a href='desconectarse.php'>Desconectarse</a> </p>"; { echo "<p><b>Lista de Usuarios registrados</b>:</p>"; while ($qry = mysql_fetch_array($result)) { echo "<div class='listContainer'><b>Nombre:</b> $qry <b>Pagina de $qry</b> <a href='usuarios/$qry/index.php' target='_blank'> Privada </a> <b>Email</b> <a href=mailto:'$qry[correo eliminado]' target='_blank'>$qry[correo eliminado]</a><br> <b>Descripcion:</b> $qry<br> <b>Comentario:</b> $qry[comentario1]<br> <b>URL:</b> <a href=http://'$qry' target='_blank'>$qry</a><br>
</div>"; } } } ?>
Codigo pagina que lo recoge "index,php"
<?php $name = $_SESSION['name']; include "../../configuracion.php"; mysql_connect($server, $db_user, $db_pass) or die (mysql_error()); $result = mysql_db_query($database, "select * from $table WHERE name = '$name'") or die (mysql_error()); while ($qry = mysql_fetch_array($result)) { echo "$qry"; } ?>
Algunos fallos que veo es que $_SESSION['name'] = "$qry"; eso no debe de ir entre comillas, debe ir asi: $_SESSION['name'] = $qry;
Como te digo es muy raro que no funcione; x eso te animo, a probar los ejemplos muy simples de esta pagina, e ir añadiendo trozos de tu codigo para ver donde se pierde el valor; si quieres, antes de usar los ejemplos, puedes copiar este codigo al principio del index.php quedando asi:
<?php var_dump($_SESSION); el resto del codigo
y cuando compruebes si funciona o no coloca esa linea como comentario, poniendo delate suto //
Bueno vamos a ver no es que no salga nada, es que no sale el comentario.
El resto de la pagina si y el comentario1 que lo tengo en el select con WERE name = 'javier' ese si sale
y hoy no se por que pero el servidor me sta fallando, hay muchos momentos que no puedo visualizar nada no conecta, y yo sin enbargo si puedo acceder al servidor y a la Db,
Pues quiza como dices sea algo del servidor que te esta dando problemas; como te he comentado, como no funciona, prueba con el ejemplo que te he puesto (que veras que funciona) y despues ves añadiendo el resto de cosas hasta lograr lo que pretendes.
Imagino que puede ser por la sesion, al no estar identificado el otro usuario, o por uqe al intentar sacar el nombre de la lista, como es un listcontainer, salen todos los nombres de todos los usuarios en ese link.
Asi que con GET creo que me es mas sencillo, y los usuarios no pueden acceder a esas paginas, creo. La unica menera que se me ocurre seria poner una URL en el "username". Pero vamos tambien se poco de seguridad, aqui se aprendera como en todos los sitios, ha base de palos.
Pero creo que he conseguido algo, ya e podido sacar la variable, y es que la logica no suele fallar, el sitio mas eficaz y logico es en la pagina del registro a la vez que se registra el usuario se extrae el nomre y eso si me funciona, ahora el problema es como mando es variable a la pagina procesar_pagina.php que es la que me crea los archivos de cada usuario.
Mira en el registro .php lo he recogido y lo evio a la pagina procesar_pagina.php de esta manera:
$insert = mysql_query("insert into $table values ('NULL', '".$_POST['username']."', '".$_POST['password']."', '$name', '".$_POST['nombre']."', '".$_POST['apellidos']."', '".$_POST['email']."', '".$_POST['edad']."', '".$_POST['provincia']."', '".$_POST['comentario']."','', '".$_POST['website']."', '$ip')") or die("No se pudieron insertar los datos porque ".mysql_error()); if ($user = $name){
} else { echo "$user"; } //aqui lo recojo
// imprimir mensage de exito echo"<p><img src='objetos/logotipo2.jpg' width='330' height='100' /><img src='objetos/titulo2.jpg' width='433' height='79' /></p>"; echo "¡Su cuenta del usuario se ha creado satisfactoriamente!<br>"; echo "Para continuar con la configuracion <a href=procesar_pagina.php?user=user> Pulse aqui </a><br>"; //aqui lo envio.
Si esta recogido el nombre en la variante, lo he comprobado poniendo con un echo "$user"; y sale bien.
y en la pagina procesar_pagina.php lo recojo asi:
<?php
echo "Variable $user: $_GET['user'] <br>n";//aqui se deberia de recoger la variable
//copiar archivos if (copy('usuarios/plantilla/upload.php','usuarios/$user/upload.php'))
if (copy('usuarios/plantilla/index.php','usuarios/$user/index.php')) {
echo"<p><img src='objetos/logotipo2.jpg' width='330' height='100' /><img src='objetos/titulo2.jpg' width='433' height='79' /></p>"; echo "¡Su cuenta del usuario se ha creado satisfactoriamente!<br>"; echo "Su pagina privada se ha creado con exito<br>"; echo "Ya puede<a href=identificarse.html> conectarse</a><br>"; echo "Vuelva a la <a href=../principal.html>Pagina Principal</a>"; } else { echo "No ha sido posible crear su pagina, pongase en contacto pulsando <a href='../contacta.html'>aqui</a>"; } ?>
Pero no me funciona me da un error inesperado, esperando variable o algo asi. Por que el ingles no es mi fuerte
Si no colocas nombre pues nada, si colocas un nombre se guarda la variables de sesion, pasas de pagina y se mantiene la variable de sesion, no tiene mucho misterio. Como supongo que eso es lo que quieres, puedes hacerlo (te paso el codigo si quieres).
En cuanto al error que te da, estaria bien que lo pusieras; no obstante el codigo de procesar_pagina estaba mal al principio, tenia que ser asi:
$variable = $_GET['user']; echo "Variable $user: $variable <br>"; //aqui se deberia de recoger la variable
error de sintaxis, T_ENCAPSED_AND_WHITESPACE inesperada, esperando T_STRING o T_VARIABLE o T_NUM_STRING en /
puede ser que no lo haya entendio o que no me sepa explicar bien.
En la lista.php te decia eu era una licontainer, recogida de un select ORDER BY, ahi no esta el nombre escrito en ningun momento, entonces por eso te comentaba que no creia que se pudiese coger.
El nombre solo esta en la pagina de registro a la hora de registrarse el usuario, y en la base de datos, de donde no puedo identificarlo, por una razon:
Como te comentaba al principio es un registro de usuarios. Pero cada usuario, si esta logueado puede visitar la pagina de los demas usuarios aunque no esten los demas logueados, entonces la variable $_SESSION que yo entiendo que tu me comentas, es si el usuario se loguea, si que la recoge, pues ya esta poniendo el nombre, pero si no esta logueado ningun usuario, solamente uno, no podria ver las sesiones, pues no hay ninguna sesion mas abierta qeu la suya. Asi es como lo e interpretado yo, mas o menos. No se si me e explicado bien.
De todas formas te agradezco mucho tu ayuda, que gracias a eso estoy entendiendo cosas que no tenia ni idea.
Aun cambiando las lineas que te ha pasado te da error? A mi con el programilla que tengo para PHP no me pilla que hay ningun error, no obstante dime exactamente donde esta el error (archivo) y pon el contenido en codigo para decirte el error.
Si es un sistema de registro, lo que puedes hacer es por un lado la pagina de registro (introducir datos, etc), ahi le creas a ese usuario la variable sesion que funciona (como ves en el ejemplo) entre paginas, y por lo tanto ya estaria identificado y SOLO el podria acceder.
Si alguien se quiere identificar, pues lo mismo, si introduce la contraseña y usuario correctos le creas la sesion y a funcionar; y cuando quieran salir la destruyes.
Puesto que creo que el error es alguna coma o tonteria asi, pegalo y te digo lo que falla; pero ten claro lo de arriba para tener el funcionamiento de un sistema de registro - usuarios correcto.
Un saludo y no te preocupes que estamos para ayudar.
con las dos filas que me ass puesto ya no me da error, pero no me sale bien.
En procesar_archivo.php lo recojo como me has puesto y el resultado es que me crea el directorio con el nomnre de user en vez de con el nombre que recoge la variable en la pagina registro.php.
Te explico:
Un usuario se registra con el nombre de Carlos, en la pagina registro.php la variaable $user si tiene el valor de Carlos, pero luego al crear el directorio, lo crea con el nombre de user, cuando deberia crearlo con el nombre de Carlos.
//copiar archivos if (copy("usuarios/plantilla/upload.php","usuarios/$user/upload.php"))
if (copy("usuarios/plantilla/index.php","usuarios/$user/index.php")) {
echo"<p><img src='objetos/logotipo2.jpg' width='330' height='100' /><img src='objetos/titulo2.jpg' width='433' height='79' /></p>"; echo "¡Su cuenta del usuario se ha creado satisfactoriamente!<br>"; echo "¡Su pagina <b>privada</b> se ha creado con exito!<br>"; echo "Ya puede<a href=identificarse.html> conectarse</a><br>"; echo "Vuelva a la <a href=../principal.html>Pagina Principal</a>"; } else { echo "No ha sido posible crear su pagina, pongase en contacto pulsando <a href='../contacta.html'>aqui</a>"; }
?>
Si en el codigo cambio $user por $varaible me pasa lo mismo, si me crea el directorio y no da error, pero con el nombre de user. Entonces la variable coge el valor de user, en vez de el de $user.
Con referencia al sistema de registro de usuarios; es un sistema de registro de usuarios y cada usuario tiene su propia pagina, como ves cada usuario se le crea su directorio, pero no quita para que el usuario "pepe" pueda ver las paginas de los demas usuarios, imagenes y comentarios, por eso el usuario que se loguea si tiene acceso a su pagina toalmente, pero no puede ver los comentarios de los otros usuarios. Las imagenes si, porque van en el directorio $user/files. y es lo que quiero conseguir, que "pepe" pueda acceder tambien a os comentarios de los demas.
Claro si los demas no quieren que les vean sus comentarios, que no los escriban, no son campos obligatorios.
De todas formas tambien se que soy un poco torpe y me cuesta mucho entender las cosas.
Si no te importa mañana le echo 1 vistazo, pero lo puedes dar x solucionado, xk si solo es ese error, sera alguna tonteria!! Un saludo y es buena idea el sistema!!
//crear carpetas mkdir("usuarios/$variable", 0777); //esta es la linea 15 mkdir("usuarios/$variable/files", 0777);
//copiar archivos if (copy("usuarios/plantilla/upload.php","usuarios/$variable/upload.php"))
if (copy("usuarios/plantilla/index.php","usuarios/$variable/index.php")) {
echo"<p><img src='objetos/logotipo2.jpg' width='330' height='100' /><img src='objetos/titulo2.jpg' width='433' height='79' /></p>"; echo "¡Su pagina <b>privada</b> se ha creado con exito!<br>"; echo "Ya puede<a href=identificarse.html> conectarse</a><br>"; echo "Vuelva a la <a href=../principal.html>Pagina Principal</a>"; } else { echo "No ha sido posible crear su pagina, pongase en contacto pulsando <a href='../contacta.html'>aqui</a>"; }
?>
De todas formas en la pagina registro.php en el else que recojo la variable esta bien, pero en la cabezera no tengo puesto lo de:
Ahi te explico un poco lo de los errores, aunque me a salido otro que no se por uqe es y es cuando te registras que no crea los archivos y te pone que si.
Y en la subida de archivos: He intentado subir un archivo jpg eso si grande de dimensiones 1024 x 768 y con un tamaño de 858 kb y el error que me da el navegador es que no puede mostrar la pagina
Cookies
Usamos cookies necesarias y, si lo autorizas, Google Analytics. Puedes cambiar tu elección cuando quieras.