Foros del Web » Creando para Internet » Sistemas de gestión de contenidos » WordPress »

if user login wordpress

Estas en el tema de if user login wordpress en el foro de WordPress en Foros del Web. Bueno después de un tiempo regreso para hacer una consulta aparentemente sencilla pero que no he dado.. :( El caso es que alojo wordpress en ...
  #1 (permalink)  
Antiguo 20/03/2012, 20:02
 
Fecha de Ingreso: abril-2011
Ubicación: Colombia
Mensajes: 59
Antigüedad: 13 años
Puntos: 19
Pregunta if user login wordpress

Bueno después de un tiempo regreso para hacer una consulta aparentemente sencilla pero que no he dado.. :(

El caso es que alojo wordpress en un subdirectorio así: localhost/mi_sitio/blog

Si me logueo allí, todo marcha bn! pero si regreso al index.php de localhost/mi_sitio entonces no recupera los datos del usuario que está logueado... en la sección /blog

En el index.php de localhost/mi_sitio/ tengo <?php require('./blog/wp-blog-header.php'); ?> pero aún así no obtengo los datos del usuario logueado en la sección /blog

¿?
  #2 (permalink)  
Antiguo 22/03/2012, 08:22
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 8 meses
Puntos: 638
Respuesta: if user login wordpress

Hola... Supongo que además tengas que agregar las funcionalidades de WordPress para que funcione correctamente http://www.forosdelweb.com/f118/tips...6/#post2903123

Eso te debe funcionar, si no, busca acerca de sessiones en WordPress, nunca he visto nada de eso, pero tal vez encuentres algo...

Saludos.
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #3 (permalink)  
Antiguo 23/03/2012, 07:03
 
Fecha de Ingreso: abril-2011
Ubicación: Colombia
Mensajes: 59
Antigüedad: 13 años
Puntos: 19
Respuesta: if user login wordpress

Gracias por la atención rogertm
Ya había consultado esa sugerencia y nada.
A lo mejor tiene que ver con sessiones, estoy en esas. Si puedo lograr hacérlo.. es una gran ventaja para gestionar un sitio con wordpress.
Cualquier otra sugerencia es bienvenida bro.
  #4 (permalink)  
Antiguo 24/03/2012, 09:30
Avatar de zanguanga
Moderadora
 
Fecha de Ingreso: julio-2009
Ubicación: España
Mensajes: 1.686
Antigüedad: 14 años, 9 meses
Puntos: 429
Respuesta: if user login wordpress

A ver si lo entiendo, ¿tienes dos instalaciones de WordPress une en tu-sitio y otra en tu-sitio/blog o solo una?
__________________
Mi blog personal | Mi G+
  #5 (permalink)  
Antiguo 24/03/2012, 11:11
 
Fecha de Ingreso: abril-2011
Ubicación: Colombia
Mensajes: 59
Antigüedad: 13 años
Puntos: 19
Respuesta: if user login wordpress

Gracias zanguanga
Solo tengo una. En mi-sitio/blog
En mi-sitio no hay, solo tengo lo siguiente en index.php:

Código PHP:
Ver original
  1. <?php require_once('./blog/wp-load.php'); ?>
  2. <?php get_header(); ?>
  3. <?php get_footer(); ?>

Y en el archivo header.php que está en mi-theme (funciona bien en mi-sitio/blog)

Código PHP:
Ver original
  1. <?php if ($user_ID)
  2. { ... }
  3. else
  4. {...} ?>

Aclaro otros detalles: he intentado con <?php require('../blog/wp-blog-header.php'); ?> en index de mi-sitio y tampoco recoge la variable $user_ID

y tambien con:

<?php
if ( is_user_logged_in() ) {
echo 'Welcome, registered user!';
} else {
echo 'Welcome, visitor!';
}
?>

en index.php de mi-sitio y nada... creo q es la SESSION q se pierde.. =(

La idea es utilizar el Login del usuario wordpress en el resto del sitio...
  #6 (permalink)  
Antiguo 24/03/2012, 16:49
Avatar de zanguanga
Moderadora
 
Fecha de Ingreso: julio-2009
Ubicación: España
Mensajes: 1.686
Antigüedad: 14 años, 9 meses
Puntos: 429
Respuesta: if user login wordpress

WordPress crea algunas cookies cuando un usuario inicia la sesión. Supongo que la cosa debe ir por el lado de comprobar las cookies para ver si el usuario actual está registrado o no.

Tal vez te interese ver la línea 663 de http://core.trac.wordpress.org/brows.../pluggable.php para ver como usar eso.

Supongo que se tratará de crear algunas cookies en el navegador del usuario con las claves secretas correspondientes. Cómo hacerlo ya no sé. Aunque quizá te sirva trastear un poco con el código de este plugin http://wordpress.org/extend/plugins/...s-integration/ para ver cómo lo hace.
__________________
Mi blog personal | Mi G+
  #7 (permalink)  
Antiguo 25/03/2012, 13:35
 
Fecha de Ingreso: abril-2011
Ubicación: Colombia
Mensajes: 59
Antigüedad: 13 años
Puntos: 19
Respuesta: if user login wordpress

Gracias zanguanga, estuve investigando y es por ahí el asunto; sin embargo creé un login - no sé si tomé el camino más largo, pero algo se aprende =)

Código HTML:
Ver original
  1. <form action="login.php" method="post">
  2.  
  3.     Username:
  4.     <input type="text" name="user_login" size="20">
  5.    
  6.     Password:
  7.     <input type="password" name="user_pass" size="20">
  8.    
  9.     <input type="submit" value="Log In">
  10.  
  11. </form>

y la idea es loguearse con la base de datos de wordpress, sin embargo debo validar el password (hash) con algo así:

Código PHP:
Ver original
  1. function my_password_validation( $username, $password ) {
  2.     // Select the users's password hash from the database
  3.     $stored = query( 'SELECT * FROM wp_users WHERE email = ' . $username );
  4.  
  5.     require_one( 'class-phpass.php' );
  6.     $hasher = new PasswordHash(8, TRUE);
  7.  
  8.     return $hasher->CheckPassword( $password, $stored );
  9. }

Cómo sería ese login.php? integrando la función para validar el password encriptado (hash)
  #8 (permalink)  
Antiguo 10/04/2012, 19:36
 
Fecha de Ingreso: abril-2011
Ubicación: Colombia
Mensajes: 59
Antigüedad: 13 años
Puntos: 19
Respuesta: if user login wordpress

No quería solucionarlo así pero usé el plugin: root Cookie

http://wordpress.org/extend/plugins/root-cookie/

Con este plugin ya puedes utilizar if user login en todo el sitio... =)

En el caso en que tengas wordpress en un subdirectorio: misitio/blog
  #9 (permalink)  
Antiguo 11/04/2012, 20:08
 
Fecha de Ingreso: abril-2011
Ubicación: Colombia
Mensajes: 59
Antigüedad: 13 años
Puntos: 19
Respuesta: if user login wordpress

Bueno aquí les dejo este formulario de Login usando la base de datos de wordpress y verificando la contraseña si aún se guarda en md5 o si es con el nuevo sistema Hash.

Lo fuí armando de a poco por que mis conocimientos en php no son avanzados.. pero igual sé que se puede mejorar.

config.php usandolo en localhost... lógicamente.

Código PHP:
Ver original
  1. <?php
  2.  
  3. $server = "localhost";
  4.  
  5. $database = "wordpress";
  6.  
  7. $db_user = "root";
  8.  
  9. $db_pass = "";
  10.  
  11. $table = "wp_users";
  12.  
  13. ?>

login.html

Código HTML:
Ver original
  1. <form action="login.php" method="post">
  2. <p><strong>Login</strong></p>
  3. <p>Username:
  4. <input type="text" name="user_login" size="20">
  5. </p>
  6. <p>Password:
  7. <input type="password" name="user_pass" size="20">
  8. </p>
  9. <input type="submit" value="Log In">
  10. </form>

login.php

Código PHP:
Ver original
  1. <?php
  2.  
  3. include("config.php");
  4.  
  5.  
  6. if (!$link = mysql_connect($server, $db_user, $db_pass)) {
  7.     echo 'No pudo conectarse a mysql';
  8.     exit;
  9. }
  10.  
  11. if (!mysql_select_db($database, $link)) {
  12.     echo 'No pudo seleccionar la base de datos';
  13.     exit;
  14. }
  15.  
  16. include_once('./blog/wp-config.php');
  17. include_once('./blog/wp-includes/wp-db.php');
  18.  
  19. global $userdata;
  20. global $wpdb;
  21.  
  22. $username = $_POST['user_login'];
  23. $password = $_POST['user_pass'];
  24.  
  25. $user_name = htmlspecialchars($username,ENT_QUOTES);
  26.  
  27. $pass_word = wp_hash_password($password);
  28.  
  29. $pass_md5 = md5($password);
  30.  
  31. $pass = $pass_word;
  32.  
  33. $userinfo = get_userdatabylogin($user_name);
  34.  
  35. if ( $pass == $userinfo->user_pass){
  36.  
  37.         echo "YES md5";
  38.  
  39.     } else
  40.  
  41.         echo "NO md5<br />";
  42.  
  43. $password = $_POST['user_pass'];
  44. $hash = $userinfo->user_pass;
  45. require_once( './blog/wp-includes/class-phpass.php');
  46. $wp_hasher = new PasswordHash(8, TRUE);
  47.  
  48. if ($wp_hasher->CheckPassword($password, $hash)) {
  49. $userinfo = get_userdatabylogin($user_name);
  50.     echo $userinfo->user_pass;
  51.     echo '<br />';
  52.     echo 'YES';
  53. }else{
  54.     echo 'NO';
  55.     }
  56.  
  57. ?>

Espero sus aportes para mejorar el código... la verdad no encontré ningún artículo completo y en español sobre esto (si lo escriben dejen el crédito jajajjajaj si lo hay)

Etiquetas: login, php
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 10:21.