Foros del Web » Programando para Internet » PHP »

insertar url en campo de db al iniciar sesion los usuarios

Estas en el tema de insertar url en campo de db al iniciar sesion los usuarios en el foro de PHP en Foros del Web. Si ya lo supuse con la contestación de kip13. Creo que le puse la i sin darme cuenta cuando cambie mysql por mysqli. Ya se ...

  #61 (permalink)  
Antiguo 02/05/2016, 23:23
Avatar de jearj  
Fecha de Ingreso: julio-2008
Mensajes: 72
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: insertar url en campo de db al iniciar sesion los usuarios

Si ya lo supuse con la contestación de kip13.
Creo que le puse la i sin darme cuenta cuando cambie mysql por mysqli.

Ya se abre la pag aunque salen errores por todas partes.
Ahora toca ir a por ellos.

Muchas Gracias a los dos
  #62 (permalink)  
Antiguo 03/05/2016, 13:45
Avatar de jearj  
Fecha de Ingreso: julio-2008
Mensajes: 72
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: insertar url en campo de db al iniciar sesion los usuarios

he resuelto todos los errores que me han ido saliendo al cambiar todas la paginas de mysql a mysqli, pero al intentar abrir el perfil, los errores se mantienen, aunque ya he resuelto varios, han salido algunos errores, que no consigo solucionar, porque es simplemente los parámetros de conexión a db y no le veo nada extraño.

Estos son los errores:
Warning: mysqli_select_db() expects parameter 1 to be mysqli, null given in /homepages/------------/perfil/acceso_db.php on line 14

Warning: mysqli_select_db() expects exactly 2 parameters, 1 given in /homepages/----------/perfil/acceso_db.php on line 29
Ha sido imposible conectarse a la Base de Datos que proporcionaste, favor verifica si existe o si es correcta la que escribiste


Archivo acceso_db.php
<?php
session_start();

$host_db = "";
$usuario_db = "";
$clave_db = "";
$nombre_db = "";
$error = '<a href="javascript: window.history.back()"><< Regresar a solucionar el problema</a>';
$rango = $_SESSION["tipo"];

mysqli_connect($host_db, $usuario_db, $clave_db);
mysqli_select_db($nombre_db); <--- Linea 14



$hostname = '';
$user = '';
$pass = '';
$dbnombre = '';
$error = '<a href="javascript: window.history.back()"><< Regresar a solucionar el problema</a>';
$rango = $_SESSION["tipo"];

$conexion = mysqli_connect($hostname, $user, $pass);
if(!$conexion) {
echo 'Ha sido imposible conectarse con el servidor, por favor llena los datos de <b>acceso_db.php</b> e int&eacute;ntalo de nuevo';
exit;
}
$db = mysqli_select_db($dbnombre); <--- Linea 29
if(!$db) {
echo 'Ha sido imposible conectarse a la Base de Datos que proporcionaste, favor verifica si existe o si es correcta la que escribiste';
exit;
}



session_start();
// Funciones
if($rango == 2) {
$rango = 'Moderador Global';
}
elseif($rango == 1) {
$rango = 'Administrador';
}
elseif($rango == 3) {
$rango = 'Moderador';
}
elseif($rango == 4) {
$rango = 'Usuario';
}
?>

¿Alguien sabe a que se debe?

Última edición por jearj; 03/05/2016 a las 13:58
  #63 (permalink)  
Antiguo 03/05/2016, 14:20
Avatar de kip13  
Fecha de Ingreso: agosto-2011
Mensajes: 167
Antigüedad: 13 años, 3 meses
Puntos: 13
Respuesta: insertar url en campo de db al iniciar sesion los usuarios

La sintaxis para seleccionar una base como lo haces esta mal, debes colocar como parámetro la conexión antes del nombre.

Asi:
Código PHP:
Ver original
  1. $conexion = mysqli_connect($host_db, $usuario_db, $clave_db);
  2.  
  3. $db = mysqli_select_db($conexion, $nombre_db);

Saludos
  #64 (permalink)  
Antiguo 03/05/2016, 14:45
Avatar de jearj  
Fecha de Ingreso: julio-2008
Mensajes: 72
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: insertar url en campo de db al iniciar sesion los usuarios

Gracias kip13

Ya paso a los siguientes errores, los he solucionado y la pag esta abierta, solo queda solucionar los errores que vallan saliendo al comprobar las funciones.

Voy a ello

Muchas gracias
  #65 (permalink)  
Antiguo 03/05/2016, 16:10
Avatar de jearj  
Fecha de Ingreso: julio-2008
Mensajes: 72
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: insertar url en campo de db al iniciar sesion los usuarios

Ya esta todo 100% mysqli y va bien.





Ahora queda solucionar este tema.
En la lista de usuarios aun falta la imagen que indique los que están conectados y desconectados.
Mañana la daré unas vueltas mas a ese asunto.

A ver que pasa.
  #66 (permalink)  
Antiguo 04/05/2016, 01:02
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 21 años
Puntos: 154
Respuesta: insertar url en campo de db al iniciar sesion los usuarios

Hola jearj,

He seguido tu post y me alegro mucho de que hayas podido cambiar de mysql_ a mysqli_ con éxito, enhorabuena.

Ahora bien, para lo que querías hacer desde un principio, lo mejor, como te apuntaron varios compañeros, es tener una imagen "offline.png" (por ejemplo) y hacer la comprobación con el campo de tu base de datos o tu sesión:

Código PHP:
Ver original
  1. if ( $campo_o_sesion == 1 ) {
  2. $imagen = "la_imagen_del_usuario.xyz"
  3. } else {
  4. $imagen = "offline.png"
  5. }

Así te evitas muchísimas complicaciones de actualizar al iniciar o cerrar sesión.

Espero que te sirva...
  #67 (permalink)  
Antiguo 04/05/2016, 04:00
Avatar de jearj  
Fecha de Ingreso: julio-2008
Mensajes: 72
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: insertar url en campo de db al iniciar sesion los usuarios

Cita:
Iniciado por rbczgz Ver Mensaje
Hola jearj,

He seguido tu post y me alegro mucho de que hayas podido cambiar de mysql_ a mysqli_ con éxito, enhorabuena.

Ahora bien, para lo que querías hacer desde un principio, lo mejor, como te apuntaron varios compañeros, es tener una imagen "offline.png" (por ejemplo) y hacer la comprobación con el campo de tu base de datos o tu sesión:

Código PHP:
Ver original
  1. if ( $campo_o_sesion == 1 ) {
  2. $imagen = "la_imagen_del_usuario.xyz"
  3. } else {
  4. $imagen = "offline.png"
  5. }

Así te evitas muchísimas complicaciones de actualizar al iniciar o cerrar sesión.

Espero que te sirva...



Gracias rbczgz

Ya probé algo parecido y no funciono.

Probé con este:
<?php
$consulta="UPDATE usuarios SET online = '$estado' WHERE id_usuario = 'id_usuario' ";

if($row['campo'] == "Inline"){
$img = "conectado.png";
}else{
$img = "desconectado.png";
}
?>

<img src="directorio/<?php echo $img; ?>">

Ese que tu pones me parece bueno, pero la verdad es que pasa como el otro, no termino de entenderlo, y no encuentro nada en internet que haga referencia a eso para informarme mejor.

No estaría de mas que me indiques un poco como hacerlo.
  #68 (permalink)  
Antiguo 04/05/2016, 04:07
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 21 años
Puntos: 154
Respuesta: insertar url en campo de db al iniciar sesion los usuarios

Hola jearj,

Olvídate del UPDATE, solo necesitas usarlo en el caso de que vayas a realizar la validación contra la base de datos, creo que es más efectivo hacerla contra la sesión, algo tipo:

Código PHP:
Ver original
  1. if($_SESSION['conectado'] == "si"){
  2. $img = "conectado.png";
  3. }else{
  4. $img = "desconectado.png";
  5. }

De todas formas, después de tanto intercambio de ideas, al final no tengo del todo claro cómo funciona tu aplicación, por eso no te puedo ayudar más, si lo explicas detalladamente, es probable que te pueda ser de más utilidad.
  #69 (permalink)  
Antiguo 04/05/2016, 05:02
Avatar de jearj  
Fecha de Ingreso: julio-2008
Mensajes: 72
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: insertar url en campo de db al iniciar sesion los usuarios

Si puedes adaptarlo a esto bastaría.

entrar.php:
Código PHP:
Ver original
  1. <?php
  2. require_once('conexion.php');
  3. $username=$_POST['name'];
  4. if($username==''){
  5.         header('Location: entrar-user.php?error=name');
  6.         }else{
  7.                 $password=$_POST['pass'];
  8.                 if($password==''){
  9.                         header('Location: entrar-user.php?error=clave');
  10.                         }else{
  11.                                 mysqli_select_db($conexion,$bd);
  12.                                 $datos=mysqli_query($conexion,"select * from usuario where nombre='$username'")or die(mysqli_error($conexion));
  13.                                 if($row=mysqli_fetch_array($datos)){
  14.                                 if($row['clave']==$password){
  15.                                 $_SESSION['id']=$row['id_user'];
  16.                                 $_SESSION['name']= $row['nombre'];
  17.                                 $_SESSION['niv']=$row['nivel'];
  18.                                 $_SESSION['img']=$row['img'];
  19.                                 header('location: index.php');
  20.                                         }else{
  21.                                                 header('Location: entrar-user.php?error=no');
  22.                                                 }
  23.                                 }
  24.                                 }
  25.  
  26.  
  27.                 }
  28. ?>

Código PHP:
Ver original
  1. <form action="entrar.php" method="post">
  2. <b>Nombre:</b><br /><input id='inputEntrar' type="text" name="name" placeholder="Aqui tu Nombre"/><br />
  3. <b>Password:</b><br /><input id='inputEntrar' type="password" name="pass" placeholder="Aqui tu clave"/><br />
  4. <div align="center"><input id="BotonEntrar" type="submit" value="ENTRAR"/><br /></form>

Son los archivos de la primera sesión, que es la que utiliza el archivo php donde quiero que se visualice.
  #70 (permalink)  
Antiguo 04/05/2016, 08:36
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 21 años
Puntos: 154
Respuesta: insertar url en campo de db al iniciar sesion los usuarios

Hola jearj,

Código PHP:
Ver original
  1. if !isset($_SESSION['img']) ) {
  2.                                 $img = "desconectado.png";
  3.                                         }

Eso en las páginas donde tengas que mostrar la imagen... Debería bastar, no lo he probado, pero la lógica es esa.

Espero que te sirva...
  #71 (permalink)  
Antiguo 04/05/2016, 12:50
Avatar de jearj  
Fecha de Ingreso: julio-2008
Mensajes: 72
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: insertar url en campo de db al iniciar sesion los usuarios

No funciona

Lo he intentado haciendo varias combinaciones y tampoco. lo mas que sele es esta dirección en las propiedades de la imagen http://MiSitio/perfil/.$img.

Codigo:
<img src="<?php echo'$img.';?>">
<?php

if ($_SESSION['img']){
$img = "conectado.png";
}else{
$img = "desconectado.png";
}
?>

El 'isset' me da error
  #72 (permalink)  
Antiguo 04/05/2016, 13:02
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 21 años
Puntos: 154
Respuesta: insertar url en campo de db al iniciar sesion los usuarios

Hola jearj,

A ver, para empezar, esto lo tienes mal:

Código PHP:
Ver original
  1. //MAL
  2. <img src="<?php echo'$img.';?>">
  3. //BIEN
  4. <img src="<?php echo $img;?>">

Porque las comillas simples ' no evalúan variables y además, para hacer un echo solo de la variable, no necesitas concatenarla con nada.

Por otra parte ¿qué error te da el "isset"? Si solo dices las cosas a medias es muy difícil ayudarte...

Posiblemente te de un error porque a mi se me coló sin poner un paréntesis, pero si en lugar de copiar y pegar hubieras analizado el código, te habrías dado cuenta...

Código PHP:
Ver original
  1. if ( !isset($_SESSION['img']) ) {
  2.                                 $img = "desconectado.png";
  3.                                         }

Espero que te sirva y por favor, utiliza el highlight para escribir el código que se lee mejor...
  #73 (permalink)  
Antiguo 04/05/2016, 14:15
Avatar de jearj  
Fecha de Ingreso: julio-2008
Mensajes: 72
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: insertar url en campo de db al iniciar sesion los usuarios

El error parece que hera por el paréntesis porque ya no da error, simplemente no sale la imagen

Código PHP:
Ver original
  1. <img src="http://MiSitio/perfil/<?php echo $img; ?>">
  2.  
  3. <?php
  4.  
  5. if (!isset($_SESSION['img']) ) {
  6. $img = "conectado.png";
  7. }else{
  8. $img = "desconectado.png";
  9. }
  10. ?>
  #74 (permalink)  
Antiguo 04/05/2016, 14:32
Avatar de kip13  
Fecha de Ingreso: agosto-2011
Mensajes: 167
Antigüedad: 13 años, 3 meses
Puntos: 13
Respuesta: insertar url en campo de db al iniciar sesion los usuarios

La primeria linea del codigo que colocaste arriba esta mal colocada alli.

Cita:
Iniciado por jearj Ver Mensaje
Código PHP:
Ver original
  1. <img src="http://MiSitio/perfil/<?php echo $img; ?>">
No puede ir antes de la comprobacion de la variable de SESSION, ten en cuenta eso, como mostrara aquella variable si aun no ha sido definida.

¿En qué lugar exactamente de tu pagina piensas mostrar aquella imagen?

Última edición por kip13; 04/05/2016 a las 14:38
  #75 (permalink)  
Antiguo 05/05/2016, 00:00
Avatar de jearj  
Fecha de Ingreso: julio-2008
Mensajes: 72
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: insertar url en campo de db al iniciar sesion los usuarios

Gracias kip13
Eso es algo que no sabia del PHP y además muy importante.

Ahora la img se visualiza donde estaba haciendo la prueba, pero en el lugar donde quiero que este, aun no va bien.

Are algunos cambios, que se me han ocurrido y ya os cuento.

Gracias
  #76 (permalink)  
Antiguo 05/05/2016, 02:02
Avatar de jearj  
Fecha de Ingreso: julio-2008
Mensajes: 72
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: insertar url en campo de db al iniciar sesion los usuarios

Este es el sitio donde tiene que ir:

Código PHP:
Ver original
  1. while($r = mysqli_fetch_array($cons)) {
  2. echo $r['id']." <img src='avatares/avatar".$r['id_usuario']."' height='40' title='Ver perfil de este usuario' /></div></div></a><div align='left' id='columnaCuerpo'>&nbsp;<b>Nombre:</b>&nbsp;\n";
  3.  
  4. if (!isset($_SESSION['img']) ) {
  5. $img = "conectado.png";
  6. }else{
  7. $img = "desconectado.png";
  8. }
  9. echo "<img src='/perfil/".$r['ing']."'\n<br><br>";
  10. echo $r['id']."<a class='columnaCuerpoEnlaces' href='perfil.php?id=".$r['id_usuario']."'>&nbsp;<b>".$r['usuario']."</b>&nbsp;</a></div><div align='left' id='columnaCuerpo'>&nbsp;<b>Fecha de alta:</b> \n<br>";
  11. echo $r['id']."<font size='2' color='0000FF'> &nbsp;".$r['freg_usuario']."&nbsp;</font></div><div align='left' id='columnaCuerpo'>&nbsp;<b>Web:</b>\n<br>";
  12. echo $r['id']."<font size='2' color='0000FF'> &nbsp;".$r['web']."&nbsp;</font></div><div align='left' id='columnaCuerpo'>&nbsp;<b>Red social:</b> \n<br>";
  13. echo $r['id']."<font size='2' color='0000FF'> &nbsp;".$r['red']."&nbsp;</font></div></div><div style='clear:both;'></div>\n";
  14. }

He probado de todo pero no consigo que me reconozca la variable ($img)



Al revisar las propiedades del icono la dirección sale así: http://MiSitio/perfil/

Última edición por jearj; 05/05/2016 a las 02:17
  #77 (permalink)  
Antiguo 05/05/2016, 02:23
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 21 años
Puntos: 154
Respuesta: insertar url en campo de db al iniciar sesion los usuarios

Hola jearj,

No has probado de todo porque no has probado a analizar el código que se te proporciona y adaptarlo al tuyo.

De tu código y tu comentario se deduce que no estas guardando la $_SESSION['img'], por lo tanto ese es el primer fallo, por otra parte, lo que muestras parece un panel de administración, lo que significa que la sesión del usuario no te sirve de nada ahí, no te queda más remedio que usar la base de datos.

Entonces, si no lo tienes, debes añadir un campo en el que estableces si está conectado o no y este campo lo actualizas según el criterio que tú quieras, para esto tienes muchísimas ayudas en Internet.

Una vez establecido esto, la comparación la deberás hacer contra tu campo de la base de datos y especificando la imagen del usuarios en el caso de que esté conectado (imagino que eso es lo que quieres):

Código PHP:
Ver original
  1. if ( $r['campo_de_conectado_o_no'] ==1 ) { // Suponiendo que 1 es conectado y 0 desconectado
  2. $img = "avatar".$r['id_usuario'];
  3. }else{
  4. $img = "desconectado.png";
  5. }

Espero que te sirva y si no te sirve, te recomiendo que postees todas las especificaciones que requiere tu proyecto, todo el código que llevas hecho hasta ahora y la estructura de tus tablas con:

Código MySQL:
Ver original
  1. SHOW CREATE TABLE nombre_de_la_tabla;

Porque este hilo tiene 76 post para nada según el título inicial, y todo por no saber qué es lo que tienes y quieres conseguir exactamente.
  #78 (permalink)  
Antiguo 05/05/2016, 02:42
Avatar de jearj  
Fecha de Ingreso: julio-2008
Mensajes: 72
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: insertar url en campo de db al iniciar sesion los usuarios

Hola rbczgz y Gracias.

No es un panel de administración es la lista de usuarios con información de lo registrado en db



Ya estaba pensando que esta forma quizás no serviría.
El problema es que e intentado hacerlo con la db, y soy yo, que soy un chapucero con esto; No consigue nada y estoy pensando en abandonar.

La verdad es que este hilo se pasa de largo, pero me sabe mal dejarlo sin solucionar.
  #79 (permalink)  
Antiguo 05/05/2016, 02:50
Avatar de jearj  
Fecha de Ingreso: julio-2008
Mensajes: 72
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: insertar url en campo de db al iniciar sesion los usuarios

Cita:
Iniciado por rbczgz Ver Mensaje
Hola jearj,
te recomiendo que postees todas las especificaciones que requiere tu proyecto, todo el código que llevas hecho hasta ahora y la estructura de tus tablas
Demasiado largo
  #80 (permalink)  
Antiguo 05/05/2016, 02:57
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 21 años
Puntos: 154
Respuesta: insertar url en campo de db al iniciar sesion los usuarios

Cita:
Iniciado por jearj Ver Mensaje
Demasiado largo
¿Mas que este hilo?

Fíjate en el enlace que te he pasado para obtener los usuarios online, el resto ya te lo he explicado.
  #81 (permalink)  
Antiguo 05/05/2016, 04:52
Avatar de jearj  
Fecha de Ingreso: julio-2008
Mensajes: 72
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: insertar url en campo de db al iniciar sesion los usuarios

Todos esos me aparecen ya como visitados, pero volveré a intentarlo.

Gracias

Etiquetas: campo, mysql, select, sql, tabla, url, 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 15:38.