Ciao a tutti,
č la prima volta che mi cimento in qualcosa per wordpress ed ho un problemino....
Con questo script riesco tranquillamente a trovare i valori delle variabili per fare il login (user e password), ma la funzione wp_signon() non fa il suo dovere!!!!
ecco la struttura della tabella wp_2openav
wp_id | oav_id |wp_user | wp_pass
Dove sbaglio?
ecco lo script:
Codice PHP:
<?php
/**
* WordPress OpenAV User Page
*
* Handles authentication width OpenAV
*
* @package WordPress
*/
$OAVPath="http://127.0.0.1/OpenAV/wp/openav/"; //Percorso ASSOLUTO dei file della classe OpenAV
$WPDBPrefix="wp_"; //Prefisso delle tabelle di wordpress.
$WPPath="http://127.0.0.1/OpenAV/wp/"; // Percorso di installazione wordpress
/** Make sure that the WordPress bootstrap has ran before continuing. */
require( dirname(__FILE__) . '/wp-config.php' );
require( dirname(__FILE__) . '/wp-includes/pluggable.php' );
require( dirname(__FILE__) . '/wp-includes/registration.php' );
// OpenAV Apis
if(!isset($_GET['sid']) || empty($_GET['sid'])){
header("Location: http://openav.altervista.org/login.php?ref=".base64_encode($OAVPath)."&errore=5"); // Sessione invalida....
}else{
$sid=addslashes($_GET['sid']);
}
function OAVContent($page){
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_NOBODY, 0);
curl_setopt($ch, CURLOPT_URL, "http://openav.altervista.org/".$page);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_COOKIE, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
curl_close($ch);
if ($result) {
return $result;
} else {
return curl_error($ch);
}
}
function OAVAuthInfo($sid){
$cont=OAVContent("user_auth_info.php?sid=".$sid."&ApiVersion=1",0,0,null);
$cont=unserialize($cont);
return $cont;
}
$my_info=OAVAuthInfo($sid);
if($my_info['errore']=='4'){
// Ho giā fatto il login altre volte?
// Tutto ok, creo l'utente.
$user_login=$my_info['user_name'];
$user_email=$my_info['email'];
// C'č qualcun'altro?!?!?!?
$controllo=mysql_num_rows(mysql_query("SELECT * FROM `".$WPDBPrefix."2openav` WHERE `oav_id`='".$my_info['user_id']."' LIMIT 1;"));
if($controllo==0){
$user_pass=rand(123456,654321);
// Se c'č gič qualcun'altro aggiungo un tag....
if(username_exists($user_login)!==NULL){$user_login.="_OpenAV";}
// Registro....
$user_id = wp_create_user( $user_login, $user_pass, $user_email );
mysql_query("INSERT INTO `".$WPDBPrefix."2openav` ( `wp_id` , `oav_id` , `wp_user` , `wp_pass` ) VALUES ('".$user_id."', '".$my_info['user_id']."', '".$user_login."', '".$user_pass."');");
}else{
// Recupero i dati...
setcookie("TEST_COOKIE","1",time()+3600);
$recupero=mysql_query("SELECT * FROM `".$WPDBPrefix."2openav` WHERE `oav_id`='".$my_info['user_id']."' LIMIT 1;");
while($riga=mysql_fetch_array($recupero)){$user_login=$riga['wp_user'];$user_pass=$riga['wp_pass'];}
}
// Accedo
//print_r(array("user_login"=>$user_login,"user_password"=>$user_pass,"remember"=>false));
wp_signon(array("user_login"=>$user_login,"user_password"=>$user_pass,"remember"=>false),'');
header("Location: ".$WPPath);
}else{
header("Location: http://openav.altervista.org/login.php?ref=".base64_encode($OAVPath)."&errore=5"); // Sessione invalida....
}
?>