[REGLE] sessions phpBB3 et formulaire sur son 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

Re: sessions phpBB3 et formulaire sur son site

Messagepar Zoddo » 11 Sep 2013 à 19:15

Ah bah si phpBB utilise son propre système pour les uploads de fichier : une class (fileupload) !
Tu as un exemple dans includes/functions_user.php dans la fonction avatar_upload() (ligne ~2033).

J'ai pas vraiment suivi le sujet, mais concernant ta redirection ça m'étonnerait que ce soit cette ligne là qui redirige vers l'index du forum.

Au passage, si on veut respecter le conding guidelines de phpBB, il ne faut pas utiliser les guillemets double si ce n'est pas nécessaire.
Coding Guidelines a écrit:There are two different ways to quote strings in PHP - either with single quotes or with double quotes. The main difference is that the parser does variable interpolation in double-quoted strings, but not in single quoted strings. Because of this, you should always use single quotes unless you specifically need variable interpolation to be done on that string. This way, we can save the parser the trouble of parsing a bunch of strings where no interpolation needs to be done.
[Doc] Installer une extension - [Extension] Post Models - [Recrutement] Équipe des Extensions
Si vous considérez votre requête comme résolue, merci d'ajouter l'attribut de sujet [Réglé]
Zoddo
Equipe site
Equipe site
 
Messages: 7034
Enregistré le: 16 Mar 2011 à 18:44
Localisation: Laval / Le Mans

Re: sessions phpBB3 et formulaire sur son site

Messagepar Rico the Hobbit » 13 Sep 2013 à 23:22

Merci Zoddo pour ta réponse. J'avais commencé à regarder les fichiers du forum pour y trouver un code intéressant pour s'en inspirer. J'ai donc repris le code que tu m'as indiqué. Toutefois, j'ai du mal à m'y retrouver dans les variables utilisées. Je n'ai pas l'habitude de manipuler les codes phpBB... :cry: J'ai l'impression de jouer les apprenti-sorciers, je change un bout de code, je lance le navigateur et je vois le résultat... et en règle générale, il ne se passe pas grand chose : une page blanche ou un formulaire qui ne réalise pas l'action demandée... C'est pas évident de s'y retrouver. Déjà, j'ai souvent du mal à m'y retrouver dans le Php, j'arrive quand même à bricoler des bouts de code qui tiennent la route. Avec l'intégration du forum dans mon site Web, j'ai l'impression de perdre la maîtrise et de devoir affronter une montage et de devoir me lancer dans une longue et fastidieuse lecture pour tenter d'apprendre la construction d'un forum afin d'avoir une vision plus claire des mécanismes. Ce soir, je n'en ai pas le courage mais s'il faut en passer par là, la mise en place du site prendra plus de temps que prévu...
Sinon, je vais quand même vous embêter un peu avec des questions à partir du code ci-dessous :
Qu'est-ce je dois modifier dans le code ci-dessous pour uploader les fichiers dans un dossier spécifique ? Qu'est-ce qu'il faut modifier pour changer le nom du fichier ? Faut-il que je rajoute d'autres codes ?

Code: Tout sélectionner
function avatar_upload($data, &$error)
					{
						global $phpbb_root_path, $config, $db, $user, $phpEx;
						include_once($phpbb_root_path . 'includes/functions_upload.' . $phpEx);
						$upload = new fileupload('AVATAR_', array('jpg', 'jpeg', 'gif', 'png'), $config['avatar_filesize'], $config['avatar_min_width'], $config['avatar_min_height'], $config['avatar_max_width'], $config['avatar_max_height'], (isset($config['mime_triggers']) ? explode('|', $config['mime_triggers']) : false));
						if (!empty($_FILES['uploadfile']['name'])){$file = $upload->form_upload('uploadfile');}
						else{$file = $upload->remote_upload($data['uploadurl']);}
						$prefix = $config['avatar_salt'] . '_';
						$file->clean_filename('avatar', $prefix, $data['user_id']);
						$destination = $config['avatar_path'];
						if (substr($destination, -1, 1) == '/' || substr($destination, -1, 1) == '\\'){$destination = substr($destination, 0, -1);}
						$destination = str_replace(array('../', '..\\', './', '.\\'), '', $destination);
						if ($destination && ($destination[0] == '/' || $destination[0] == "\\")){$destination = '';}
						$file->move_file($destination, true);
						if (sizeof($file->error)){$file->remove();$error = array_merge($error, $file->error);}
						return array(AVATAR_UPLOAD, $data['user_id'] . '_' . time() . '.' . $file->get('extension'), $file->get('width'), $file->get('height'));
					}


Le formulaire en lui-même :
Code: Tout sélectionner
<h1>
		Formulaire d'insertion d'un &eacute;diteur
		</h1>
		<?php
		echo '<form action="' . append_sid('editeur.php') . '" method="post">';
		?>
		<p>
		<label>Nom de l'&eacute;diteur :</label><br/>
		<input type="text" name="addediteur"></input><br/><br/>
		<label>Logo</label>
		<input type="file" name="image"></input></label><br/><br/>
		<input id="uploadfile" class="inputbox autowidth" type="file" name="uploadfile"></input>
		<input type="hidden" name="MAX_FILE_SIZE" value="12345" />
		<input type="submit" name="ajouter" value="Ajouter"/>
		</p>
		</form>
Modifié en dernier par Rico the Hobbit le 14 Sep 2013 à 12:46, modifié 2 fois.
Bonjour chez vous
Rico the Hobbit
Posteur néophyte
Posteur néophyte
 
Messages: 40
Enregistré le: 27 Mai 2003 à 13:33
Localisation: Cul-de-sac

Re: sessions phpBB3 et formulaire sur son site

Messagepar Skouat » 14 Sep 2013 à 12:08

Salut,

Le nombre de ligne de code inséré dans votre message est trop important.
il n'est pas permis de poster plus de 20 lignes de code dans une balise code.
Soit utilises un site du type pastebin, soit tu déposes le fichiers sur un FTP.

Rico the Hobbit a écrit:J'ai l'impression de jouer les apprenti-sorciers, je change un bout de code, je lance le navigateur et je vois le résultat...

On est tous passé par là.
Et pour ma part, je pense que je suis parti de bien plus loin que toi, vu qu'au début je n'arrivais meme pas à faire fonctionner un formulaire. :mrgreen:
Alors que toi t'y arrives (meme s'il 'y a des coquilles).

C'est aussi un peu pour cela que je pense que tu devrais revoir ta gestion de tes bases de données (cf mes précédents messages) afin, non pas de supprimer, mais au moins de réduire leur nombre.
Ceci te permettrai d'user de manière plus fréquentes le framework de BDD de phpBB, et surtout de sécurisé un peu plus tes requêtes SQL.

Rico the Hobbit a écrit:Qu'est-ce je dois modifier dans le code ci-dessous pour uploader les fichiers dans un dossier spécifique ? Qu'est-ce qu'il faut modifier pour changer le nom du fichier ? Faut-il que je rajoute d'autres codes ?

Je n'ai jamais manipé le système d'upload de fichier, je laisse la main à quelqu'un qui gère mieux le sujet.

A+
Skouat
Traducteur
Traducteur
 
Messages: 13979
Enregistré le: 02 Avr 2008 à 20:47

Re: sessions phpBB3 et formulaire sur son site

Messagepar Rico the Hobbit » 14 Sep 2013 à 12:49

Ok, j'ai réduit le nombre de ligne afin qu'elles fassent moins de 20, désolé...

Je pense, en effet, réduire les bases de donnée mais dans un second temps. Pour l'instant, j'aimerais pouvoir faire fonctionner la structure. A présent, j'arrive à garder la connexion du forum sur l'ensemble du site. Il me reste uniquement à trouver un code pour uploader des fichiers par ce système et l'affaire est faite.

Merci Skouat pour ton aide !
Bonjour chez vous
Rico the Hobbit
Posteur néophyte
Posteur néophyte
 
Messages: 40
Enregistré le: 27 Mai 2003 à 13:33
Localisation: Cul-de-sac

Re: sessions phpBB3 et formulaire sur son site

Messagepar Zoddo » 14 Sep 2013 à 14:45

Il ne faut pas modifier la fonction avatar_upload() vu qu'elle est nécéssaire pour l'envoie d'avatar dans phpBB.

Je t'ai donner ce bout de code pour t'en inspirer. J'ai pas trouver de doc sur aera51 à te filer.
Pour que j'essaie de te donner un un exemple, tu veut faire quoi de ton fichier ? Tu veut le placer où ?
[Doc] Installer une extension - [Extension] Post Models - [Recrutement] Équipe des Extensions
Si vous considérez votre requête comme résolue, merci d'ajouter l'attribut de sujet [Réglé]
Zoddo
Equipe site
Equipe site
 
Messages: 7034
Enregistré le: 16 Mar 2011 à 18:44
Localisation: Laval / Le Mans

Re: sessions phpBB3 et formulaire sur son site

Messagepar Rico the Hobbit » 14 Sep 2013 à 23:09

Zoddo a écrit:Il ne faut pas modifier la fonction avatar_upload() vu qu'elle est nécéssaire pour l'envoie d'avatar dans phpBB.

Non, non, je n'ai pas modifié la fonction, ce n'est pas un "couper / coller" mais un "copier / coller" avec l'intention de modifier le code pour l'intégrer dans le nouveau fichier. Toutefois, je ne sais pas ce qu'il faut que je modifie et ce qu'il faut garder...

Je ne suis, sans doute, pas assez clair dans mes explications. J'ai donc copier ce code dans un fichier "editeur.php" qui comprend un formulaire (le code du formulaire se trouve au-dessus) (Formulaire d'insertion d'un éditeur). Le formulaire se trouve dans un dossier "bbd" soit le chemin "/bdd/editeur.php" en sachant que le forum se trouve lui dans : "/forum/". Dans ce formulaire, je tente d'ajouter des images par : <input type="file" name="image"></input>. Ces images devront être uploader dans le fichier "/images/editeur/". Mais, pour l'instant, je bloque... :cry:
Bonjour chez vous
Rico the Hobbit
Posteur néophyte
Posteur néophyte
 
Messages: 40
Enregistré le: 27 Mai 2003 à 13:33
Localisation: Cul-de-sac

Re: sessions phpBB3 et formulaire sur son site

Messagepar Zoddo » 15 Sep 2013 à 12:06

Tient, voila un exemple : http://pastebin.com/qimu89uR

Bon voila, je t'ai mâcher le travail, donc si tu y arrive toujours pas, je vois pas ce que je peut faire pour toi.
[Doc] Installer une extension - [Extension] Post Models - [Recrutement] Équipe des Extensions
Si vous considérez votre requête comme résolue, merci d'ajouter l'attribut de sujet [Réglé]
Zoddo
Equipe site
Equipe site
 
Messages: 7034
Enregistré le: 16 Mar 2011 à 18:44
Localisation: Laval / Le Mans

Re: sessions phpBB3 et formulaire sur son site

Messagepar Rico the Hobbit » 15 Sep 2013 à 13:54

Un grand merci Zoddo d'avoir pris le temps de créer un fichier spécifique. Malheureusement, je dois me débrouiller comme un manche car je n'arrive toujours pas à uploader les fichiers...
Voilà ce que j'ai fait avec ce tu as posté :
J'ai copié le code dans un fichier que j'ai nommé "upediteur.php". J'ai effectué un include dans le fichier "editeur.php" pour récupérer le fichier "upediteur.php" mais le résultat ne passe pas.

Du coup, j'ai mis l'ensemble du code du formulaire sur Pastebin : http://pastebin.com/hLKyDxka
Bonjour chez vous
Rico the Hobbit
Posteur néophyte
Posteur néophyte
 
Messages: 40
Enregistré le: 27 Mai 2003 à 13:33
Localisation: Cul-de-sac

Re: sessions phpBB3 et formulaire sur son site

Messagepar Zoddo » 15 Sep 2013 à 15:03

Tu as une erreur PHP qui s'affiche ?
[Doc] Installer une extension - [Extension] Post Models - [Recrutement] Équipe des Extensions
Si vous considérez votre requête comme résolue, merci d'ajouter l'attribut de sujet [Réglé]
Zoddo
Equipe site
Equipe site
 
Messages: 7034
Enregistré le: 16 Mar 2011 à 18:44
Localisation: Laval / Le Mans

Re: sessions phpBB3 et formulaire sur son site

Messagepar Rico the Hobbit » 15 Sep 2013 à 15:15

Non, si je fais un echo du mysql_query, il valide le nom de l'éditeur mais ne prend pas le nom de l'image : j'ai testé plusieurs noms de variables pour l'image : $image, $file, $upload. J'ai vérifié dans le dossier "images/editeur" : l'image n'est pas uploadée...
Bonjour chez vous
Rico the Hobbit
Posteur néophyte
Posteur néophyte
 
Messages: 40
Enregistré le: 27 Mai 2003 à 13:33
Localisation: Cul-de-sac

Re: sessions phpBB3 et formulaire sur son site

Messagepar Zoddo » 15 Sep 2013 à 17:02

ah ... j'avais pas trop fait attention à cette partie de ton code ... $upload est un objet.
Tu peut récupérer le nom du fichier à partir de $file->get('realname');

J'ai vérifié dans le dossier "images/editeur"
Vérifie le chemin dans le script.
J'ai oublier de te préciser que dans la fonction filespec::move_file(), le paramètre $destination est préfixé de $phpbb_root_path :
Code: Tout sélectionner
        // We need to trust the admin in specifying valid upload directories and an attacker not being able to overwrite it...
        $this->destination_path = $phpbb_root_path . $destination; 
[Doc] Installer une extension - [Extension] Post Models - [Recrutement] Équipe des Extensions
Si vous considérez votre requête comme résolue, merci d'ajouter l'attribut de sujet [Réglé]
Zoddo
Equipe site
Equipe site
 
Messages: 7034
Enregistré le: 16 Mar 2011 à 18:44
Localisation: Laval / Le Mans

Re: sessions phpBB3 et formulaire sur son site

Messagepar Rico the Hobbit » 15 Sep 2013 à 22:01

J'ai pu déceler une erreur dans le code à cette ligne :
Code: Tout sélectionner
$upload = new fileupload('EDITOR_UPLOAD_', array('jpg', 'jpeg', 'gif', 'png'), 1048576, false, false, false, false);

Lorsque je valide le formulaire, les données ne sont pas validées.

Dans le mysql_query, comment dois-je nommer la variable pour l'image ?

Désolé pour toutes ces questions et merci pour votre soutien !! :)
Bonjour chez vous
Rico the Hobbit
Posteur néophyte
Posteur néophyte
 
Messages: 40
Enregistré le: 27 Mai 2003 à 13:33
Localisation: Cul-de-sac

Re: sessions phpBB3 et formulaire sur son site

Messagepar Zoddo » 15 Sep 2013 à 22:05

Quel erreur ?

Pour récupérer le nom du fichier, il faut utiliser comme je l'ai déjà dit, cette fonction : $file->get('realname');.
[Doc] Installer une extension - [Extension] Post Models - [Recrutement] Équipe des Extensions
Si vous considérez votre requête comme résolue, merci d'ajouter l'attribut de sujet [Réglé]
Zoddo
Equipe site
Equipe site
 
Messages: 7034
Enregistré le: 16 Mar 2011 à 18:44
Localisation: Laval / Le Mans

Re: sessions phpBB3 et formulaire sur son site

Messagepar Rico the Hobbit » 15 Sep 2013 à 22:42

Zoddo a écrit:Quel erreur ?

Eh bien, c'est difficile à expliquer. Lorsqu'il n'y a pas d'erreur, j'ai un message qui m'indique que le formulaire a été validé (message que j'ai mis dans la condition qui valide le formulaire). Or lorsque j'inclus la ligne cité dans mon précédent post et que je valide le formulaire, le message n'apparait pas. Le formulaire n'est donc pas validé et toute la fin du programme n'est pas exécutée. Toutefois, je n'ai pas de message d'erreur. De toute manière, lorsqu'un code php n'est pas bon, soit il ne valide pas la page à partir de la ligne de code invalide soit j'ai le droit à une page blanche.

J'espère que mes explications sont à peu près claires...
Bonjour chez vous
Rico the Hobbit
Posteur néophyte
Posteur néophyte
 
Messages: 40
Enregistré le: 27 Mai 2003 à 13:33
Localisation: Cul-de-sac

Re: sessions phpBB3 et formulaire sur son site

Messagepar sylver35 » 15 Sep 2013 à 23:15

Bonjour,

Pour tout type de développement sur des pages utilisant les sessions de phpbb3, je conseille mon mod erreurs et notices de débug -> http://breizh-portal.com/erreurs-et-not ... t1311.html
Il permet de tracer toutes les erreurs avec différentes infos et donc de résoudre facilement les problèmes...
sylver35
Dieu des floodeurs
Dieu des floodeurs
 
Messages: 5943
Enregistré le: 26 Fév 2008 à 15:58
Localisation: Bretagne

PrécédenteSuivante

Retourner vers Coding, Webmastering et Sécurité informatique

 


  • Articles en relation
    Réponses
    Vues
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum : Bing [Bot] et 3 invités