Les archives de FluxBB.fr
Vous n'êtes pas identifié(e).
dans ton script tu as bien inséré common.php ?
non c'est normal d'utiliser ces fonctions, enfin dans le cntexte de punbb car il y a une class d'abstraction
cette erreur elle est dans quel contexte ? quelle fonction ? appellé par quel script ? etc. sans le contexte on peut pas grand choses
Hors ligne
En fait j'ai copié collé une partie du code de login.php dans une de mes pages pour permettre la connexion sur le forum à partir du site
voici le code copier/coller :
// forum
define('PUN_QUIET_VISIT', 1);
define('PUN_ROOT', './forum/upload/');
require PUN_ROOT.'include/common.php';
$form_username = trim($_POST['req_username']);
$form_password = trim($_POST['req_password']);
$username_sql = ($db_type == 'mysql' || $db_type == 'mysqli') ? 'username=\''.$db->escape($form_username).'\'' : 'LOWER(username)=LOWER(\''.$db->escape($form_username).'\')';
$result = $db->query('SELECT id, group_id, password, save_pass FROM '.$db->prefix.'users WHERE '.$username_sql) or error('Unable to fetch user info', __FILE__, __LINE__, $db->error());
list($user_id, $group_id, $db_password_hash, $save_pass) = $db->fetch_row($result);
$authorized = false;
if (!empty($db_password_hash))
{
$sha1_in_db = (strlen($db_password_hash) == 40) ? true : false;
$sha1_available = (function_exists('sha1') || function_exists('mhash')) ? true : false;
$form_password_hash = pun_hash($form_password); // This could result in either an SHA-1 or an MD5 hash (depends on $sha1_available)
if ($sha1_in_db && $sha1_available && $db_password_hash == $form_password_hash)
$authorized = true;
else if (!$sha1_in_db && $db_password_hash == md5($form_password))
{
$authorized = true;
if ($sha1_available) // There's an MD5 hash in the database, but SHA1 hashing is available, so we update the DB
$db->query('UPDATE '.$db->prefix.'users SET password=\''.$form_password_hash.'\' WHERE id='.$user_id) or error('Unable to update user password', __FILE__, __LINE__, $db->error());
}
}
if (!$authorized)
message($lang_login['Wrong user/pass'].' <a href="login.php?action=forget">'.$lang_login['Forgotten pass'].'</a>');
// Update the status if this is the first time the user logged in
if ($group_id == PUN_UNVERIFIED)
$db->query('UPDATE '.$db->prefix.'users SET group_id='.$pun_config['o_default_user_group'].' WHERE id='.$user_id) or error('Unable to update user status', __FILE__, __LINE__, $db->error());
// Remove this users guest entry from the online list
$db->query('DELETE FROM '.$db->prefix.'online WHERE ident=\''.$db->escape(get_remote_address()).'\'') or error('Unable to delete from online list', __FILE__, __LINE__, $db->error());
$expire = ($save_pass == '1') ? time() + 31536000 : 0;
pun_setcookie($user_id, $form_password_hash, $expire);
redirect(htmlspecialchars($_POST['redirect_url']), $lang_login['Login redirect']);
// finl'erreur vient de la car avant j'avais aucune erreur sur cette page et c'est la seule modif que j'ai fait !
si tu peux jeter un coup d'oeil
Merci
Hors ligne
tu n'a pas besoin de mettre de PHP pour réaliser l'identification sur ton site, le formulaire suivant en simple HTML fonctionnera :
<form id="login" method="post" action="/url_forums/login.php?action=in">
<div id="brdwelcome" class="inbox">
<input name="form_sent" value="1" type="hidden" />
<input name="redirect_url" value="/url_page.html" type="hidden" />
<label><strong>Nom d'utilisateur</strong>
<input name="req_username" size="13" maxlength="25" type="text" /></label>
<label><strong>Mot de passe</strong>
<input name="req_password" size="13" maxlength="16" type="password" /></label>
<input name="login" value="S'identifier" type="submit" />
</div>
</form>il faut juste ajuster [c]action="/url_forums/login.php?action=in"[/c] qui est l'URL de la page de connexion sur ton forum et [c]value="/url_page.html[/c] qui est l'URL de redirection après identification
Hors ligne
sur ce coup la je me suis compliqué la vie.....
En admettant que je me connecte par ce formulaire, avec "action="/url_forums/login.php?action=in"" je me connecte que sur le forum...
alors tu me conseil de modifier la page login.php pour finalemment etre connecté sur les deux ? (avec le site)
ou alors ya-t-il un autre moyen ?
Hors ligne
En admettant que je me connecte par ce formulaire, avec "action="/url_forums/login.php?action=in"" je me connecte que sur le forum...
Si tu oublies pas ceci :
tout est fait via common.php il n'y a aucun problème, vous cherchez à compliquer le truc alors que c'est tout simple : vous mettez
define('PUN_ROOT', './forums/'); require PUN_ROOT.'include/common.php';et voilà après il reste plus qu'à utiliser tout ce qui est à votre disposition comme expliqué sur l'aide
A partir du moment ou tu es connecté via le formulaire, et que les pages de ton site ont les 2 petites lignes qui vont bien, pas de soucis... tu es connecté aussi bien sur le forum que sur le site
Et donc, il est en aucun cas question de modifier login.php (c'est celui du forum que tu voulais modifié ?)
Hors ligne
edit---
post croisé avec Lyconide 
-------
non ! pourquoi faire simple quand on peut faire compliqué ?
quand tu inclu [c]common.php[/c] ce script se charge de regarder si l'utilisateur courant est identifié ou non
donc tu va inclure ce script dans toutes les pages de ton site ; donc ce script va regarder sur toutes les pages de ton site si l'utilisateur est identifié ou non
si il est pas identifié (voir la page du wiki pour savoir comment tester ça) tu va lui afficher le formulaire que je viens de donner
comme la cible du formulaire est la page de connexion des forums et que les noms des champs du formulaire sont ceux attendus par le script alors celui-ci va procéder à l'identification et rediriger vers l'adresse de redirection précisée dans le champs caché du formulaire (généralement on va rediriger sur la page du site où on as mis le formulaire) et enfin comme sur cette page comprend l'inclusion de common.php qui se charge de tester si l'utilisateur est en ligne ou non voilà la boucle est bouclé
est-ce que tu comprend ?
Dernière modification par vin100 (22-07-2006 12:09:56)
Hors ligne
A partir du moment ou tu es connecté via le formulaire, et que les pages de ton site ont les 2 petites lignes qui vont bien, pas de soucis... tu es connecté aussi bien sur le forum que sur le site
Et donc, il est en aucun cas question de modifier login.php (c'est celui du forum que tu voulais modifié ?)
mais avec le formulaire de vin100 ca me permet de me connecter au forum...
je ne vois pas pourquoi avec ce formulaire je serais connecté aussi à l'espace membre de mon site... ou alors il fuat que je prenne une table unique... en l'occurence celle du forum...
le probleme c'est que j'ai d'autres données pour les membre du site et donc je voulais garder les deux tables... et donc en gros faire deux connections (alors que le visiteur a l'impression dans faire qu'une...)
pour repondre à vin100 je crois avoir compris mais en fiat vous me proposer de me connecter que sur le forum... et de me baser la dessus...
si le visiteur est connecté sur le forum alors je le considere connecte également à son compte membre du site...
Ai-je bien compris ??
Hors ligne
ah mais voilà tu nous avait pas dit que sur ton site tu avait ton propre système d'identification sur ton site
oui je crois que tu as compri
la méthode ici proposée c'est de ne pas utiliser le système de ton site mais de préferer celui du forum parce que c'est simple et efficace
si des champs suplémentaires sont nécessaire alors tu les ajoute à la table users de punbb, ils seront tous ajoutés automatiquement au tabelau $pun_user
Hors ligne
ah mais voilà tu nous avait pas dit que sur ton site tu avait ton propre système d'identification sur ton site
oupsss dsl je pensais que vous aviez compris .... 
si je veux garder les duex tables pour pas tout melanger
je peux rajouter mon systeme d'identification de mon site sur la page login.php du forum ??
et utiliser ton formulaire html
Hors ligne
Sans rien melanger... c'est beaucoup plus dur...
:|
Hors ligne
bah peut etre mais j'ai pas envie de tout melanger car si je dois tout baser sur la table user du forum alors tout mon site à refiare....
enfin les espaces membres.... car le systeme d'identification et completement different.... et j'ai pas envie de changer toutes mes fonctions...
y a-t-il pas moyen de faire une fonction qui me permet de me connecte sur mon
systeme d'identification et sur celui du forum ?
j'ia bien reussi pour l'inscription ( je rempli les deux tables )
je peux pas faire de mm pour la identification ?
Hors ligne
si il y a certainement moyen après faut coder...
ceci dit c'est exactement ce qu'il ne faut pas faire avec une base de données : dupliquer les données
moi je te conseil soit de changer le système d'identification de PunBB par le tiens, soit de changer le tiens par celui de PunBB mais pas d'avoir un truc hybride mélange de deux, cela pour les perf, la qualité, la pérénité, etc. etc.
Hors ligne
Oui....
c'est sur que c'est pas top...
mais la je sais plus quoi faire car dans les deux cas ca va me faire des tonnes de boulots... si je garde mon site je vais couler car je connais pas le fonctionnement de punbb et si je garde punbb je vais devoir refaire tout mon site...
j'avoue que le je sais plus...
Hors ligne
l'autre solution c'est de ne pas confondre les comptes
Hors ligne
l'autre solution c'est de ne pas confondre les comptes
laisser comme c'est en fait ? 
Hors ligne
bah oui si tu souhaite pas remettre les mains dedans
peutetre que ça ne te prendrais pas énormément de temps à refaire ton site ; d'ailleur il est où ce site on peut le voir ? par MP si tu préfère
Hors ligne
comme tu as pu le dire en MP effectivement j'ia encore beaucoup de travaille ! 
ca c'est sur j'e nsuis conscient...
c'est un peu pour ca que je voualis pas refaire ce que j'avais deja commencé !
bon finallement je me suis lancé quant même !
je refais tout en utilisant les tables du forum et common.php....
au début je voulais pas que mon site depend du forum... mais bon !
une fois que j'aurais mis à jour mon site je compte aussi passer aux normes w3c 
@vin100 : j'avais pas encore pris le temps de corriger mes erreurs, si j'ai mis le logo c'était pour voir les erreurs que j'avais en cliquant dessus... je n'avais pas encore la prétention d'avoir un site aux normes ! 
Hors ligne
bonne décision ; bon courage 
Hors ligne
bonjour,
j'ia remarqué que si on quittait le forum sans se deconnecter et qu'on revennait dessus on était toujours connecté parfois même longtemps apres...
serait -il possible de changer cela ?
de reduire la durée durant laquelle on reste connecté apres avoir quitté... ou de deconnecté automatiquement quant il quitte le site ?
Dernière modification par Elmut (25-07-2006 18:13:27)
Hors ligne
ya personne pour m'aider sur ce coup la ? 
parce que je trouve con de revenir le lendemain sur le site est qu'on soit toujours connecté... j'aimerai bien enlever ou reduire le temps durant on reste connecté alors qu'on a quitté le site...
Hors ligne
Je ne crois pas que ce soit réglable, simplement activable ou désactivable dans le profil...
Dans la section Vie privée, Mémoriser le nom d'utilisateur et le mot de passe entre les visites. 
Hors ligne
ah ok... 
mais quant on se connecte ya pas un cookie qui se créé (en plus de l'ajout dans la table online)?
il suffirai de reduire la durée de vie du cookie non ?
est ce que quelqu'un a une autre solution ?
Hors ligne
dasn functions.php
$expire = ($save_pass == '1') ? time() + 31536000 : 0;Hors ligne
ok !! merci 
j'imagine que je reduis le chiffre derriere time() ?
31536000 = 1 an.... Ca fait long...
surtout quant le forum et le site on la mm base de donnée...
merci à vous !
Dernière modification par Elmut (26-07-2006 20:15:47)
Hors ligne
ce un an c'est pour ceux qui ont la case cochée dans leur profil, sinon dès qu'on est deconnectéle cookie est dead
Hors ligne