Aller au contenu

Erreur mysql - impossible de créer des modos


Sujets conseillés

Posté (modifié)

Bonjour à tous

Voilà j'ai un problème qui me prend la tête depuis des jours. Lorsque je veux mettre un membre "modérateur" j'ai ce message

Couldn't update private forum permissions

DEBUG MODE

SQL Error : 1064 You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ' 1)' at line 2

INSERT INTO phpbb_auth_access (forum_id, group_id, auth_mod) VALUES (3, , 1)

Line : 391

File : admin_ug_auth.php

Je suis passé de la prémod Arkamod (phpbb) à un forum fait "main" avec plein de mod (tjs phpbb) et pour basculer la base j'ai tout d'abord enlever les tables des MODS non présent sur mon nouveau forum de cette base Arkamod, puis j'ai transferer toute la base sans la structure (donc que les données uniquement) comme conseillé sur le site de la prémod (pour eviter les incompatibilité).

Mais voilà aujourd'hui impossible de mettre des modérateurs... en fait non pas tout a fait et cé ca qui est bizarre. En fait je peux mettre certain membres (et bien sur sur 3 modo voulu yen as que 1 que j'ai put mettre)!

=> J'ai verifier comme il est dit sur un forum pour une personne avec un cas identique ou il etait dit

Citation:

INSERT INTO phpbb_auth_access (forum_id, group_id, auth_mod) VALUES (1, , 1)

Si on relit bien ton code, c'est évident que tu as une erreur de syntaxe car aucun group_id n'est précisé (comme l'a fait remarqué nco dès le départ). Ton code doit alors devenir :

=> Pourtant moi sur ma base dans phpbb_auth_access (forum_id, group_id, auth_mod) j'ai une valeure de précisé et j'ai même essayer de la changer :nono:

Donc d'ou peux venir le pb ? je suis dessus depuis 2 jours non stop et je comprend rien j'ai essayer des tones de manip et j'ai meme planter mon site (puisque évidement après la bascule je l'ai ré-ouvert et que les membres y postent... et j'ai planter 2 jours de posts)bref,

Je ne sais pas comment m'en sortit puisque je comprendrais si ct un probleme pour tout les membres, mais là non et plus étrange c'est un pb aléatoire, je pensais que ca concernait les membres de l'ancien site, mais non certain de l'ancien peuvent etre modo, d'autre non et inversement avec ceux inscrit depuis la bascule....

J'ai essayer de changer les valeur pour avoir pour la valeur group_id "0" dans les tables phpbb_auth_access, phpbb_groups et phpbb_users_groups ou mettre auto_incriment... mais rien n'y fait

Voilà j'espère avoir suffisament détaillé le pb et que l'on peux venir a mon aide... :(:(

:arrow: Ps: j'ai qqs petites questions concernant certaines tables, car en fouillant un peu je me suis demandé en fait a quoi correspond cette table phpbb_auth_acces

de plus la table phpbb_groups doit-elle contenir le même nombre que phpbb_users et phpbb_users_groups parceque si oui ce n'est pas mon cas :?

Merci de votre aide et n'hésiter pas a me demander des choses, même si je n'y comprend rien je ferais de mon mieux

Modifié par Miguel
Posté (modifié)

Bon alors j'ai trouver finalement un fix qui se trouve sur lesite officiel de phpbb

Si vous avez cette erreur en essayant de mettre à jour vos permissions ou en mettant un modérateur , voici ce qu'il faut faire :

1 / Créer un fichier fix.php, et placer ce code dans ce fichier :

<?php
//***** check users and user groups ****//

define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
include($phpbb_root_path . 'includes/functions_search.'.$phpEx);

// Start session management
$userdata = session_pagestart($user_ip, PAGE_SEARCH);
init_userprefs($userdata);
// End session management

$sql = "SELECT user_id, username
FROM " . USERS_TABLE ."
WHERE user_id > 0";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not obtain user list', '', __LINE__, __FILE__, $sql);
}

$liste ='';
while ( $row = $db->sql_fetchrow($result) )
{
$username = $row['username'];
$user_id = $row['user_id'];
$usergroup = '';

$sql1 = "SELECT ug.group_id
FROM " . USER_GROUP_TABLE ." ug, ". GROUPS_TABLE. " g
WHERE ug.user_id = $user_id
AND ug.group_id = g.group_id
AND g.group_single_user = 1
";

if ( ($result1 = $db->sql_query($sql1)) )
{
$row1 = $db->sql_fetchrow($result1);
$usergroup =( ( $row1['group_id'] != '' ) ? $row1['group_id'] : 'User has no user group'.$row1 );

}

if (!($row1['group_id'] != ''))
{

$sql2 = "SELECT MAX(group_id) AS total
FROM " . GROUPS_TABLE;
if ( !($result2 = $db->sql_query($sql2)) )
{
message_die(GENERAL_ERROR, 'Could not obtain next group_id information', '', __LINE__, __FILE__, $sq2l);
}

if ( !($row2 = $db->sql_fetchrow($result2)) )
{
message_die(GENERAL_ERROR, 'Could not obtain next group_id information', '', __LINE__, __FILE__, $sql2);
}
$group_id = $row2['total'] + 1;


$sql3 = "INSERT INTO " . GROUPS_TABLE . " (group_id, group_name, group_description, group_single_user, group_moderator)
VALUES ($group_id, '', 'Personal User', 1, 0)";
if ( !($result3 = $db->sql_query($sql3, BEGIN_TRANSACTION)) )
{
message_die(GENERAL_ERROR, 'Could not insert data into groups table', '', __LINE__, __FILE__, $sql3);
}

$sql4 = "INSERT INTO " . USER_GROUP_TABLE . " (user_id, group_id, user_pending)
VALUES ($user_id, $group_id, 0)";
if( !($result4 = $db->sql_query($sql4, END_TRANSACTION)) )
{
message_die(GENERAL_ERROR, 'Could not insert data into user_group table', '', __LINE__, __FILE__, $sql4);
}


$usergroup = $usergroup.', adding user group '.$group_id;
}


$liste .= ( ( $liste != '' ) ? '<br> ' : '' ) . $username.' <b>'.$usergroup.'</b>';
}

message_die(GENERAL_MESSAGE,'Users:<br>'.$liste);

?>

2 / Uploader ce fichier a la racine de votre forum .

3 / A l'aide de votre navigateur appeler ce fichier ( http://www.votresite.com/dossier_forum/fix.php )

Veillez a bien respecter l'aborescence des repertoires bien sur

Je l'ai fait et ca fonctionne très bien pour moi.... en espérant que cela puisse servir a qqn

@ ++

Modifié par Portekoi
  • 4 months later...
Posté

Un grand merci pour l'explication !

J'ai exactement le même problème mise a part un petit détail (en gras dans le citation ci-dessous) Désolé je n'ai aucune connaissance là dessus, et donc j'aurai voulu savoir si je pourrai le faire(Crée le fichier fix.php....etc) en tant qu'Administratrice (Le webmaker étant absent pour le moment) , merci d'avance !

Couldn't update private forum permissions

DEBUG MODE

SQL Error : 1064 You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ' 1)' at line 2

INSERT INTO phpbb_auth_access (forum_id, group_id, auth_mod) VALUES (3, , 1)

Line : 390

File : admin_ug_auth.php

  • 3 semaines plus tard...
Posté (modifié)
Un grand merci pour l'explication !

J'ai exactement le même problème mise a part un petit détail (en gras dans le citation ci-dessous) Désolé je n'ai aucune connaissance là dessus, et donc j'aurai voulu savoir si je pourrai le faire(Crée le fichier fix.php....etc) en tant qu'Administratrice (Le webmaker étant absent pour le moment) , merci d'avance !

Pour la ligne c'est normal il se peux que des lignes de codes soient ajouter par votre forum (ou mods installés).

En ce qui concerne la création du fichier fix.php et son execution, il faut avoir acces au ftp pour créer ce fichier et l'y envoyer car lancer l'execution du fichier peut etre fait depuis un compte admin classique.

Modifié par Miguel

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...