manhim
lundi 04 juillet 2005 à 03:37
Pour ma part, j'ai toujours une page de décalage...
Alors voici la source comme promis... :
Fichier is_login.php (à la racine de votre forum) [ ex :
http://www.votresite.tld/forum/is_login ]
CODE
function EcrireCookie(nom, valeur)
{
var argv=EcrireCookie.arguments;
var argc=EcrireCookie.arguments.length;
var expires=(argc > 2) ? argv[2] : null;
var path=(argc > 3) ? argv[3] : null;
var domain=(argc > 4) ? argv[4] : null;
var secure=(argc > 5) ? argv[5] : false;
document.cookie=nom+"="+escape(valeur)+
((expires==null) ? "" : ("; expires="+expires.toGMTString()))+
((path==null) ? "" : ("; path="+path))+
((domain==null) ? "" : ("; domain="+domain))+
((secure==true) ? "; secure" : "");
}
<?
require_once "/home/.../ipbsdk/ipbsdk_class.inc.php";
$SDK =& new IPBSDK();
$membre = $SDK->get_info();
if ($SDK->is_loggedin()) {
echo 'EcrireCookie("is_logued", "TRUE");';
echo 'EcrireCookie("member_name", "' . $membre[name] . '");';
}
else {
echo 'EcrireCookie("is_logued", "FALSE");';
}
?>
À insèrer dans vos pages le plus haut possible :
CODE
<?
setcookie("is_logued");
setcookie("member_name");
$is_logued = $_COOKIE[is_logued];
$member_name = $_COOKIE[member_name];
?>
À insèrer juste en dessous de votre balise BODY (Sur tout le site) :
CODE
<script type="text/javascript" src="http://forum.mansite.net/is_login.php"></script>
À mettre où vous voulez et à modifier comme vous voulez :
CODE
<?
if ($is_logued == "TRUE") {
echo ' Bonjour ' . $member_name . ' ! ';
}
elseif ($is_logued == "FALSE")
{
echo "<script language='JavaScript' type=\"text/javascript\">";
echo "<!--";
echo "function ValidateForm() {";
echo " var Check = 0;";
echo " if (document.LOGIN.UserName.value == '') { Check = 1; }";
echo " if (document.LOGIN.PassWord.value == '') { Check = 1; }";
echo " if (Check == 1) {";
echo " alert(\"Merci de saisir vos nom et mot de passe avant de continuer.\");";
echo " return false;";
echo " } else {";
echo " document.LOGIN.submit.disabled = true;";
echo " return true;";
echo " }";
echo "}";
echo "//-->";
echo "</script>";
echo "<form action=\"http://forum.mansite.net/index.php?act=Login&CODE=01\"
method=\"post\"
name=\"LOGIN\"
onsubmit='return ValidateForm()'>";
echo "<input type=\"hidden\" name=\"referer\" value=\"http://" . $_SERVER[HTTP_HOST] . "" . $_SERVER[REQUEST_URI] . "\">";
echo "<input type=\"hidden\" name=\"CookieDate\" value=\"1\">";
echo "<input type=\"hidden\" name=\"Privacy\" value=\"0\">";
echo "Pseudo : <input name=\"UserName\" type=\"text\" size=\"15\">";
echo " Passe : <input name=\"PassWord\" type=\"password\" size=\"15\">";
echo " <input type=\"submit\" name=\"submit\" value=\"Se loguer\">";
echo "</form>";
}
else
{
echo ' Erreure lors du chargement du cookie ';
}
?>
Ce script possède une page de décalage. Donc, vous devez actualiser la page 1 fois après l'avoir charger pour prendre effet... Ceci est gênant, mais c'est le seul moyen que j'ai trouver pour pouvoir savoir si quelqu'un est en ligne au forum ou non sur un autre hébergeur.
Il est aussi préférable de mettre un mod qui fait retourner vers la page précédente lors du login/déloguin
N'oublier pas de modifier le chemin vers les classes de IPBSDK...