Le site des utilisateurs francophones de FluxBB.
Vous n'êtes pas identifié(e).
Bonjour,
Premièrement, un peu de mes nouvelles : La version de mon site sur lequel je travaillais il y a plusieurs mois et dont j'étais venue d'ailleurs poster pour un problème de création de miniatures n'est toujours pas en ligne, pour la principale raison que j'ai eu des problèmes de santé (crise de stress suite à un élément déclencheur) m'empêchant de travailler sur mon code. Mais le temps que mon état s'en vienne stabilisé avec le traitement, l'été finissait et je rentrais à l'école pour étudier en cuisine, ce qui fait que j'ai eu peu de temps pour travailler sur mes projets.
La dernière fois que j'avais travaillé dessus en mai dernier, j'avais alors fait un dépôt sur GitHub pour rendre le traquage de bugs plus facile.
Voici d'ailleurs le lien du dépôt : https://github.com/MissGeek/Ishimaru-Design
Je l'avais alors fait juste avant de passer à Xubuntu 12.04, vu que je ne change de version qu'à tous les LTS.
Cela ne fait donc que quelques jours que je m'y suis replongée et j'ai pas mal avancé et le site devient de plus en plus fonctionnel… sauf sur un point dont je viens justement en parler.
Lors de la suppression d'une catégorie ou d'un tutoriel, tout va bien tant qu'il n'y a rien de rattaché. Or, ça se gâte lorsqu'il y a de quoi de rattaché. Par exemple, si je supprime une catégorie de tuto à laquelle un tutoriel est rattaché, hop erreur SQL ! Idem quand j'essaie de supprimer un tutoriel ayant des parties (divisions) ou même un icône de tuto !
Voici un exemple, qui est fortement inspiré de la gestion des forums, sur ma page d'administration des tutoriels (admin_tutorials.php) :
/*** Cette partie est encore buggée ! ***/
elseif(isset($_GET['del_tut']))
{
site_confirm_referrer('admin_tutorials.php');
$tut_id = intval($_GET['del_tut']);
if($tut_id < 1)
site_msg($lang_site['Bad request']);
exit(var_dump($tut_id));
if(isset($_POST['del_tut_comply']))
{
@set_time_limit(0);
// Fetch screenshots to prune
$result = $db->query('SELECT text_id, text_name FROM tuts_texts WHERE text_entryid='.$tut_id) or error('Unable to fetch tutorial parts', __FILE__, __LINE__, $db->error());
$part_ids = '';
while ($row = $db->fetch_assoc($result))
$part_ids .= (($part_ids != '') ? ',' : '').$row['text_id'];
if ($part_ids != '')
{
$db->query('DELETE FROM tuts_text WHERE text_id IN('.$part_ids.')') or error('Unable to prune tutorial parts', __FILE__, __LINE__, $db->error());
}
//Pour la suppression de l'icône. Commenté pour le moment
$result2 = $db->query('SELECT tentry_icon FROM tuts_entries WHEHE tentry_id='.$tut_id) or error('Unable to get tutorial data', __FILE__, __LINE__, $db->error());
$img_to_delete = $db->result($result2);
if(!empty($img_to_delete))
remove_file($img_to_delete,'tut');
$db->query('DELETE FROM tuts_entries WHERE tentry_id='.$tut_id) or error('Unable to prune tutorial', __FILE__, __LINE__, $db->error());
if (!defined('SITE_CACHE_FUNCTIONS_LOADED'))
require './includes/cache.php';
generate_lasttuts_cache($lang);
generate_admin_home_cache();
generate_admin_tuts_home_cache($lang);
site_redirect('admin_tutorials.php', $lang_site['Admin tut deleted redirect']);
}
else
{
$result = $db->query('SELECT tentry_name FROM tuts_entries WHERE tentry_id='.$tut_id) or error('Unable to fetch tutorial info');
$tut_name = $db->result($result);
$titre_page = $lang_site['Admin delete tut'];
$module = 'admin';
require './includes/top.php'; ?>
<p class="crumbs"><?php echo $pun_config['o_board_title']; ?> > <a href="index.php"><?php echo $lang_site['Home']; ?></a> > <a href="admin.php"><?php echo $lang_site['Admin']; ?></a> > <a href="admin_tutorials.php"><?php echo $lang_site['Tutorials']; ?></a> > <?php echo $lang_site['Admin delete tut head']; ?></p>
<h3><?php echo $lang_site['Admin delete tut head']; ?></h3>
<form method="post" action="admin_tutorials.php?del_tut=<?php echo $tut_id; ?>">
<div class="inform">
<input type="hidden" name="tut_to_delete" value="<?php echo $tut_id; ?>" />
<fieldset>
<legend><?php echo $lang_site['Admin confirm delete tut subhead']; ?></legend>
<div class="infldset">
<p><?php sprintf($lang_site['Admin confirm delete tut info'], pun_htmlspecialchars($tut_name)); ?></p>
<p class="warntext"><?php echo $lang_site['Admin delete tut warn']; ?></p>
</div>
</fieldset>
</div>
<p class="buttons"><input type="submit" name="del_tut_comply" value="<?php echo $lang_site['Delete']; ?>" /> <a href="javascript:history.go(-1)"><?php echo $lang_site['Go back']; ?></a></p>
</form>
<?php require './includes/bottom.php';
}
}Lorsque je fais un exit sur $_GET['del_tut'], l'ID s'affiche bien, tandis que si je fais un même exit sur $tut_id, rien ne s'affiche, tandis que si je fais un var_dump sur $tut_id, j'ai bien int(6) (6 étant un exemple d'ID) qui s'affiche. J'ai fait tous ces tests avant et après confirmation de suppression.
Autre chose : Dans le formulaire, l'ID s'affiche bien aux deux endroits (action="" et champ hidden)
Mais dans les requêtes pour aller chercher les données rattachées (dans ce cas-ci les parties et l'icône), rien à faire, j'ai une erreur "Unable to get ... data" sans spécifier le fichier, ni la ligne, ni l'erreur, même si les arguments sont bien présents !
Et pourtant, c'est pratiquement le même style que dans admin_forums.php et ce dernier fonctionne !
Aussi, je ne me souviens pas si j'avais déjà testé ces suppression (de catégories et tutoriels avec des trucs rattachés après). Et autre chose : quand j'avais commencé à travailler dessus, je testais à partir d'un fluxbb 1.4 et je l'ai ensuite rattaché à un 1.5, donc je ne sais pas si ça peut jouer dans ça.
En cas de besoin, je pourrais installer la bêta sur mon hébergement le temps des tests et je créerais un compte modo pour les tests.
En espérant avoir assez donné de détails.
Merci d'avance.
Ishimaru
PC Alienware sous Win7 - GIMP 2.8 - XHTML/CSS (avancé) - PHP/MySQL (medium)
Convertisseur Connectix Boards vers FluxBB et Auto Poll pour 1.4/1.5 disponibles sur GitHub !
Artiste à mes heures
Hors ligne
Bonjour,
Pour les problèmes de requêtes SQL, un des moyens de débogage est de passer temporairement le forum en modes DEBUG et visualisation des requêtes.
Dans le fichier mon_forum/config.php ajouter (ou décommenter) les lignes suivantes :
//[modif oto] Ajout des constantes de debug
// N'ACTIVEZ PAS cela sur un environnement de production !
//Activez le mode DEBUG en enlevant // du début de la ligne ci-dessous
define('PUN_DEBUG', 1);
//Ceci permettra d'afficher en bas de page toutes les requêtes exécutées
//en enlevant // du début de la ligne ci-dessous
define('PUN_SHOW_QUERIES', 1);Les requêtes en clair seront affichées en bas de chaque page et les erreurs SQL éventuelles aussi.
Ce n'est pas parce que l'erreur se propage qu'elle devient vérité. Gandhi
Sont différents : ça et sa - est et ait - à et a - ce et se - mes et mais ou met - été et était - c'est et ces - ce-si et ceci
La vie sans musique est tout simplement une erreur, une fatigue, un exil. Friedrich Nietzsche
Hors ligne
Bonjour,
Dans une des requêtes, il y a un WHEHE au lieu d'un WHERE, ce qui pourrait expliquer que l'on obtienne une erreur.
Bouh !
StarShip Renaissance
Hors ligne
Bonjour,
Dans une des requêtes, il y a un WHEHE au lieu d'un WHERE, ce qui pourrait expliquer que l'on obtienne une erreur.
Merci énormément, c'était bien ça, ainsi qu'un s oublié dans le DELETE FROM tuts_texts qui causaient les erreurs ! Ça marche maintenant parfaitement !
Je vais donc revérifier sur les autres pages si d'autres coquilles m'ont échappées, et une fois ça fait, je mettrai le sujet en résolu.
Conclusion : Le cocktail fatigue+rhume, ça ne fait pas bon ménage avec le coding…
[EDIT à 23:20 heure du Québec] Je viens enfin de finir de déboguer les différentes suppressions, que ce soit côté ressources ou côté tutoriels ! Je viens donc de marquer résolu et de commiter les changements.
Je vais donc pouvoir rentrer à l'école demain matin avec le sentiment d'avoir beaucoup avancé pendant mon congé.
Dernière modification par Ishimaru Chiaki (21-01-2013 06:20:40)
PC Alienware sous Win7 - GIMP 2.8 - XHTML/CSS (avancé) - PHP/MySQL (medium)
Convertisseur Connectix Boards vers FluxBB et Auto Poll pour 1.4/1.5 disponibles sur GitHub !
Artiste à mes heures
Hors ligne
Conclusion : Le cocktail fatigue+rhume, ça ne fait pas bon ménage avec le coding…
Nice recover from it, and "Happy new Year" to u, Ishimaru… 
Hors ligne