Foros del Web » Programando para Internet » PHP »

Segunda duda acerca del get

Estas en el tema de Segunda duda acerca del get en el foro de PHP en Foros del Web. Hola, voy a explicar todo lo que creo que tengo que cambiar o agregar para conseguir esto tan deseoso que llevo tiempo esperando...entonces no se ...
  #1 (permalink)  
Antiguo 19/02/2012, 07:30
 
Fecha de Ingreso: diciembre-2011
Mensajes: 414
Antigüedad: 12 años, 11 meses
Puntos: 1
Segunda duda acerca del get

Hola, voy a explicar todo lo que creo que tengo que cambiar o agregar para conseguir esto tan deseoso que llevo tiempo esperando...entonces no se como hacer que aparezca el nombre del usuario y el apellido :( cuando clicas en el perfil, porque cargar carga pero no da resultado de nada :/

El login.php contiene el siguiente codigo

<?php
session_start();

if(isset($_POST['mail']) && isset($_POST['password'])){

$mail = $_POST['mail'];
$password = $_POST['password'];

include 'config.php' ;

$query = mysql_query("SELECT * FROM users WHERE mail='$mail' and password='$password' ") or die (mysql_error());
$numrows = mysql_num_rows($query);

if($numrows == 0){

echo 'el email o la contraseña no existen';

}else{

while ($row = mysql_fetch_assoc($query)){

$dbusername = $row['mail'];
$dbpassword = $row['password'];
$dbalias = $row['alias'];
$dbname = $row['name'];
$dbsurname = $row['surname'];
} //fin de while

if($mail == $dbusername){ // comparamos el email

if($password == $dbpassword){ // comparamos la contraseña

// creamos la session con todos los datos en un array
$_SESSION['user'] = array(
'username' => $dbusername,
'password' => $dbpassword,
'alias' => $dbalias,
'name' => $dbname,
'surname' => $dbsurname);
$_GET['profile'] = array(
'username' => $dbusername,
'password' => $dbpassword,
'alias' => $dbalias,
'name' => $dbname,
'surname' => $dbsurname);
echo "Se ha identificado correctamente $dbusername";



}else{

echo 'El password no coincide';

}}else{ // fin de validacion de contraseña

echo 'el usuario introducido no es correcto';

}}}else{ // fin de validacion mail

echo 'No ha introducido ningun dato';

} // fin de isset


?>

Luego en el perfil de usuario lo tengo asi (un poco desordenado)

<?php
session_start();
$alias = $_GET['alias'];
mysql_query("SELECT * FROM users WHERE alias='$alias'");
include '../config.php' ;
if(isset($_GET['user'])){
if(isset($_SESSION['user'])){
}else{
echo 'No tienes acceso para ver esta pagina<br><br>';
echo '<a href="login.php">iniciar sesion</a>';
}
}else{

if(isset($_SESSION['user'])){
echo 'Estas viendo tu perfil '.$_SESSION['user']['alias'];
echo 'Estas viendo el perfil de '.$_GET['alias'];
}else{
echo 'No tienes acceso para ver esta pagina<br><br>';
echo '<a href="login.php">iniciar sesion</a>';

}}
?>

Última edición por kfh1992; 19/02/2012 a las 09:43
  #2 (permalink)  
Antiguo 19/02/2012, 14:25
Avatar de bocho0610  
Fecha de Ingreso: enero-2010
Ubicación: <? echo "Santiago, Chile"; ?>
Mensajes: 341
Antigüedad: 14 años, 10 meses
Puntos: 26
Respuesta: Segunda duda acerca del get

wow, ni siguiera las gaviotas que veo por la ventana se complican tanto jajaja. Haremos el codigo algo basico, esperando a que lo entiendas, tú le pondras el bla bla.

Loguin.php
Código PHP:
Ver original
  1. <?php
  2.  
  3. include("conexion.php");
  4. $link = Conectarse();
  5.  
  6. $user = $_POST['usuario'];
  7. $pass = $_POST['password'];
  8.  
  9. $sql = mysql_query("SELECT usuario,password FROM usuarios WHERE usuario = ".$user." and password = ".$pass." ",$link);
  10.  
  11. $row = mysql_fetch_assoc($sql);
  12.  
  13. if($row['usuario'] != "Cualquier_nombre" && $row['password'] != "Cualquier_pass"){
  14. echo "El usuario no existe";
  15. }else{
  16. $_SESSION['loguin'] = "OK";
  17. $_SESSION['nombre'] = $row['usuario'];
  18. $_SESSION['password'] = $row['password'];
  19. header("Location: perfil.php");
  20. }
  21. ?>

Perfil.php
Código PHP:
Ver original
  1. <?php
  2.  
  3. if(isset($_SESSION['nombre']) && $_SESSION['loguin'] == "OK"){
  4. echo "No tienes acceso a ver este sitio";
  5. }else{
  6. echo "Hola ".$_SESSION['nombre']." tu contraseña es ".$_SESSION['password'].";
  7. }
  8. ?>
__________________
Sigueme en Twitter!
Septimoarte.cl <-- Un mundo en cine.
  #3 (permalink)  
Antiguo 20/02/2012, 03:37
 
Fecha de Ingreso: diciembre-2011
Mensajes: 414
Antigüedad: 12 años, 11 meses
Puntos: 1
Respuesta: Segunda duda acerca del get

pero acerca de mi duda de obtener los datos de la base de datos a traves de get como seria
  #4 (permalink)  
Antiguo 21/02/2012, 08:34
 
Fecha de Ingreso: diciembre-2011
Mensajes: 414
Antigüedad: 12 años, 11 meses
Puntos: 1
Respuesta: Segunda duda acerca del get

yo lo que quiero saber es lo mio porfavor ayudarme lo necesito para avanzar ya se que el codigo esta mal pero es que soy rookie:/
es k en si tendria k cargar los datos del alias al k accede a traves de la url no?
  #5 (permalink)  
Antiguo 21/02/2012, 08:55
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 14 años, 3 meses
Puntos: 202
Respuesta: Segunda duda acerca del get

¿Lo que quieres es que un usuario registrado pueda ver el perfil de otro?
Se hace un poco tedioso el leer en este foro porque escriben rápido y no se entiende bien.

Algo rapidito sería así:

Código PHP:
<?php
session_start
();

//Comprobaremos si existe el parámetro y a la vez si es un usuario logueado:
if( isset($_GET['alias']) and isset($_SESSION['user']) )
{

$alias $_GET['alias']; //pon seguridad aquí o tu web caéra rápido a inyecciones SQL.

/*En este if deberías poner un or die() para que si se produce un error no vean
 el nombre de tu tabla ni los campos. De nuevo la seguridad.

Como no sé el nombre de tus campos los llamaré nombre ,apellidos y teléfono*/
if ($consulta mysql_query("SELECT nombre,apellidos,telefono FROM users WHERE alias='$alias'") )
{
    echo 
'Estas viendo el perfil de '.$_GET['alias'];

    
//obtenemos un array asociativo con fetch_assoc
    
$consulta mysql_fetch_assoc($consulta);

    
//mostramos los datos del usuario
    
echo 'Nombre: '.$consulta['nombre'].'<br>';
    echo 
'Apellidos: '.$consulta['apellidos'].'<br>';
    echo 
'Nº de teléfono: '.$consulta['telefono'].'<br>';
}
else
{
    echo 
'Este usuario no está en nuestra base de datos';
}

}
//si pone un alias pero no está logueado:
elseif( isset($_GET['alias']) 
{
echo 
'Para ver el perfil de este usuario debe loguearse'
}


?>
__________________
Pensaba que internet era una gran biblioteca de sabiduría, hasta que comprendí que un libro no puede tener mil páginas llenas de faltas de ortografía... :(
  #6 (permalink)  
Antiguo 21/02/2012, 14:41
 
Fecha de Ingreso: diciembre-2011
Mensajes: 414
Antigüedad: 12 años, 11 meses
Puntos: 1
Respuesta: Segunda duda acerca del get

Hola gracias por la respuesta ...he intentado adaptar el codigo al mio y he realizado los siguientes cambios

<?php
session_start('user');
$alias = $_GET['alias'];
mysql_query("SELECT * FROM users WHERE alias='$alias'");
$consulta = mysql_query("SELECT name,surname,mail FROM users WHERE alias='$alias'");
include '../config.php' ;
if(isset($_SESSION['user'])){
if(isset($_SESSION['user'])){
echo 'Estas viendo tu perfil '.$_SESSION['user']['alias'];
////
$consulta = mysql_fetch_assoc($consulta);
//mostramos los datos del usuario
echo 'Nombre: '.$consulta['name'].'<br>';
echo 'Apellidos: '.$consulta['surname'].'<br>';
echo 'Nº de teléfono: '.$consulta['mail'].'<br>';

////
}else{
echo 'No tienes acceso para ver esta pagina<br><br>';
echo '<a href="login.php">iniciar sesion</a>';
}}
?>

( ! ) Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\wamp\www\script\members\profile.php on line 11

( ! ) Notice: Undefined index: alias in C:\wamp\www\script\members\profile.php on line 3

Esto son los errores que me dan :/

Gracias de nuevo :)
  #7 (permalink)  
Antiguo 21/02/2012, 15:30
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 14 años, 3 meses
Puntos: 202
Respuesta: Segunda duda acerca del get

El error que te muestra es por un problema de comillas en la consulta.
Aparte tienes un mysql que no hace nada, un session estar con un parámetro y dos condicionales if idénticos.
Tampoco compruebas que exista el $_GET, y siento ser pesado en esto, pero después volverías a postear preguntando a que se debe el error en tu web.
Te quité el echo en el session bidimensional porque me quedé ¿?.
Comprueba que realmente necesitas un session de dos dimensiones para guardar un alias (Es tú código )

Prueba si así no te da error:
Código PHP:
<?php
session_start
();

include 
'../config.php';

if(isset(
$_SESSION['user']) and isset($_GET['alias']) )
{
    
$alias $_GET['alias'];
    
    if(
$consulta mysql_query("SELECT name,surname,mail FROM users WHERE alias=".$alias))
    {
        
$consulta mysql_fetch_assoc($consulta);
        
//mostramos los datos del usuario
        
echo 'Nombre: '.$consulta['name'].'<br>';
        echo 
'Apellidos: '.$consulta['surname'].'<br>';
        echo 
'Nº de teléfono: '.$consulta['mail'].'<br>';    
        
////
    
}
        
    else{
        echo 
'No tienes acceso para ver esta pagina<br><br>'.
        
'<a href="login.php">iniciar sesion</a>';
    }
}
else
    echo 
'Usuario no encontrado en la BD';
?>
__________________
Pensaba que internet era una gran biblioteca de sabiduría, hasta que comprendí que un libro no puede tener mil páginas llenas de faltas de ortografía... :(
  #8 (permalink)  
Antiguo 22/02/2012, 08:27
 
Fecha de Ingreso: diciembre-2011
Mensajes: 414
Antigüedad: 12 años, 11 meses
Puntos: 1
Respuesta: Segunda duda acerca del get

Si ahora te voy a decir lo mas simple de todo y es que no se porque no me sale nada de los echo

<?php
session_start();
include '../config.php';
if(isset($_SESSION['user']) and isset($_GET['alias']) )
{
$alias = $_GET['alias'];
if($consulta = mysql_query("SELECT name,surname,mail FROM users WHERE alias=".$alias))
{
$consulta = mysql_fetch_assoc($consulta);
//mostramos los datos del usuario
echo 'Apellidos: '.$consulta['surname'].'<br>';
echo 'Nº de teléfono: '.$consulta['mail'].'<br>';
echo 'Nombre:'.$consulta['name'].'<br>';
}
else{
echo 'No tienes acceso para ver esta pagina<br><br>'.
'<a href="login.php">iniciar sesion</a>';
}
}
?>

el login ahora esta de la siguiente manera

<?php
session_start();

if(isset($_POST['mail']) && isset($_POST['password'])){

$mail = $_POST['mail'];
$password = $_POST['password'];

include 'config.php' ;

$query = mysql_query("SELECT * FROM users WHERE mail='$mail' and password='$password' ") or die (mysql_error());
$numrows = mysql_num_rows($query);

if($numrows == 0){

echo 'el email o la contraseña no existen';

}else{

while ($row = mysql_fetch_assoc($query)){

$dbusername = $row['mail'];
$dbpassword = $row['password'];
$dbalias = $row['alias'];
$dbname = $row['name'];
$dbsurname = $row['surname'];
} //fin de while

if($mail == $dbusername){ // comparamos el email

if($password == $dbpassword){ // comparamos la contraseña

// creamos la session con todos los datos en un array
$_SESSION['user'] = array(
'username' => $dbusername,
'password' => $dbpassword,
'alias' => $dbalias,
'name' => $dbname,
'surname' => $dbsurname);
echo "Se ha identificado correctamente $dbusername";
echo "Nombre: $dbname";
echo "Apellidos: $dbsurname";
echo "Alias: $dbalias";
;
}else{

echo 'El password no coincide';

}}else{ // fin de validacion de contraseña

echo 'el usuario introducido no es correcto';

}}}else{ // fin de validacion mail

echo 'No ha introducido ningun dato';

} // fin de isset


?>
  #9 (permalink)  
Antiguo 22/02/2012, 08:34
Avatar de linuxzero  
Fecha de Ingreso: noviembre-2011
Ubicación: Argentina
Mensajes: 778
Antigüedad: 13 años
Puntos: 160
Respuesta: Segunda duda acerca del get

Comprueba si $_SESSION tiene algun valor, porque si no te imprime los echo es porque no te esta entrando a los IFs, tambien comprueba los valores de los primeros isset que haces.
__________________
Si todo fuera tan sencillo como un symfony cc la vida seria más fácil.
http://phpnico.wordpress.com
  #10 (permalink)  
Antiguo 23/02/2012, 08:04
 
Fecha de Ingreso: diciembre-2011
Mensajes: 414
Antigüedad: 12 años, 11 meses
Puntos: 1
Respuesta: Segunda duda acerca del get

Esta es la session que creo en el login

$_SESSION['user'] = array(
'username' => $dbusername,
'password' => $dbpassword,
'alias' => $dbalias,
'name' => $dbname,
'surname' => $dbsurname);
echo "Se ha identificado correctamente $dbusername";
echo "Nombre: $dbname";
echo "Apellidos: $dbsurname";
echo "Alias: $dbalias";
;

y en el perfil está así

<?php
session_start('user');
include '../config.php';
if(isset($_SESSION['user']) and isset($_GET['alias']) )
{
$alias = $_GET['alias'];
if($consulta = mysql_query("SELECT name,surname,mail FROM users WHERE alias=".$alias))
{
$consulta = mysql_fetch_assoc($consulta);
//mostramos los datos del usuario
echo 'Apellidos: '.$consulta['surname'].'<br>';
echo 'Nombre:'.$consulta['name'].'<br>';
}
else{
echo 'No tienes acceso para ver esta pagina<br><br>'.
'<a href="login.php">iniciar sesion</a>';
}
}
?>

Última edición por kfh1992; 23/02/2012 a las 08:17
  #11 (permalink)  
Antiguo 23/02/2012, 10:00
Avatar de linuxzero  
Fecha de Ingreso: noviembre-2011
Ubicación: Argentina
Mensajes: 778
Antigüedad: 13 años
Puntos: 160
Respuesta: Segunda duda acerca del get

Verifica que $_SESSION contiene algo, hace un print_r($_SESSION); luego del include del config a ver si te devuelve algo por pantalla para verificar desde el vamos que tenes todos los datos.
__________________
Si todo fuera tan sencillo como un symfony cc la vida seria más fácil.
http://phpnico.wordpress.com
  #12 (permalink)  
Antiguo 23/02/2012, 13:07
 
Fecha de Ingreso: diciembre-2011
Mensajes: 414
Antigüedad: 12 años, 11 meses
Puntos: 1
Respuesta: Segunda duda acerca del get

Sale lo siguiente (Son datos falsos heee lo digo por si decis algo sobre la seguridad)

Array ( [user] => Array ( [username] => [email protected] [password] => 123456 [alias] => kikofernandez [name] => Kiko [surname] => Fernandez ) )
  #13 (permalink)  
Antiguo 23/02/2012, 14:25
 
Fecha de Ingreso: diciembre-2011
Mensajes: 414
Antigüedad: 12 años, 11 meses
Puntos: 1
Respuesta: Segunda duda acerca del get

y luego que tendria que hacer?
  #14 (permalink)  
Antiguo 24/02/2012, 06:59
 
Fecha de Ingreso: diciembre-2011
Mensajes: 414
Antigüedad: 12 años, 11 meses
Puntos: 1
Respuesta: Segunda duda acerca del get

Estoy reescribiendo el codigo me encuentro en esta situacion que es la misma que la otra vez pero creo que he averiguado el error, me sale que la variable alias no está definida puede ser por eso que no salga nada ?

<?php
session_start('user');
include '../config.php';
if(isset($_SESSION['user']))
{
$alias= $_GET['alias'];
if($consulta = mysql_query("SELECT name FROM users WHERE alias=".$alias))
{
echo 'Hola mundo';
}}
?>

Etiquetas: acerca, mysql, segunda, usuarios
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 13:03.