[Réglé] Créer un topic grâce à un formulaire sur mon site

Ce forum aborde toutes les questions qu'un codeur ou webmaster pourrait se poser, et n'ayant aucun rapport direct avec phpBB.
Tout ce qui peut concerner la récupération des sessions de phpBB sur votre site, doit se faire dans cette section.

Modérateur: Equipe

Règles du forum
A lire impérativement : Règlement de phpBB-fr.com
Partager sur FacebookPartager sur TwitterPartager sur Google+

[Réglé] Créer un topic grâce à un formulaire sur mon site

Messagepar Tcharly » 07 Jan 2010 à 18:38

Bonjour,

Je souhaiterai savoir s'il serai possible d'ajouter un topic automatiquement via un script que j'ai fait dans la partie administrateur de mon site.

Concrètement, le formulaire que j'ai codé en php (je débute dans le php avec le siteduzero) me permet d'ajouter l'image de la pochette d'un jeu vidéo avec son résumé etc.
Et afin que le site soit "automatique" et facile à gérer, j'aimerai bien que lorsque j'appuie sur le bouton valider de mon formulaire afin d'indexer un jeu, cela me créé automatiquement un topic sur mon forum phpbb avec comme titre le nom du jeu vidéo sous forme de variable (celle que j'aurai inscrit dans le formulaire) et avec comme message également des variables (qui proviendront de même du formulaire).

Pour cela, dois-je simplement écrire dans mon script une requête mysql qui écrirait le titre du topic dans la table phpbb_topics avec pour champ topic_title
ainsi qu'écrire le message dans la table phpbb_posts avec pour champ post_text ?

Cependant, je pense que cela poserai problème étant donné qu'il y a plusieurs champ dans chacune de ces deux tables, et si je ne rempli pas l'un d'entre eux, je pense que cela pourrai poser un problème au forum, non ?

Merci par avance de votre qui me sera très précieuse pour l'avancement de mon site web. :)
Tcharly
Posteur néophyte
Posteur néophyte
 
Messages: 25
Enregistré le: 24 Déc 2009 à 02:15

Re: Créer un topic grâce à un formulaire sur mon site

Messagepar Théonaute » 08 Jan 2010 à 14:47

Bonjour,

L'insertion de messages dans phpBB est pas mal plus complexe que cela. Je vous recommande la lecture du wiki de phpBB.com : http://wiki.phpbb.com qui y explique comment insérer des messages dans le forum phpBB.

Bien à vous,
Théonaute | Ancien membre de l'équipe des MODs
Citation :
<?php while(!($succeed = try())) ?>
Je ne suis plus actif dans la communauté phpBB. Je ne fais donc plus de support, de MODs (extensions) ni de support pour mes MODs...
Avatar de l’utilisateur
Théonaute
1/4 hibou
1/4 hibou
 
Messages: 6027
Enregistré le: 22 Jan 2006 à 15:45
Localisation: Au pays des caribous

Re: Créer un topic grâce à un formulaire sur mon site

Messagepar Tcharly » 08 Jan 2010 à 23:40

Merci de votre réponse mais cependant, c'est an anglais et c'est pas mon fort ^^
Il n'y a pas une solution plus ou moins simple pour répondre à ma demande ?

Et pourquoi cela ne peut pas fonctionner si j'entre les variables dans la base de donnée avec la requête sql comme dit ci-dessus ? :cry:

Merci par avance =)
Tcharly
Posteur néophyte
Posteur néophyte
 
Messages: 25
Enregistré le: 24 Déc 2009 à 02:15

Re: Créer un topic grâce à un formulaire sur mon site

Messagepar Théonaute » 09 Jan 2010 à 02:13

Tcharly a écrit:Il n'y a pas une solution plus ou moins simple pour répondre à ma demande ?

La meilleure doc est la doc officielle de phpBB...

Tcharly a écrit:Et pourquoi cela ne peut pas fonctionner si j'entre les variables dans la base de donnée avec la requête sql comme dit ci-dessus ? :cry: )

Parce que phpBB est beaucoup plus complexe que cela... Il y a d'autres requêtes qui doivent être faites pour que tout fonctionne autrement, d'où le fait qu'il faille utiliser les fonctions existantes et ne pas en faire qu'à sa tête...

Exemple basic :
Code: Tout sélectionner
    $forum = 1; //Changer l'id du forum ici...
    $topic = 1; //Changer l'id du topic ici...

    $author = utf8_normalize_nfc(request_var('author', '',true));
    $title = utf8_normalize_nfc(request_var('title', '',true));
    $text = utf8_normalize_nfc(request_var('text', '',true));

    $uid = $bitfield = $flags = '';
    $poll = array();
    
    generate_text_for_storage
($comm_text, $uid, $bitfield, $flags, true, true, true);
        
    $data 
= array( 
            
// General Posting Settings
            'forum_id'            => $forum,    // The forum ID in which the post will be placed. (int)
            'topic_id'            => $topic,    // Post a new topic or in an existing one? Set to 0 to create a new one, if not, specify your topic ID here instead.
            'icon_id'            => false,    // The Icon ID in which the post will be displayed with on the viewforum, set to false for icon_id. (int)

            // Defining Post Options
            'enable_bbcode'        => true,    // Enable BBcode in this post. (bool)
            'enable_smilies'    => true,    // Enabe smilies in this post. (bool)
            'enable_urls'        => true,    // Enable self-parsing URL links in this post. (bool)
            'enable_sig'        => false,    // Enable the signature of the poster to be displayed in the post. (bool)

            // Message Body
            'message'            => $text,        // Your text you wish to have submitted. It should pass through generate_text_for_storage() before this. (string)
            'message_md5'        => md5($text),// The md5 hash of your message

            // Values from generate_text_for_storage()
            'bbcode_bitfield'    => $bitfield,    // Value created from the generate_text_for_storage() function.
            'bbcode_uid'        => $uid,        // Value created from the generate_text_for_storage() function.

            // Other Options
            'post_edit_locked'    => 0,        // Disallow post editing? 1 = Yes, 0 = No
            'topic_title'        => $title,    // Subject/Title of the topic. It should pass through generate_text_for_storage() before this. (string)

            // Email Notification Settings
            'notify_set'        => false,        // (bool)
            'notify'            => false,        // (bool)
            'post_time'            => 0,        // Set a specific time, use 0 to let submit_post() take care of getting the proper time (int)
            'forum_name'        => '',        // For identifying the name of the forum in a notification email. (string)

            // Indexing
            'enable_indexing'    => true,        // Allow indexing the post? (bool)
        );
        
       if
(submit_post('post','',$author,POST_NORMAL,$poll,$data,false))        
           return true
';


Il ne vous reste plus qu'à modifier les valeurs de
Code: Tout sélectionner
$forum = 1; //Changer l'id du forum ici...
    $topic = 1; //Changer l'id du topic ici...
 

et votre formulaire HTML doit avoir les champs suivant :
  • Auteur : <input type="Text" name="author" />
  • Titre: <input type="Text" name="title" />
  • Texte: <input type="Text" name="text" />

Je ne vois pas ce que je peux faire plus pour vous aider si vous refuser de lire la doc après...

Bien à vous,
Théonaute | Ancien membre de l'équipe des MODs
Citation :
<?php while(!($succeed = try())) ?>
Je ne suis plus actif dans la communauté phpBB. Je ne fais donc plus de support, de MODs (extensions) ni de support pour mes MODs...
Avatar de l’utilisateur
Théonaute
1/4 hibou
1/4 hibou
 
Messages: 6027
Enregistré le: 22 Jan 2006 à 15:45
Localisation: Au pays des caribous

Re: Créer un topic grâce à un formulaire sur mon site

Messagepar Tcharly » 09 Jan 2010 à 09:53

Merci pour votre réponse.

Comme la doc est en anglais, et bien je ne m'y retrouve pas vraiment et même en traduisant avec un traducteur en ligne, c'est pas top.
Mais le code que vous m'avez présenté ("Exemple Basic"), c'est ce que la doc fournie pour écrire un topic avec message en dehors du forum ?
Si c'est le cas, je pense qu'avant de mettre ce code, je dois mettre avant toute chose une ouverture de session ?
De plus, comment puis-je connaitre l'id du topic étant donné que le script sert à en créer un ?

Désolé pour ces questions qui vont sûrement vous paraître stupide, mais comme dit au premier post, je débute PHP =)
Merci par avance et bonne journée.
Tcharly
Posteur néophyte
Posteur néophyte
 
Messages: 25
Enregistré le: 24 Déc 2009 à 02:15

Re: Créer un topic grâce à un formulaire sur mon site

Messagepar Dakin Quelia » 09 Jan 2010 à 15:22

Bonjour Tcharly,

Tcharly a écrit:Mais le code que vous m'avez présenté ("Exemple Basic"), c'est ce que la doc fournie pour écrire un topic avec message en dehors du forum ?
Si c'est le cas, je pense qu'avant de mettre ce code, je dois mettre avant toute chose une ouverture de session ?


Avant de placer le formulaire, tu dois mettre en haut de page ce code:
Code: Tout sélectionner
/**
* @ignore
*/
define('IN_PHPBB'true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH './';
$phpEx substr(strrchr(__FILE__'.'), 1);
include(
$phpbb_root_path 'common.' $phpEx);
include(
$phpbb_root_path 'includes/functions_display.' $phpEx);
include(
$phpbb_root_path 'includes/functions_posting.' $phpEx);

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();   
C'est pour initialiser les sessions et utiliser les fonctionnalités du forum.

Tcharly a écrit:De plus, comment puis-je connaitre l'id du topic étant donné que le script sert à en créer un ?


Si je ne me trompe pas, tu dois mettre 0 à la place de $topic dans le tablau $data. Plus concrètement:

Cherche:
Code: Tout sélectionner
            'topic_id'            => $topic,    

Remplace par:
Code: Tout sélectionner
            'topic_id'            => 0,    


A bientôt,
Aucun support par mail, MP ou msn.
Mes MODs: ici | Mon blogue: Mon blogue | DeviantArt: cliquez ici
Avatar de l’utilisateur
Dakin Quelia
Floodeur universel
Floodeur universel
 
Messages: 21317
Enregistré le: 31 Oct 2006 à 18:33
Localisation: Belgique

Re: Créer un topic grâce à un formulaire sur mon site

Messagepar Théonaute » 09 Jan 2010 à 16:25

La valeur de $topic n'est pas prise en compte lorsque le premier argument de la fonction submit_post est "post", comme c'est le cas dans mon exemple.
Plutôt de modifier comme le montre Dakin Quelia, je modifierai le contenu de la variable $topic pour le mettre à 0, au cas où en haut. Comme ça, le code est valable pour d'autres utilisations et les seules valeurs à modifier sont les variables en haut du code. C'est le but des variables après tout...
Théonaute | Ancien membre de l'équipe des MODs
Citation :
<?php while(!($succeed = try())) ?>
Je ne suis plus actif dans la communauté phpBB. Je ne fais donc plus de support, de MODs (extensions) ni de support pour mes MODs...
Avatar de l’utilisateur
Théonaute
1/4 hibou
1/4 hibou
 
Messages: 6027
Enregistré le: 22 Jan 2006 à 15:45
Localisation: Au pays des caribous

Re: Créer un topic grâce à un formulaire sur mon site

Messagepar Tcharly » 10 Jan 2010 à 22:50

Merci à tous les deux pour vos réponse, cependant, j'obtiens un parse error sur le code de Théonaute à la ligne:
Code: Tout sélectionner
return true';


En enlevant l'apostrophe, je n'ai plus d'erreur mais il s'affiche qu'une page blanche sans même mon formulaire.
De plus, comment connaître l'id du forum ?
L'id du forum permet de déterminer dans quel forum le topic doit s'enregistrer ?
Merci par avance :)

NB: Voici le code que j'ai mis en ficelant les votre, cependant, il y a le problème expliqué ci-dessus qui est présent:

-- Code supprimé par Théonaute --
Tcharly
Posteur néophyte
Posteur néophyte
 
Messages: 25
Enregistré le: 24 Déc 2009 à 02:15

Re: Créer un topic grâce à un formulaire sur mon site

Messagepar Théonaute » 11 Jan 2010 à 02:24

Le nombre de ligne de code inséré dans votre message est trop important.
Veuillez fournir un lien vers où télécharger le(s) fichier(s), cela aura le mérite d'être plus pratique.

Pour l'apostrophe, c'est une erreur de copier/coller de ma part, il faut effectivement l'enlever.
Pour l'id du forum, lorsque vous surfez sur votre forum phpBB, et que vous visualisez le contenu d'un forum, il suffit de regarder l'url de la page et de prendre le numéro inscrit à côté de "f=" dans celle-ci. Cet id indique effectivement dans quel forum vont se mettre les sujets créés.

Pour la page blanche, c'est parce que votre fichier n'est pas encodé en utf8 sans bom. Si vous ne savez pas résoudre cela, faîtes une recherche ici, la réponse est donnée au moins plusieurs centaines de fois.

Bien à vous,
Théonaute | Ancien membre de l'équipe des MODs
Citation :
<?php while(!($succeed = try())) ?>
Je ne suis plus actif dans la communauté phpBB. Je ne fais donc plus de support, de MODs (extensions) ni de support pour mes MODs...
Avatar de l’utilisateur
Théonaute
1/4 hibou
1/4 hibou
 
Messages: 6027
Enregistré le: 22 Jan 2006 à 15:45
Localisation: Au pays des caribous

Re: Créer un topic grâce à un formulaire sur mon site

Messagepar Tcharly » 11 Jan 2010 à 21:09

Bonsoir et merci pour votre réponse.
Cependant, pour ce qui est de la page blanche, cela n'a rien changé lorsque j'ai encodé en utf8 sans bom sur Notepad++
voilà le fichier: http://localhostr.com/files/60e5f5/envo ... essage.php
Si vous pourriez y jeter un coup d'oeil afin de savoir pourquoi la page est vide et n'affiche pas mon formulaire html, ça serait super :D

Merci par avance
Tcharly
Posteur néophyte
Posteur néophyte
 
Messages: 25
Enregistré le: 24 Déc 2009 à 02:15

Re: Créer un topic grâce à un formulaire sur mon site

Messagepar wana4329 » 11 Jan 2010 à 21:45

Salut,

Tu ne pourrais pas te base du Mod d' ErnadoO : mods-en-dev-phpbb3/sujet140854.html?hilit=Formulaire_de_présentation_v0.0.1 formulaire présentation

Il y a peut-être moyen de trouver le truc pour poster en invité dans un forum l'autorisant ?

:wink:
wana4329
Floodeur mature
Floodeur mature
 
Messages: 1510
Enregistré le: 26 Juil 2006 à 17:27
Localisation: Tubize (Belgique)

Re: Créer un topic grâce à un formulaire sur mon site

Messagepar Théonaute » 12 Jan 2010 à 03:00

wana4329 > Le code fournit permet de poster en tant qu'invité.
Tcharly > j'ai téléchargé votre fichier et il est encodé en ANSI, pas en utf8 sans bom.

Bien à vous,
Théonaute | Ancien membre de l'équipe des MODs
Citation :
<?php while(!($succeed = try())) ?>
Je ne suis plus actif dans la communauté phpBB. Je ne fais donc plus de support, de MODs (extensions) ni de support pour mes MODs...
Avatar de l’utilisateur
Théonaute
1/4 hibou
1/4 hibou
 
Messages: 6027
Enregistré le: 22 Jan 2006 à 15:45
Localisation: Au pays des caribous

Re: Créer un topic grâce à un formulaire sur mon site

Messagepar Tcharly » 12 Jan 2010 à 16:55

Théonaute,

Pourtant, j'ai même créé un nouveau fichier sur Notepad++, je suis allé dans "format", j'ai mis "encoder en utf-8 (sans BOM)" puis j'ai copié collé le script puis j'ai enregistré et toujours page blanche.
Si ça se trouve, ce n'est pas cette manip', mais en faisant une recherche sur le forum, tout le monde dit que c'est expliqué plusieurs fois, mais au final, comme tout le monde dit ça, je ne vois que ces post et justement pas l'explication.
Mais en regardant sur google, je crois que la manip' que j'ai faite est bien la bonne mais toujours page blanche :(

Merci par avance
Tcharly
Posteur néophyte
Posteur néophyte
 
Messages: 25
Enregistré le: 24 Déc 2009 à 02:15

Re: Créer un topic grâce à un formulaire sur mon site

Messagepar Théonaute » 12 Jan 2010 à 23:57

Il vaut mieux passer par convertir en utf8 sans bom, et non pas encoder.

Puis-je avoir l'adresse du script que je vérifie ?

Bien à vous,
Théonaute | Ancien membre de l'équipe des MODs
Citation :
<?php while(!($succeed = try())) ?>
Je ne suis plus actif dans la communauté phpBB. Je ne fais donc plus de support, de MODs (extensions) ni de support pour mes MODs...
Avatar de l’utilisateur
Théonaute
1/4 hibou
1/4 hibou
 
Messages: 6027
Enregistré le: 22 Jan 2006 à 15:45
Localisation: Au pays des caribous

Re: Créer un topic grâce à un formulaire sur mon site

Messagepar Tcharly » 13 Jan 2010 à 16:01

Bonjour :)

Je viens de refaire la manipulation en mettant convertir en utf8 sans bom, j'en registre, j'ouvre le fichier sur WAMP, et toujours page blanche.
Je ne sais pas si la page blanche vient de là ou bien si il y a un soucis dans mon encodage.
voici le fichier: http://localhostr.com/files/d87fb4/envo ... ssage3.php

Pouvez-vous essayer d'encoder mon fichier en utf8 sans bom sur votre ordinateur pour voir si la page blanche persiste encore ?
Merci beaucoup :)
Tcharly
Posteur néophyte
Posteur néophyte
 
Messages: 25
Enregistré le: 24 Déc 2009 à 02:15

Suivante

Retourner vers Coding, Webmastering et Sécurité informatique

 


  • Articles en relation
    Réponses
    Vues
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 3 invités