Plusieurs questions sur le php phpboost
Hugo Membre non connecté
Booster Roquette
-
Booster Roquette
- Voir le profil du membre Hugo
- Inscrit le : 13/04/2012
Avec mes petites connaissances en php j'ai créer une page afin de créer des concours.
J'aimerai créer un bouton "Je participe". Le bouton récupère le pseudo du membre en question et l'intègre dans la bdd "phpboost_concours".
Voici ma bdd:

Voici mon code:
Code PHP :
<?php /*################################################## * news.php * ------------------- * begin : June 20, 2005 * copyright : (C) 2005 Viarre Régis * email : crowkait@phpboost.com * * ################################################### * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ###################################################*/ //Titre de la page define('TITLE', 'Concours'); require_once('../kernel/begin.php'); require_once('../kernel/header.php'); ?> <center> <h1>Concours</h1> <p style="color: green; font-size: 16px;">Gagner une M4</p><br /> <img src="/concours/images/lots/lot.jpg" alt="lot" title="Lot a gagner" /></center> <center><strong>Participants</strong></center><br /> <br /> <?php try { // On se connecte à MySQL $bdd = new PDO('mysql:host=xxxxxxx;dbname=xxx', 'xxx', 'xxx'); } catch(Exception $e) { // En cas d'erreur, on affiche un message et on arrête tout die('Erreur : '.$e->getMessage()); } // Si tout va bien, on peut continuer // On récupère tout le contenu de la table jeux_video $reponse = $bdd->query('SELECT * FROM phpboost_concours'); // On affiche chaque entrée une à une while ($donnees = $reponse->fetch()) { ?> <strong><?php echo $donnees['login']; ?></strong> - <?php } $reponse->closeCursor(); // Termine le traitement de la requête ?> <?php require_once('../kernel/footer.php'); ?>
Merci d'avance !
Édité par Hugo Le 17/07/2012 à 01h28
ReidLos Membre non connecté
-
Modérateur
- Voir le profil du membre ReidLos
- Inscrit le : 27/02/2009
- Site internet
- Groupes :
-
Equipe Développement

Sinon pour ton topic, quelle est la question ?
Hugo Membre non connecté
Booster Roquette
-
Booster Roquette
- Voir le profil du membre Hugo
- Inscrit le : 13/04/2012
La questions de mon topic est:
Citation :J'aimerai créer un bouton "Je participe". Le bouton récupère le pseudo du membre en question et l'intègre dans la bdd "phpboost_concours".
EDIT: J'ai fais ceci:
Code PHP :
<?php /*################################################## * news.php * ------------------- * begin : June 20, 2005 * copyright : (C) 2005 Viarre Régis * email : crowkait@phpboost.com * * ################################################### * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ###################################################*/ //Titre de la page define('TITLE', 'Concours'); require_once('../kernel/begin.php'); require_once('../kernel/header.php'); ?> <center> <h1>Concours</h1> <p style="color: green; font-size: 16px;">Gagner une M4</p><br /> <img src="/concours/images/lots/lot.jpg" alt="lot" title="Lot a gagner" /></center> <center><strong>Participants</strong></center><br /> <br /> <?php try { // On se connecte à MySQL $bdd = new PDO('mysql:host=xxxxx;dbname=xxxx', 'xxxx', 'xxxx'); } catch(Exception $e) { // En cas d'erreur, on affiche un message et on arrête tout die('Erreur : '.$e->getMessage()); } ?> <?php // On récupère tout le contenu de la table $reponse = $bdd->query('SELECT user_id, login FROM phpboost_member'); // On affiche chaque entrée une à une while ($donnees = $reponse->fetch()) { ?> <?php $user_id = $bdd->exec('INSERT INTO phpboost_concours(user_id, login) VALUES($user_id, $login)'); echo 'Le jeu a bien été ajouté !'; ?> <?php // On récupère tout le contenu de la table $reponse = $bdd->query('SELECT * FROM phpboost_concours'); // On affiche chaque entrée une à une while ($donnees = $reponse->fetch()) { ?> <strong><?php echo $donnees['login']; ?></strong> - <?php } $reponse->closeCursor(); // Termine le traitement de la requête ?> <?php require_once('../kernel/footer.php'); ?>
Processus:
- On se connecte a la BDD
- On récupère le contenue la table phpboost_member
- On définit les varaibles (la je bloque)
- On les inscrit dans phpboost_concours
- On affiche le contenue de la table phpboost_concours pour afficher les particiapnts
- On ferme la connexion SQL
Seulement a l'étape 2 on récupère toute la table pas seulement l'user_id du membre connecter. Je suppose que je dois utiliser les session php. Un peu d'aide ne serait pas de refus 8-)
Merci d'avance !
Édité par Hugo Le 17/07/2012 à 11h22
ReidLos Membre non connecté
-
Modérateur
- Voir le profil du membre ReidLos
- Inscrit le : 27/02/2009
- Site internet
- Groupes :
-
Equipe Développement
Code PHP :
$User->get_attribute('user_id')
Concernant ta demande, peux tu commencer par faire ta page en HTML dans un TPL ?
Hugo Membre non connecté
Booster Roquette
-
Booster Roquette
- Voir le profil du membre Hugo
- Inscrit le : 13/04/2012
ReidLos Membre non connecté
-
Modérateur
- Voir le profil du membre ReidLos
- Inscrit le : 27/02/2009
- Site internet
- Groupes :
-
Equipe Développement
Hugo Membre non connecté
Booster Roquette
-
Booster Roquette
- Voir le profil du membre Hugo
- Inscrit le : 13/04/2012
Code PHP :
<?php /*################################################## * concours.php * ------------------- * begin : June 20, 2005 * copyright : (C) 2005 Viarre Régis * email : crowkait@phpboost.com * * ################################################### * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ###################################################*/ //Titre de la page define('TITLE', 'Concours'); require_once('../kernel/begin.php'); require_once('../kernel/header.php'); include 'corp.html'; try { // On se connecte à MySQL $bdd = new PDO('mysql:host=xxxx;dbname=xxxx', 'xxx', 'xxx'); } catch(Exception $e) { // En cas d'erreur, on affiche un message et on arrête tout die('Erreur : '.$e->getMessage()); } ?> <?php $user = $user_id->get_attribute('user_id'); $login = $login->get_attribute('login'); // On récupère tout le contenu id et login de la table $reponse = $bdd->query('SELECT user_id,login FROM phpboost_member'); { $bdd->exec('INSERT INTO phpboost_concours(user_id, login) VALUES('$user', '$login');"; ?> <?php // On récupère tout le contenu de la table $reponse = $bdd->query('SELECT login FROM phpboost_concours'); // On affiche chaque entrée une à une while ($donnees = $reponse->fetch()) { ?> <strong><?php echo $donnees['login']; ?></strong> - <?php } $reponse->closeCursor(); // Termine le traitement de la requête ?> <?php require_once('../kernel/footer.php'); ?>
Seulement j'ai un parse error...
Édité par Hugo Le 17/07/2012 à 22h29
Hugo Membre non connecté
Booster Roquette
-
Booster Roquette
- Voir le profil du membre Hugo
- Inscrit le : 13/04/2012
Je suis arrivé a ça:
Code PHP :
<?php /*################################################## * concours.php * ------------------- * begin : June 20, 2005 * copyright : (C) 2005 Viarre Régis * email : crowkait@phpboost.com * * ################################################### * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ###################################################*/ //Titre de la page define('TITLE', 'Concours'); require_once('../kernel/begin.php'); require_once('../kernel/header.php'); include 'corp.html'; try { // On se connecte à MySQL $bdd = new PDO('mysql:host=xxx.net;dbname=xxx', 'xxx', 'xxx'); } catch(Exception $e) { // En cas d'erreur, on affiche un message et on arrête tout die('Erreur : '.$e->getMessage()); } ?> <?php $user = $user_id->get_attribute('user_id'); $login = $login->get_attribute('login'); // On récupère tout le contenu id et login de la table $requete = $bdd->prepare('INSERT INTO phpboost_concours(user_id, login) VALUES(:user, :login)'); $requete->execute(array( 'user'=>$user, 'login'=>$login )) or die(print_r($bdd->errorInfo())); ?> <?php // On récupère tout le contenu de la table $reponse = $bdd->query('SELECT login FROM phpboost_concours'); // On affiche chaque entrée une à une while ($donnees = $reponse->fetch()) { ?> <strong><?php echo $donnees['login']; ?></strong> - <?php } $reponse->closeCursor(); // Termine le traitement de la requête ?> <?php require_once('../kernel/footer.php'); ?>
Cependant j'arrive a des erreur PHP:
Suggestion : Undefined variable: user_id dans le fichier /public_html/concours/concours.php à la ligne 45
Fatal error: Call to a member function get_attribute() on a non-object in /public_html/concours/concours.php on line 45
Ceci est du a la récupération du membre connecté.
Je commence a voir la fin du tunnel ouf !
Merci d'avance
ReidLos Membre non connecté
-
Modérateur
- Voir le profil du membre ReidLos
- Inscrit le : 27/02/2009
- Site internet
- Groupes :
-
Equipe Développement
Code PHP :
$user = $user_id->get_attribute('user_id'); $login = $login->get_attribute('login');
C'est $User et pas user_id->..() et $login->..()
Hugo Membre non connecté
Booster Roquette
-
Booster Roquette
- Voir le profil du membre Hugo
- Inscrit le : 13/04/2012
Code PHP :
$User = $User->get_attribute('User'); $login = $login->get_attribute('login');
Ce qui donne:
Code PHP :
<?php /*################################################## * concours.php * ------------------- * begin : June 20, 2005 * copyright : (C) 2005 Viarre Régis * email : crowkait@phpboost.com * * ################################################### * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ###################################################*/ //Titre de la page define('TITLE', 'Concours'); require_once('../kernel/begin.php'); require_once('../kernel/header.php'); include 'corp.html'; try { // On se connecte à MySQL $bdd = new PDO('mysql:host=sql1.cluster1.easy-hebergement.net;dbname=airsoft33a', 'airsoft33a', 'electrochoc33650'); } catch(Exception $e) { // En cas d'erreur, on affiche un message et on arrête tout die('Erreur : '.$e->getMessage()); } ?> <?php $User = $User->get_attribute('User'); $Login = $Login->get_attribute('Login'); // On récupère tout le contenu id et login de la table $requete = $bdd->prepare('INSERT INTO phpboost_concours(user_id, login) VALUES(:user, :login)'); $requete->execute(array( 'lser'=>$User, 'login'=>$Login )) or die(print_r($bdd->errorInfo())); ?> <?php // On récupère tout le contenu de la table $reponse = $bdd->query('SELECT login FROM phpboost_concours'); // On affiche chaque entrée une à une while ($donnees = $reponse->fetch()) { ?> <strong><?php echo $donnees['login']; ?></strong> - <?php } $reponse->closeCursor(); // Termine le traitement de la requête ?> <?php require_once('../kernel/footer.php'); ?>
Édité par Hugo Le 19/07/2012 à 12h44
ReidLos Membre non connecté
-
Modérateur
- Voir le profil du membre ReidLos
- Inscrit le : 27/02/2009
- Site internet
- Groupes :
-
Equipe Développement
Code PHP :
$user_id = $User->get_attribute('user_id'); $login = $User->get_attribute('login');
Hugo Membre non connecté
Booster Roquette
-
Booster Roquette
- Voir le profil du membre Hugo
- Inscrit le : 13/04/2012
Code PHP :
<?php /*################################################## * concours.php * ------------------- * begin : June 20, 2005 * copyright : (C) 2005 Viarre Régis * email : crowkait@phpboost.com * * ################################################### * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ###################################################*/ //Titre de la page define('TITLE', 'Concours'); require_once('../kernel/begin.php'); require_once('../kernel/header.php'); include 'corp.html'; try { // On se connecte à MySQL $bdd = new PDO('mysql:host=xxxx;dbname=xxx', 'xxx', 'xxxx'); } catch(Exception $e) { // En cas d'erreur, on affiche un message et on arrête tout die('Erreur : '.$e->getMessage()); } $user_id = $User->get_attribute('user_id'); $login = $User->get_attribute('login'); // On récupère tout le contenu id et login de la table $requete = $bdd->prepare('INSERT INTO phpboost_concours(user_id, login) VALUES(:user_id, :login)'); $requete->execute(array( 'user_id'=>$user_id, 'login'=>$login )) or die(print_r($bdd->errorInfo())); ?> <?php // On récupère tout le contenu de la table $reponse = $bdd->query('SELECT login FROM phpboost_concours'); // On affiche chaque entrée une à une while ($donnees = $reponse->fetch()) { ?> <strong><?php echo $donnees['login']; ?></strong> - <?php } $reponse->closeCursor(); // Termine le traitement de la requête ?> <?php require_once('../kernel/footer.php'); ?>
Je n'ai plus de message d'erreur php seulement une ligne:
Citation :
Array ( [0] => 00000 [1] => [2] => ) 1
De plus j'aimerai bloquer l'execution du script tant que le membre n'a pas cliquer sur le bouton "Je participe" présent dans corp.html (que j'ai inclus)
Zncore merci !
Édité par Hugo Le 19/07/2012 à 15h04
ReidLos Membre non connecté
-
Modérateur
- Voir le profil du membre ReidLos
- Inscrit le : 27/02/2009
- Site internet
- Groupes :
-
Equipe Développement
Hugo Membre non connecté
Booster Roquette
-
Booster Roquette
- Voir le profil du membre Hugo
- Inscrit le : 13/04/2012
ReidLos Membre non connecté
-
Modérateur
- Voir le profil du membre ReidLos
- Inscrit le : 27/02/2009
- Site internet
- Groupes :
-
Equipe Développement
- Nom du module
- schéma de comment ça doit marcher avec des annotations
De préférence je souhaiterais le faire sur la version 4.0 si ça te convient.
ReidLos
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie