Les archives de FluxBB.fr
Vous n'êtes pas identifié(e).
Pages : 1
Bonjour,
DOnc voila, je voudrais créer un petit code SQL, qui s'installe dans la base de donnée comme l'installation d'une mode, mais celle-ci permettra d'insèrer un compte Administrateur.
<?php
/***********************************************************************/
// Some info about your mod.
$mod_title = 'Recuperation.php';
$mod_version = '2.0.0';
$release_date = '2006-11-28';
$author = 'Slam2';
$author_email = 'no@mail.com';
// Versions of PunBB this mod was created for. Minor variations (i.e. 1.2.4 vs 1.2.5) will be allowed, but a warning will be displayed.
$punbb_versions = array('1.2.16');
// Set this to false if you haven't implemented the restore function (see below)
$mod_restore = false;
// This following function will be called when the user presses the "Install" button
function install()
{
global $db, $db_type, $pun_config;
switch ($db_type)
{
case 'mysql':
case 'mysqli':
default:
$db->query("INSERT INTO`".$db->prefix."users` (
(3, 1, 'slam2', '7958ef87d4b87f77357716ad920a20d5fb155251', 'private@hotmail.com', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 1, 1, 0, 1, 1, 1, 1, 1, 0, 'French', 'Mon_Theme', 75, 1198866815, 1195983830, '127.0.0.1', 1199101908, NULL, NULL, NULL, 1, 1, 1, '1', '5/18/1999');
PRIMARY KEY (`id`))") or error('Unable to alter the config table', __FILE__, __LINE__, $db->error() );
break;
}
}
/***********************************************************************/Ce que je désire savoir, c'est si mon code SQL qui ajoutera mes variables dans la Base de donné Users et valide ! Car je ne suis pas Pro de ce coté !! la !
Merci beaucoup !
AMicalement Slam2
Hors ligne
Salut, on ne connaît pas ta base de données (les champs + leur ordre si t'as rajouté des mods), donc difficile de répondre.
Par contre, le premier est l'id de l'utilisateur, donc là tu vas écraser l'id 3 (si mysql te laisse faire mais j'en suis pas certain...) à chaque fois.
et il manque un VALUES
Dernière modification par PascL (31-12-2007 15:20:42)
Bouh !
StarShip Renaissance
Hors ligne
Merci de ta réponse !! voila ce que sa donne :
$db->query("INSERT INTO`".$db->prefix."users` (`id`, `group_id`, `username`, `password`, `email`, `title`, `realname`, `url`, `jabber`, `icq`, `msn`, `aim`, `yahoo`, `location`, `use_avatar`, `signature`, `disp_topics`, `disp_posts`, `email_setting`, `save_pass`, `notify_with_post`, `show_smilies`, `show_img`, `show_img_sig`, `show_avatars`, `show_sig`, `timezone`, `language`, `style`, `num_posts`, `last_post`, `registered`, `registration_ip`, `last_visit`, `admin_note`, `activate_string`, `activate_key`, `use_pm`, `popup_pm`, `notify_mp`, `malefemale`, `birthdate`)
VALUES(3, 1, 'slam2', '5958ef87d4b876f7735416adgfd0a20d5fb155251', 'snacks59@hotmail.com', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 1, 1, 0, 1, 1, 1, 1, 1, 0, 'French', 'France-Ados', 75, 1198866815, 1195983830, '127.0.0.1', 1199101908, NULL, NULL, NULL, 1, 1, 1, '1', '5/18/1989');
PRIMARY KEY (`id`))") or error('Unable to alter the config table', __FILE__, __LINE__, $db->error());Je ne vois pas comment faire pour évité qu'il écrase le compte :S !!
Mais au final je me retrouve avec ceci : Database reported: 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 '; PRIMARY KEY (`id`))' at line 2 (Errno: 1064)
Dernière modification par slam2 (31-12-2007 15:27:48)
Hors ligne
Ah désolé pas fait attention à la fin de ton code, faut enlever le primary key pour que ça donne ça :
$db->query("INSERT INTO `".$db->prefix."users` (`id`, `group_id`, `username`, `password`, `email`, `title`, `realname`, `url`, `jabber`, `icq`, `msn`, `aim`, `yahoo`, `location`, `use_avatar`, `signature`, `disp_topics`, `disp_posts`, `email_setting`, `save_pass`, `notify_with_post`, `show_smilies`, `show_img`, `show_img_sig`, `show_avatars`, `show_sig`, `timezone`, `language`, `style`, `num_posts`, `last_post`, `registered`, `registration_ip`, `last_visit`, `admin_note`, `activate_string`, `activate_key`, `use_pm`, `popup_pm`, `notify_mp`, `malefemale`, `birthdate`) VALUES (3, 1, 'slam2', '5958ef87d4b876f7735416adgfd0a20d5fb155251', 'snacks59@hotmail.com', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 1, 1, 0, 1, 1, 1, 1, 1, 0, 'French', 'France-Ados', 75, 1198866815, 1195983830, '127.0.0.1', 1199101908, NULL, NULL, NULL, 1, 1, 1, '1', '5/18/1989')") or error('Unable to alter the config table', __FILE__, __LINE__, $db->error());Par contre, comme j'ai dit plus haut, Mysql devrait t'empêcher d'insérer ça (puisque l'id3 existe déjà normalement).
Après, ça dépend le but de ta mod (perso, je vois pas à quoi ça peut servir...).
Si c'est de mettre à jour un compte existant, c'est pas une requête INSERT qu'il faut utiliser mais UPDATE (et la syntaxe est différente il suffit pas de changer un mot).
Si c'est en créer un nouveau, tu enlèves dans mon code [c]`id`, [/c] et [c]3,[/c] et ça créera un nouveau compte admin (avec un id qui n'existe pas)
Dernière modification par PascL (31-12-2007 16:19:56)
Bouh !
StarShip Renaissance
Hors ligne
Pour la syntaxe, il suffit de supprimer ce "PRIMARY..." qui ne sert à rien (les index sont de toutes façons déclarés lors de la création de la table).
Mais comme signalé plus haut, pour que ça fonctionne, il faut que l'utilisateur d'id 3 n'existe pas dans la base (sinon tu vas te retrouver avec une erreur "duplicate index").
Pour le remplacer, il faut faire une requête UPDATE (syntaxe légèrement différente, voir le manual mySql).
Et sur le fond, je ne comprends pas à quoi cela peut servir de "ré-initialiser" un compte utilisateur (mais peut-être en as-tu l'utilité pour une config spéciale...)
Edit : grillé par Pascl, d'où 2 réponses pour le prix d'une 
Dernière modification par Mpok (31-12-2007 16:25:05)
Hors ligne
Pages : 1