Salut à tous,
ça fait un moment que j'ai le plugin register fluxBB pour synchro les utilisateurs de ma galerie avec mon forum.
Je voulais faire les modifications de register et login.php pour que mes utilisateurs voulant s'inscrire sur le forum soient redirigés vers la galerie.
Cependant j'obtient ce message d'erreur quand je veux m'inscrire
Parse error: syntax error, unexpected '/' in /mnt/113/sdb/a/4/achr68/forum/login.php on line 286
De plus si je veux me log ça r'envoi bien à la galerie mais la page ne s'affiche pas.
Serais ce car je suis chez Free?
Hors ligne
Bonsoir,
Je regarde çà dès que possible.
Hors ligne
j'avais fais les modifs, la je suis revenu a la config par défaut.
Ps: une différence entre la manip décrite et la réalité que j'ai remarqué: <a href="login.php?action=forget" tabindex="5"><?php echo $lang_login['Forgotten pass']</a> moi j'avais un 6 dans ma config, j'ai essayé 5 ou 6 pas de changement.
Merci
Hors ligne
Tout dépend de la version de FluxBB utilisée. Chez moi, j'ai la dernière 1.5.1 et je me suis aperçu qu'il y a des trucs qui ne fonctionnent plus comme avant. J'espère avoir le temps de jeter un oeil ce soir.
Hors ligne
Je suppose qu'il s'agit du forum http://achr68.free.fr/forum ?
J'ai fait une tentative d'inscription et j'arrive sur "Ces forums n'acceptent pas de nouveaux utilisateurs". Normal puisque tu es revenu sur les fichiers par défaut de FluxBB.
Peux-tu modifier à nouveau ton fichier ../forum/lang/french/register.php pour que je puisse me rendre compte du problème ?
A la place de :
'No new regs' => 'Ces forums n\'acceptent pas de nouveaux utilisateurs.',
Il faut mettre :
'No new regs' => '<a href="http://[chemin vers la galerie]/register.php" > Cliquez ici pour vous inscrire </a>',
Parce que, pour moi, je n'ai pas trouvé de problèmes pendant mes tests (les trucs qui ne fonctionnaient plus depuis mon forum 1.5.1 étaient dus à une erreur de ma part lors de la mise à jour).
Hors ligne
Avant EDIT: Il semblerait que mes cours tardifs à la Fac auront eu raison de ma vigilance l'autre jour.
En fait tout marche, j'ai refais les manip et plus de problème...
Mais ça me semble bizar de m'être trompé sur les 2 fichiers.
Encore désolé du dérangement.
Merci
PS: j'ai voulu me deconnecter du forum et j'ai de nouveau eu
Parse error: syntax error, unexpected '/' in /mnt/113/sdb/a/4/achr68/forum/login.php on line 286
Maintenant même en voulant me connecter sur le forum ça me le fait.
Alors que pas de problème au 1er essai.
Dernière modification par thomorph (2012-11-22 16:38:35)
Hors ligne
J'ai fait un essai d'inscription en passant par ton forum et, quand j'ai voulu ensuite m'identifier, j'ai eu l'erreur que tu mentionnes. Mais je pense que le problème ne vient pas du plugin Register_FluxBB mais de ton installation de FluxBB.
Vérifies la ligne 286 de ton fichier ./forum/login.php. Elle devrait contenir ceci :
<p class="actions"><span><a href="register.php" tabindex="5"><?php echo $lang_login['Not registered'] ?></a></span> <span><a href="login.php?action=forget" tabindex="6"><?php echo $lang_login['Forgotten pass'] ?></a></span></p>
Si c'est OK, alors vérifies ton fichier de traduction ./forum/lang/french/login.php. Il doit y avoir une coquille dedans qui génère un "/" quelque part. Le mieux serait de réinjecter le fichier login.php du package de langue FR d'origine que tu peux récupérer ici : http://fluxbb.org/resources/translation … 1.4.8.zip. Mais tu perdras les éventuelles modifs que tu y auras apporté.
Hors ligne
[HS] Je pense à un truc en voyant ton forum : Il n'est pas recommandé d'afficher la version de FluxBB. Comme c'est une version un peu ancienne, elle peut comporter des failles de sécurité connues et tu facilites le boulot d'un éventuel pirate ;-) [/HS]
Hors ligne
Mais la ligne de code que tu m'as donné 286 c'est la que je fais la 2e modif du fichier non? donc je dois avoir
<?php /** * Copyright (C) 2008-2012 FluxBB * based on code by Rickard Andersson copyright (C) 2002-2008 PunBB * License: http://www.gnu.org/licenses/gpl.html GPL version 2 or higher */ if (isset($_GET['action'])) define('PUN_QUIET_VISIT', 1); define('PUN_ROOT', dirname(__FILE__).'/'); require PUN_ROOT.'include/common.php'; // Load the login.php language file require PUN_ROOT.'lang/'.$pun_user['language'].'/login.php'; $action = isset($_GET['action']) ? $_GET['action'] : null; if (isset($_POST['form_sent']) && $action == 'in') { $form_username = pun_trim($_POST['req_username']); $form_password = pun_trim($_POST['req_password']); $save_pass = isset($_POST['save_pass']); $username_sql = ($db_type == 'mysql' || $db_type == 'mysqli' || $db_type == 'mysql_innodb' || $db_type == 'mysqli_innodb') ? 'username=\''.$db->escape($form_username).'\'' : 'LOWER(username)=LOWER(\''.$db->escape($form_username).'\')'; $result = $db->query('SELECT * FROM '.$db->prefix.'users WHERE '.$username_sql) or error('Unable to fetch user info', __FILE__, __LINE__, $db->error()); $cur_user = $db->fetch_assoc($result); $authorized = false; if (!empty($cur_user['password'])) { $form_password_hash = pun_hash($form_password); // Will result in a SHA-1 hash // If there is a salt in the database we have upgraded from 1.3-legacy though havent yet logged in if (!empty($cur_user['salt'])) { if (sha1($cur_user['salt'].sha1($form_password)) == $cur_user['password']) // 1.3 used sha1(salt.sha1(pass)) { $authorized = true; $db->query('UPDATE '.$db->prefix.'users SET password=\''.$form_password_hash.'\', salt=NULL WHERE id='.$cur_user['id']) or error('Unable to update user password', __FILE__, __LINE__, $db->error()); } } // If the length isn't 40 then the password isn't using sha1, so it must be md5 from 1.2 else if (strlen($cur_user['password']) != 40) { if (md5($form_password) == $cur_user['password']) { $authorized = true; $db->query('UPDATE '.$db->prefix.'users SET password=\''.$form_password_hash.'\' WHERE id='.$cur_user['id']) or error('Unable to update user password', __FILE__, __LINE__, $db->error()); } } // Otherwise we should have a normal sha1 password else $authorized = ($cur_user['password'] == $form_password_hash); } if (!$authorized) message($lang_login['Wrong user/pass'].'<a href="../achr68.free.fr/piwigo/password.php">'.$lang_login['Forgotten pass'].'</a>'); // Update the status if this is the first time the user logged in if ($cur_user['group_id'] == PUN_UNVERIFIED) { $db->query('UPDATE '.$db->prefix.'users SET group_id='.$pun_config['o_default_user_group'].' WHERE id='.$cur_user['id']) or error('Unable to update user status', __FILE__, __LINE__, $db->error()); // Regenerate the users info cache if (!defined('FORUM_CACHE_FUNCTIONS_LOADED')) require PUN_ROOT.'include/cache.php'; generate_users_info_cache(); } // 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() + 1209600 : time() + $pun_config['o_timeout_visit']; pun_setcookie($cur_user['id'], $form_password_hash, $expire); // Reset tracked topics set_tracked_topics(null); redirect(htmlspecialchars($_POST['redirect_url']), $lang_login['Login redirect']); } else if ($action == 'out') { if ($pun_user['is_guest'] || !isset($_GET['id']) || $_GET['id'] != $pun_user['id'] || !isset($_GET['csrf_token']) || $_GET['csrf_token'] != pun_hash($pun_user['id'].pun_hash(get_remote_address()))) { header('Location: index.php'); exit; } // Remove user from "users online" list $db->query('DELETE FROM '.$db->prefix.'online WHERE user_id='.$pun_user['id']) or error('Unable to delete from online list', __FILE__, __LINE__, $db->error()); // Update last_visit (make sure there's something to update it with) if (isset($pun_user['logged'])) $db->query('UPDATE '.$db->prefix.'users SET last_visit='.$pun_user['logged'].' WHERE id='.$pun_user['id']) or error('Unable to update user visit data', __FILE__, __LINE__, $db->error()); pun_setcookie(1, pun_hash(uniqid(rand(), true)), time() + 31536000); redirect('index.php', $lang_login['Logout redirect']); } else if ($action == 'forget' || $action == 'forget_2') { if (!$pun_user['is_guest']) header('Location: index.php'); if (isset($_POST['form_sent'])) { // Start with a clean slate $errors = array(); require PUN_ROOT.'include/email.php'; // Validate the email address $email = strtolower(trim($_POST['req_email'])); if (!is_valid_email($email)) $errors[] = $lang_common['Invalid email']; // Did everything go according to plan? if (empty($errors)) { $result = $db->query('SELECT id, username, last_email_sent FROM '.$db->prefix.'users WHERE email=\''.$db->escape($email).'\'') or error('Unable to fetch user info', __FILE__, __LINE__, $db->error()); if ($db->num_rows($result)) { // Load the "activate password" template $mail_tpl = trim(file_get_contents(PUN_ROOT.'lang/'.$pun_user['language'].'/mail_templates/activate_password.tpl')); // The first row contains the subject $first_crlf = strpos($mail_tpl, "\n"); $mail_subject = trim(substr($mail_tpl, 8, $first_crlf-8)); $mail_message = trim(substr($mail_tpl, $first_crlf)); // Do the generic replacements first (they apply to all emails sent out here) $mail_message = str_replace('<base_url>', get_base_url().'/', $mail_message); $mail_message = str_replace('<board_mailer>', $pun_config['o_board_title'], $mail_message); // Loop through users we found while ($cur_hit = $db->fetch_assoc($result)) { if ($cur_hit['last_email_sent'] != '' && (time() - $cur_hit['last_email_sent']) < 3600 && (time() - $cur_hit['last_email_sent']) >= 0) message($lang_login['Email flood'], true); // Generate a new password and a new password activation code $new_password = random_pass(8); $new_password_key = random_pass(8); $db->query('UPDATE '.$db->prefix.'users SET activate_string=\''.pun_hash($new_password).'\', activate_key=\''.$new_password_key.'\', last_email_sent = '.time().' WHERE id='.$cur_hit['id']) or error('Unable to update activation data', __FILE__, __LINE__, $db->error()); // Do the user specific replacements to the template $cur_mail_message = str_replace('<username>', $cur_hit['username'], $mail_message); $cur_mail_message = str_replace('<activation_url>', get_base_url().'/profile.php?id='.$cur_hit['id'].'&action=change_pass&key='.$new_password_key, $cur_mail_message); $cur_mail_message = str_replace('<new_password>', $new_password, $cur_mail_message); pun_mail($email, $mail_subject, $cur_mail_message); } message($lang_login['Forget mail'].' <a href="mailto:'.$pun_config['o_admin_email'].'">'.$pun_config['o_admin_email'].'</a>.', true); } else $errors[] = $lang_login['No email match'].' '.htmlspecialchars($email).'.'; } } $page_title = array(pun_htmlspecialchars($pun_config['o_board_title']), $lang_login['Request pass']); $required_fields = array('req_email' => $lang_common['Email']); $focus_element = array('request_pass', 'req_email'); define ('PUN_ACTIVE_PAGE', 'login'); require PUN_ROOT.'header.php'; // If there are errors, we display them if (!empty($errors)) { ?> <div id="posterror" class="block"> <h2><span><?php echo $lang_login['New password errors'] ?></span></h2> <div class="box"> <div class="inbox error-info"> <p><?php echo $lang_login['New passworderrors info'] ?></p> <ul class="error-list"> <?php foreach ($errors as $cur_error) echo "\t\t\t\t".'<li><strong>'.$cur_error.'</strong></li>'."\n"; ?> </ul> </div> </div> </div> <?php } ?> <div class="blockform"> <h2><span><?php echo $lang_login['Request pass'] ?></span></h2> <div class="box"> <form id="request_pass" method="post" action="login.php?action=forget_2" onsubmit="this.request_pass.disabled=true;if(process_form(this)){return true;}else{this.request_pass.disabled=false;return false;}"> <div class="inform"> <fieldset> <legend><?php echo $lang_login['Request pass legend'] ?></legend> <div class="infldset"> <input type="hidden" name="form_sent" value="1" /> <label class="required"><strong><?php echo $lang_common['Email'] ?> <span><?php echo $lang_common['Required'] ?></span></strong><br /><input id="req_email" type="text" name="req_email" size="50" maxlength="80" /><br /></label> <p><?php echo $lang_login['Request pass info'] ?></p> </div> </fieldset> </div> <p class="buttons"><input type="submit" name="request_pass" value="<?php echo $lang_common['Submit'] ?>" /><?php if (empty($errors)): ?> <a href="javascript:history.go(-1)"><?php echo $lang_common['Go back'] ?></a><?php endif; ?></p> </form> </div> </div> <?php require PUN_ROOT.'footer.php'; } if (!$pun_user['is_guest']) header('Location: index.php'); // Try to determine if the data in HTTP_REFERER is valid (if not, we redirect to index.php after login) if (!empty($_SERVER['HTTP_REFERER'])) { $referrer = parse_url($_SERVER['HTTP_REFERER']); // Remove www subdomain if it exists if (strpos($referrer['host'], 'www.') === 0) $referrer['host'] = substr($referrer['host'], 4); // Make sure the path component exists if (!isset($referrer['path'])) $referrer['path'] = ''; $valid = parse_url(get_base_url()); // Remove www subdomain if it exists if (strpos($valid['host'], 'www.') === 0) $valid['host'] = substr($valid['host'], 4); // Make sure the path component exists if (!isset($valid['path'])) $valid['path'] = ''; if ($referrer['host'] == $valid['host'] && preg_match('%^'.preg_quote($valid['path'], '%').'/(.*?)\.php%i', $referrer['path'])) $redirect_url = $_SERVER['HTTP_REFERER']; } if (!isset($redirect_url)) $redirect_url = 'index.php'; $page_title = array(pun_htmlspecialchars($pun_config['o_board_title']), $lang_common['Login']); $required_fields = array('req_username' => $lang_common['Username'], 'req_password' => $lang_common['Password']); $focus_element = array('login', 'req_username'); define('PUN_ACTIVE_PAGE', 'login'); require PUN_ROOT.'header.php'; ?> <div class="blockform"> <h2><span><?php echo $lang_common['Login'] ?></span></h2> <div class="box"> <form id="login" method="post" action="login.php?action=in" onsubmit="return process_form(this)"> <div class="inform"> <fieldset> <legend><?php echo $lang_login['Login legend'] ?></legend> <div class="infldset"> <input type="hidden" name="form_sent" value="1" /> <input type="hidden" name="redirect_url" value="<?php echo pun_htmlspecialchars($redirect_url) ?>" /> <label class="conl required"><strong><?php echo $lang_common['Username'] ?> <span><?php echo $lang_common['Required'] ?></span></strong><br /><input type="text" name="req_username" size="25" maxlength="25" tabindex="1" /><br /></label> <label class="conl required"><strong><?php echo $lang_common['Password'] ?> <span><?php echo $lang_common['Required'] ?></span></strong><br /><input type="password" name="req_password" size="25" tabindex="2" /><br /></label> <div class="rbox clearb"> <label><input type="checkbox" name="save_pass" value="1" tabindex="3" /><?php echo $lang_login['Remember me'] ?><br /></label> </div> <p class="clearb"><?php echo $lang_login['Login info'] ?></p> <p class="actions"><span><a href="register.php" tabindex="5"><?php echo $lang_login['Not registered'] ?></a></span> <span><a href="../achr68.free.fr/piwigo/password.php" tabindex="5"><?php echo $lang_login['Forgotten pass']</a></span></p> </div> </fieldset> </div> <p class="buttons"><input type="submit" name="login" value="<?php echo $lang_common['Login'] ?>" tabindex="4" /></p> </form> </div> </div> <?php require PUN_ROOT.'footer.php';
Dernière modification par thomorph (2012-11-22 20:45:12)
Hors ligne
Ok, j'ai compris ce qui ne va pas : Il y a une erreur dans l'exemple que j'ai donné dans la partie "A propos de l'enregistrement d'utilisateur sur le forum FluxBB " pour effectuer les modifications dans les fichiers de FluxBB.
Au lieu de :
à la ligne 216:
<a href="login.php?action=forget" tabindex="5"><?php echo $lang_login['Forgotten pass']</a>
par :
<a href="../[VotreRacineDePiwigo]/password.php" tabindex="5"><?php echo $lang_login['Forgotten pass']</a>
il faut lire :
à la ligne 216:
<a href="login.php?action=forget" tabindex="5"><?php echo $lang_login['Forgotten pass']</a>
par :
<a href="../[VotreRacineDePiwigo]/password.php" tabindex="5"><?php echo $lang_login['Forgotten pass'] ?></a>
J'ai simplement oublié de fermer la balise php "?>". C'est une erreur grossière que je n'ai pas reproduite dans mes galeries et forums de test. Etrange que personne ne s'en soit rendu compte avant, depuis le temps que c'est ainsi...
Donc, pour corriger ton problème, dans ton fichier ./forum/login.php, remplace :
<span><a href="../achr68.free.fr/piwigo/password.php" tabindex="5"><?php echo $lang_login['Forgotten pass']</a></span></p>
Par :
<span><a href="../achr68.free.fr/piwigo/password.php" tabindex="5"><?php echo $lang_login['Forgotten pass'] ?></a></span></p>
Et çà devrait rouler. ;-)
De mon côté, je vais publier une correction du plugin.
Hors ligne
Des nouveautés, il y en a toujours quelques unes. Mais il y a surtout des failles de sécurités bouchées.
Rien que pour çà, je suis les mises à jour de FluxBB de très près.
En plus, la version 2.x (tant attendue !) va finir par arriver avec, cette fois, un lot important de changements. Pour la migration, plus il y aura d'écarts et plus cela risque d'être compliqué.
Hors ligne
Peux-tu passer le topic en résolu si tout est OK pour toi, stp ?
Hors ligne