Creer un formulaire de connexion [Réglé]
mika23 Membre non connecté
Booster Fronde
-
Booster Fronde
- Voir le profil du membre mika23
- Inscrit le : 21/12/2010
Je suis entrain de déployer un phpboost avec le template "printemps", mais pour les besoin du sites j'aurai besoin de désactiver le mini module de connexion (jusque là c'est facile
) et de créer une page de connexion toute simple qui serait accessible via un lien qui serait placé discrètement dans un coin.Pourquoi faire cela me direz-vous ? Tout simplement parce que seules 4/5 personnes maxi auront accès au site pour publier du contenu, et que vu le public ciblé, ils voudront tous essayer de s'inscrire ou se connecter, non pas pour emm*** le monde mais simplement parce que leur maîtrise de l'internet est assez limitée et que par réflexe dès qu'ils voient une boite de connexion faut qu'ils tapent un truc dedans...
J'ai cherché une bonne heure sur le forum mais j'avoue ne pas avoir trouvé grand chose (ou alors j'ai mal cherché). D'ailleurs je suis assez surpris de ne pas avoir trouvé de page de connexion indépendante , comprendre non liée aux liens ou modules présents (genre www.mon.site/login.php).
Je précise que j'ai quelques notions en php, donc on peut y aller sur le code si besoin, mais que par contre c'est la première fois que j'installe un phpboost, et par conséquent je ne suis pas familiarisé avec le fonctionnement sous le capot

Merci
Édité par mika23 Le 31/12/2010 à 11h13
ReidLos Membre non connecté
-
Modérateur
- Voir le profil du membre ReidLos
- Inscrit le : 27/02/2009
- Site internet
- Groupes :
-
Equipe Développement
Je te propose de créer un fichier php nommé connect.php dans le dossier connect/ avec :
Code PHP :
<?php defined('PATH_TO_ROOT') or define('PATH_TO_ROOT', '..'); require_once(PATH_TO_ROOT . '/kernel/begin.php'); require_once(PATH_TO_ROOT . '/kernel/header_no_display.php'); global $User, $LANG, $CONFIG_USER, $CONTRIBUTION_PANEL_UNREAD, $ADMINISTRATOR_ALERTS, $Session; $tpl = new Template('connect/connect.tpl'); import('core/menu_service'); if ($User->check_level(MEMBER_LEVEL)) //Connecté. { //Vaut 0 si l'utilisateur n'a aucune contribution. Est > 0 si on connait le nombre de contributions //Vaut -1 si l'utilisateur a au moins une contribution (mais on ne sait pas combien à cause des recoupements entre les groupes) $contribution_number = 0; //Panneau de contributions, y-a-t'il des contributions que le membre peut lire ? if ($User->check_level(ADMIN_LEVEL)) $contribution_number = $CONTRIBUTION_PANEL_UNREAD['r2']; elseif ($User->check_level(MODERATOR_LEVEL)) $contribution_number = $CONTRIBUTION_PANEL_UNREAD['r1']; //On vérifie les groupes et les levels ou tout simplement si il y en a pour les membres else { //Si tous les membres ont une contribution non lue if ($CONTRIBUTION_PANEL_UNREAD['r0'] > 0) $contribution_number = -1; //On regarde si ce membre en particulier en a une if ($contribution_number == 0) if (!empty($CONTRIBUTION_PANEL_UNREAD['m' . $User->get_attribute('user_id')]) && $CONTRIBUTION_PANEL_UNREAD['m' . $User->get_attribute('user_id')] == 1) $contribution_number = -1; //On regarde dans ses groupes if ($contribution_number == 0) { foreach ($User->get_groups() as $id_group) { if (!empty($CONTRIBUTION_PANEL_UNREAD['g' . $id_group]) && $CONTRIBUTION_PANEL_UNREAD['g' . $id_group] == 1) { $contribution_number = -1; break; } } } } import('events/administrator_alert_service'); $tpl->assign_vars(array( 'C_ADMIN_AUTH' => $User->check_level(ADMIN_LEVEL), 'C_MODERATOR_AUTH' => $User->check_level(MODERATOR_LEVEL), 'C_UNREAD_CONTRIBUTION' => $contribution_number != 0, 'C_KNOWN_NUMBER_OF_UNREAD_CONTRIBUTION' => $contribution_number > 0, 'C_UNREAD_ALERT' => (bool)AdministratorAlertService::get_number_unread_alerts(), 'NUM_UNREAD_CONTRIBUTIONS' => $contribution_number, 'NUMBER_UNREAD_ALERTS' => AdministratorAlertService::get_number_unread_alerts(), 'IMG_PM' => $User->get_attribute('user_pm') > 0 ? 'new_pm.gif' : 'pm_mini.png', 'U_USER_PM' => TPL_PATH_TO_ROOT . '/member/pm' . url('.php?pm=' . $User->get_attribute('user_id'), '-' . $User->get_attribute('user_id') . '.php'), 'U_USER_ID' => url('.php?id=' . $User->get_attribute('user_id') . '&view=1', '-' . $User->get_attribute('user_id') . '.php?view=1'), 'MEMBER_ID'=>$User->get_attribute('user_id'), 'U_DISCONNECT' => HOST . DIR . '/member/member.php?disconnect=true&token=' . $Session->get_token(), 'L_NBR_PM' => ($User->get_attribute('user_pm') > 0 ? ($User->get_attribute('user_pm') . ' ' . (($User->get_attribute('user_pm') > 1) ? $LANG['message_s'] : $LANG['message'])) : $LANG['private_messaging']), 'L_PROFIL' => $LANG['profile'], 'L_ADMIN_PANEL' => $LANG['admin_panel'], 'L_MODO_PANEL' => $LANG['modo_panel'], 'L_PRIVATE_PROFIL' => $LANG['my_private_profile'], 'L_DISCONNECT' => $LANG['disconnect'], 'L_CONTRIBUTION_PANEL' => $LANG['contribution_panel'] )); } else { $tpl->assign_vars(array( 'C_USER_REGISTER' => (bool)$CONFIG_USER['activ_register'], 'L_REQUIRE_PSEUDO' => $LANG['require_pseudo'], 'L_REQUIRE_PASSWORD' => $LANG['require_password'], 'L_CONNECT' => $LANG['connect'], 'L_PSEUDO' => $LANG['pseudo'], 'L_PASSWORD' => $LANG['password'], 'L_AUTOCONNECT' => $LANG['autoconnect'], 'L_FORGOT_PASS' => $LANG['forget_pass'], 'L_REGISTER' => $LANG['register'], 'U_CONNECT' => (QUERY_STRING != '') ? '?' . str_replace('&', '&', QUERY_STRING) . '&' : '', 'U_REGISTER' => TPL_PATH_TO_ROOT . '/member/register.php' . SID )); } return $tpl->parse(); ?>
Et dans se même dossier /templates/ tu créer un connect.tpl avec :
Code TPL :
# IF C_USER_NOTCONNECTED #
<script type="text/javascript">
<!--
function check_connect(){
if(document.getElementById('login').value == "") {
alert("{L_REQUIRE_PSEUDO}");
return false;
}
if(document.getElementById('password').value == "") {
alert("{L_REQUIRE_PASSWORD}");
return false;
}
return true;
}
-->
</script>
<form action="{U_CONNECT}" method="post" onsubmit="return check_connect();">
<div align="center">
<p>
<label>{L_PSEUDO}
<input size="15" type="text" class="text" id="login" name="login" maxlength="25" /></label>
<label>{L_PASSWORD}
<input size="15" type="password" id="password" name="password" class="text" maxlength="30" /></label>
<label>{L_AUTOCONNECT} <input checked="checked" type="checkbox" name="auto" /></label>
</p>
<p>
<input type="hidden" name="token" value="{TOKEN}" />
<input type="submit" name="connect" value="{L_CONNECT}" class="submit" />
</p>
<p style="margin:0;margin-top:5px;">
# IF C_USER_REGISTER #
<a class="small_link" href="{PATH_TO_ROOT}/member/register.php"><img src="{PATH_TO_ROOT}/templates/{THEME}/images/register_mini.png" alt="" class="valign_middle" /> {L_REGISTER}</a>
# ENDIF #
<a class="small_link" href="{PATH_TO_ROOT}/member/forget.php"><img src="{PATH_TO_ROOT}/templates/{THEME}/images/forget_mini.png" alt="" class="valign_middle" /> {L_FORGOT_PASS}</a>
</p>
</div>
</form>
# ENDIF #
# IF C_USER_CONNECTED #
<div align="center">
<ul style="margin:0;padding:0;padding-left:4px;list-style-type:none;line-height:18px">
<li><img src="{PATH_TO_ROOT}/templates/{THEME}/images/admin/members_mini.png" alt="" class="valign_middle" /> <a href="{PATH_TO_ROOT}/member/member{U_USER_ID}" class="small_link">{L_PRIVATE_PROFIL}</a></li>
<li><img src="{PATH_TO_ROOT}/templates/{THEME}/images/{IMG_PM}" class="valign_middle" alt="" /> <a href="{U_USER_PM}" class="small_link">{L_NBR_PM}</a> </li>
# IF C_ADMIN_AUTH #
<li><img src="{PATH_TO_ROOT}/templates/{THEME}/images/admin/ranks_mini.png" alt="" class="valign_middle" /> <a href="{PATH_TO_ROOT}/admin/admin_index.php" class="small_link">{L_ADMIN_PANEL}
# IF C_UNREAD_ALERT #
({NUMBER_UNREAD_ALERTS})
# ENDIF #
</a></li>
# ENDIF #
# IF C_MODERATOR_AUTH #
<li><img src="{PATH_TO_ROOT}/templates/{THEME}/images/admin/modo_mini.png" alt="" class="valign_middle" /> <a href="{PATH_TO_ROOT}/member/moderation_panel.php" class="small_link">{L_MODO_PANEL}</a></li>
# ENDIF #
# IF C_UNREAD_CONTRIBUTION #
# IF C_KNOWN_NUMBER_OF_UNREAD_CONTRIBUTION #
<li><img src="{PATH_TO_ROOT}/templates/{THEME}/images/contribution_panel_mini_new.gif" alt="" class="valign_middle" /> <a href="{PATH_TO_ROOT}/member/contribution_panel.php" class="small_link">{L_CONTRIBUTION_PANEL} ({NUM_UNREAD_CONTRIBUTIONS})</a></li>
# ELSE #
<li><img src="{PATH_TO_ROOT}/templates/{THEME}/images/contribution_panel_mini_new.gif" alt="" class="valign_middle" /> <a href="{PATH_TO_ROOT}/member/contribution_panel.php" class="small_link">{L_CONTRIBUTION_PANEL}</a></li>
# ENDIF #
# ELSE #
<li><img src="{PATH_TO_ROOT}/templates/{THEME}/images/contribution_panel_mini.png" alt="" class="valign_middle" /> <a href="{PATH_TO_ROOT}/member/contribution_panel.php" class="small_link">{L_CONTRIBUTION_PANEL}</a></li>
# ENDIF #
<li><img src="{PATH_TO_ROOT}/templates/{THEME}/images/admin/home_mini.png" alt="" class="valign_middle" /> <a href="{U_DISCONNECT}" class="small_link">{L_DISCONNECT}</a></li>
</ul>
</div>
# ENDIF #Tiens moi au courant.
mika23 Membre non connecté
Booster Fronde
-
Booster Fronde
- Voir le profil du membre mika23
- Inscrit le : 21/12/2010
La partie connexion fonctionne impeccable, mais une fois les identifiants envoyés on reste sur la page connect.php

Est-il possible de rediriger directement vers l'index du site si la connexion est réussie ? (avec une redirection dans la partie "# IF C_USER_CONNECTED # " par exemple ?
Est ce que que peux suivre les instructions de ce tuto pour intégrer le formulaire de connexion dans le design du site?
Édité par mika23 Le 31/12/2010 à 11h28
ReidLos Membre non connecté
-
Modérateur
- Voir le profil du membre ReidLos
- Inscrit le : 27/02/2009
- Site internet
- Groupes :
-
Equipe Développement
tony Membre non connecté
Booster Mortier
-
Booster Mortier
- Voir le profil du membre tony
- Inscrit le : 11/11/2009
Et aussi (si c'est possible), est ce qu'on est obliger de mettre nos pages dans le module connect ? Moi j'aimerai mettre ces pages dans un dossier, ce dossier ce trouvera a la racine de mon FTP.
Merci.
Édité par tony Le 31/12/2010 à 12h48
mika23 Membre non connecté
Booster Fronde
-
Booster Fronde
- Voir le profil du membre mika23
- Inscrit le : 21/12/2010
connect/connect.php
Code :
<?php
//Path racine du site
defined('PATH_TO_ROOT') or define('PATH_TO_ROOT', '..');
//Chargement des fonctions: l'environnement général du portail
include_once('../kernel/begin.php');
//Titre de la page
define('TITLE', 'connexion');
//Chargement d'un fichier templates (facultatif)
$tpl = new Template('connect/connect.tpl');
//Inclusion du header
include_once('../kernel/header.php');
## Contenu de la page ##
global $User, $LANG, $CONFIG_USER, $CONTRIBUTION_PANEL_UNREAD, $ADMINISTRATOR_ALERTS, $Session;
import('core/menu_service');
if ($User->check_level(MEMBER_LEVEL)) {
//Si connecté on redirige direct sur l'accueil
redirect(get_start_page());
} else {
$tpl->assign_vars(array(
'C_USER_REGISTER' => (bool)$CONFIG_USER['activ_register'],
'L_REQUIRE_PSEUDO' => $LANG['require_pseudo'],
'L_REQUIRE_PASSWORD' => $LANG['require_password'],
'L_CONNECT' => $LANG['connect'],
'L_PSEUDO' => $LANG['pseudo'],
'L_PASSWORD' => $LANG['password'],
'L_AUTOCONNECT' => $LANG['autoconnect'],
'L_FORGOT_PASS' => $LANG['forget_pass'],
'L_REGISTER' => $LANG['register'],
'U_CONNECT' => (QUERY_STRING != '') ? '?' . str_replace('&', '&', QUERY_STRING) . '&' : '',
'U_REGISTER' => TPL_PATH_TO_ROOT . '/member/register.php' . SID
));
}
return $tpl->parse();
//Inclusion du Footer
include_once('../kernel/footer.php');
?>et le fichier connect/template/connect.tpl
Code :
# IF C_USER_NOTCONNECTED #
<script type="text/javascript">
<!--
function check_connect(){
if(document.getElementById('login').value == "") {
alert("{L_REQUIRE_PSEUDO}");
return false;
}
if(document.getElementById('password').value == "") {
alert("{L_REQUIRE_PASSWORD}");
return false;
}
return true;
}
-->
</script>
<form action="{U_CONNECT}" method="post" onsubmit="return check_connect();">
<div align="center">
<p>
<label>{L_PSEUDO}
<input size="15" type="text" class="text" id="login" name="login" maxlength="25" /></label>
<label>{L_PASSWORD}
<input size="15" type="password" id="password" name="password" class="text" maxlength="30" /></label>
<label>{L_AUTOCONNECT} <input checked="checked" type="checkbox" name="auto" /></label>
</p>
<p>
<input type="hidden" name="token" value="{TOKEN}" />
<input type="submit" name="connect" value="{L_CONNECT}" class="submit" />
</p>
<p style="margin:0;margin-top:5px;">
# IF C_USER_REGISTER #
<a class="small_link" href="{PATH_TO_ROOT}/member/register.php"><img src="{PATH_TO_ROOT}/templates/{THEME}/images/register_mini.png" alt="" class="valign_middle" /> {L_REGISTER}</a>
# ENDIF #
<a class="small_link" href="{PATH_TO_ROOT}/member/forget.php"><img src="{PATH_TO_ROOT}/templates/{THEME}/images/forget_mini.png" alt="" class="valign_middle" /> {L_FORGOT_PASS}</a>
</p>
</div>
</form>
# ENDIF #
tony Membre non connecté
Booster Mortier
-
Booster Mortier
- Voir le profil du membre tony
- Inscrit le : 11/11/2009
Donc je fait une petite citation de la demande que javait fait ci dessus (si un dev veut bien m'aider, sa serait hyper gentil de sa part).
tony :
Salut, je m'intéresse beaucoup a ce post, est t'il possible de créer des pages mes sans l'environnement graphique de pbt, je voudrai juste mettre du texte, des liens, des images, du HTML sur ces pages est (ci possible) le module connect en haut de page ?
Et aussi (si c'est possible), est ce qu'on est obliger de mettre nos pages dans le module connect ? Moi j'aimerai mettre ces pages dans un dossier, ce dossier ce trouvera a la racine de mon FTP.
Merci.
Et aussi (si c'est possible), est ce qu'on est obliger de mettre nos pages dans le module connect ? Moi j'aimerai mettre ces pages dans un dossier, ce dossier ce trouvera a la racine de mon FTP.
Merci.
Merci.
ReidLos Membre non connecté
-
Modérateur
- Voir le profil du membre ReidLos
- Inscrit le : 27/02/2009
- Site internet
- Groupes :
-
Equipe Développement
tony Membre non connecté
Booster Mortier
-
Booster Mortier
- Voir le profil du membre tony
- Inscrit le : 11/11/2009
Merci.
ReidLos Membre non connecté
-
Modérateur
- Voir le profil du membre ReidLos
- Inscrit le : 27/02/2009
- Site internet
- Groupes :
-
Equipe Développement
tony Membre non connecté
Booster Mortier
-
Booster Mortier
- Voir le profil du membre tony
- Inscrit le : 11/11/2009
Code PHP :
$tpl = new Template('connect/connect.tpl');
Et dans le dossier pokemon je créer un dossier templates et dans ce dossier templates je mes le connect.tpl ?
Une autre question, le connect.php et connect.tpl, je peut changer le nom de ces fichiers ? mettre par exemple pokemon.php et pokemon.tpl ?
Vraiment merci de ton aide reidlos.
Édité par tony Le 01/01/2011 à 22h56
ReidLos Membre non connecté
-
Modérateur
- Voir le profil du membre ReidLos
- Inscrit le : 27/02/2009
- Site internet
- Groupes :
-
Equipe Développement
Peter Parker Membre non connecté
Booster Bazooka
-
Booster Bazooka
- Voir le profil du membre Peter Parker
- Inscrit le : 01/05/2010
- Site internet

ReidLos Membre non connecté
-
Modérateur
- Voir le profil du membre ReidLos
- Inscrit le : 27/02/2009
- Site internet
- Groupes :
-
Equipe Développement
Peter Parker Membre non connecté
Booster Bazooka
-
Booster Bazooka
- Voir le profil du membre Peter Parker
- Inscrit le : 01/05/2010
- Site internet

Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie