[Réglé] Erreur undefined method phpbb\db\driver\factory::prepapre()

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é] Erreur undefined method phpbb\db\driver\factory::prepapre()

Messagepar Kazuchiwa » 19 Mar 2017 à 22:32

Bonjour/Bonsoir,

Je suis en train de faire un système pour changer le 2eme pseudo sur une page externe, mais dès que je valide j'ai cette erreur :
( ! ) Fatal error: Call to undefined method phpbb\db\driver\factory::prepapre() in E:\wamp64\www\site\mon_compte.php on line 37


Voici le code :
Code: Tout sélectionner
 <?php
        if ($request->is_set_post('pseudo')) {
            $pseudo = $request->is_set_post('pseudo');
            $db->prepapre('UPDATE phpbb_users SET pseudo = '.$pseudo.' WHERE user_id = '.$userdata["user_id"].' ');
            $sql = 'UPDATE ' . USERS_TABLE . '
                                SET pseudo = ' . $pseudo . '
                                WHERE user_id = ' . $user->data['user_id'];
            $db->sql_query($sql);
            echo'Bravo, tu as un nouveau pseudo !';
        }
        else {
            ?>
            <form method="post">
                <div class="input-group input-group-lg">
            <span class="input-group-addon">
                <i class="fa fa-user">

                </i>
            </span>
                    <input class="form-control" placeholder="pseudo" name="pseudo" value="<?php echo $user->data['pseudo']; ?>"type="text">
                    <br />
                </div>
                <button class="btn btn-lg btn-success" type="submit"><i class="glyphicon glyphicon-floppy-save"> Envoyer </i></button>
            </form>
        <?php } ?>


Peut-on m'aider ?
Merci d'avance
Modifié en dernier par Kazuchiwa le 22 Mar 2017 à 19:52, modifié 1 fois.
Avatar de l’utilisateur
Kazuchiwa
Posteur néophyte
Posteur néophyte
 
Messages: 49
Enregistré le: 17 Juil 2016 à 15:51

Re: Erreur undefined method phpbb\db\driver\factory::prepapre()

Messagepar pierredu » 20 Mar 2017 à 10:35

Bonjour,

prepapre ?
Avatar de l’utilisateur
pierredu
Extensions
Extensions
 
Messages: 826
Enregistré le: 29 Mai 2011 à 06:49
Localisation: Paris

Re: Erreur undefined method phpbb\db\driver\factory::prepapre()

Messagepar Kazuchiwa » 20 Mar 2017 à 17:22

Bonjour,

Je n'avais pas vu ! xD J'ai donc remplacé prepapre par prepare, mais j'ai toujours l'erreur qui s'affiche :s
( ! ) Fatal error: Call to undefined method phpbb\db\driver\factory::prepare() in E:\wamp64\www\site\mon_compte.php on line 37
Avatar de l’utilisateur
Kazuchiwa
Posteur néophyte
Posteur néophyte
 
Messages: 49
Enregistré le: 17 Juil 2016 à 15:51

Re: Erreur undefined method phpbb\db\driver\factory::prepapre()

Messagepar pierredu » 20 Mar 2017 à 18:45

J'ai cherché dans cette partie du code de phpBB et je ne vois pas ce que devrait être cette fonction appelée.

Qu'est-ce qui doit être réalisé par cette ligne ?
Avatar de l’utilisateur
pierredu
Extensions
Extensions
 
Messages: 826
Enregistré le: 29 Mai 2011 à 06:49
Localisation: Paris

Re: Erreur undefined method phpbb\db\driver\factory::prepapre()

Messagepar Kazuchiwa » 20 Mar 2017 à 20:15

La requête doit faire une update du "pseudo" dans la base de données cette table se trouve dans phpbb_users
Avatar de l’utilisateur
Kazuchiwa
Posteur néophyte
Posteur néophyte
 
Messages: 49
Enregistré le: 17 Juil 2016 à 15:51

Re: Erreur undefined method phpbb\db\driver\factory::prepapre()

Messagepar ABDev » 20 Mar 2017 à 20:39

Hello,
Ça n'a aucun intérêt d'utiliser la méthode prepare, si derrière vous exécutez la requête de façon classique.
D'ailleurs, avez-vous vérifié préalablement que vous appeliez bien la classe db ?
De plus, votre requête va vous retourner une erreur vu que vous parsez la variable $pseudo comme si c'était un entier, un booléen ou un numérique.
Pour se payer le luxe d'être feignant, il faut sans cesse faire travailler ses méninges ! (Korben)
Avatar de l’utilisateur
ABDev
Programmationateur
Programmationateur
 
Messages: 15581
Enregistré le: 12 Mai 2005 à 23:54

Re: Erreur undefined method phpbb\db\driver\factory::prepapre()

Messagepar Kazuchiwa » 20 Mar 2017 à 21:50

Bonsoir,

Voici les fichiers appelez dans la page :
Code: Tout sélectionner
include($phpbb_root_path . 'common.' . $phpEx);
require($phpbb_root_path . 'includes/functions_user.' . $phpEx);
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);

Il me semble que ça appel la classe db

Je n'ai pas trop compris ce que vous m'aviez dit, je ne suis pas très bon en sql...
Avatar de l’utilisateur
Kazuchiwa
Posteur néophyte
Posteur néophyte
 
Messages: 49
Enregistré le: 17 Juil 2016 à 15:51

Re: Erreur undefined method phpbb\db\driver\factory::prepapre()

Messagepar ABDev » 20 Mar 2017 à 22:36

Kazuchiwa a écrit:Je n'ai pas trop compris ce que vous m'aviez dit, je ne suis pas très bon en sql...

Rien à voir avec SQL et consorts, c'est la base même de la déclaration de variables en développement ...

Tout le paquet qui suit :

Code: Tout sélectionner
        if ($request->is_set_post('pseudo')) {
            
$pseudo $request->is_set_post('pseudo');
            
$db->prepapre('UPDATE phpbb_users SET pseudo = '.$pseudo.' WHERE user_id = '.$userdata["user_id"].' ');
            
$sql 'UPDATE ' USERS_TABLE '
                                SET pseudo = ' 
$pseudo '
                                WHERE user_id = ' 
$user->data['user_id'];
            
$db->sql_query($sql);
            echo
'Bravo, tu as un nouveau pseudo !';
        } 

Vous le remplacez par ceci :

Code: Tout sélectionner
if ($pseudo $request->is_set_post('pseudo'))
{
    
$sql 'UPDATE ' USERS_TABLE "
        SET pseudo = '" 
$db->sql_escape($pseudo) . "'
        WHERE user_id = " 
. (int) $user->data['user_id'];
    
$db->sql_query($sql);

    echo 
'Bravo, tu as un nouveau pseudo !';

Vous aurez au final exactement le même résultat ...
Pour se payer le luxe d'être feignant, il faut sans cesse faire travailler ses méninges ! (Korben)
Avatar de l’utilisateur
ABDev
Programmationateur
Programmationateur
 
Messages: 15581
Enregistré le: 12 Mai 2005 à 23:54

Re: Erreur undefined method phpbb\db\driver\factory::prepapre()

Messagepar Kazuchiwa » 20 Mar 2017 à 22:45

Ah j'avais testé comme ceci mais je n'avais pas enlevez-le $pseudo = $request->is_set_post('pseudo'); ^^

J'ai mis ce que vous m'aviez donné, ça fonctionne très bien mais le pseudo n'est pas retenu dans la base de données...
Avatar de l’utilisateur
Kazuchiwa
Posteur néophyte
Posteur néophyte
 
Messages: 49
Enregistré le: 17 Juil 2016 à 15:51

Re: Erreur undefined method phpbb\db\driver\factory::prepapre()

Messagepar ABDev » 20 Mar 2017 à 22:59

Faites un var_dump sur $pseudo, histoire de vérifier que la variable ne serait pas vide.
Pour se payer le luxe d'être feignant, il faut sans cesse faire travailler ses méninges ! (Korben)
Avatar de l’utilisateur
ABDev
Programmationateur
Programmationateur
 
Messages: 15581
Enregistré le: 12 Mai 2005 à 23:54

Re: Erreur undefined method phpbb\db\driver\factory::prepapre()

Messagepar Kazuchiwa » 20 Mar 2017 à 23:03

J'obtiens ceci : E:\wamp64\www\site\mon_compte.php:62:null.
Je pense avoir mal configurer la table "pseudo"
Avatar de l’utilisateur
Kazuchiwa
Posteur néophyte
Posteur néophyte
 
Messages: 49
Enregistré le: 17 Juil 2016 à 15:51

Re: Erreur undefined method phpbb\db\driver\factory::prepapre()

Messagepar ABDev » 20 Mar 2017 à 23:08

La colonne, pas la table ...
Pour se payer le luxe d'être feignant, il faut sans cesse faire travailler ses méninges ! (Korben)
Avatar de l’utilisateur
ABDev
Programmationateur
Programmationateur
 
Messages: 15581
Enregistré le: 12 Mai 2005 à 23:54

Re: Erreur undefined method phpbb\db\driver\factory::prepapre()

Messagepar Kazuchiwa » 20 Mar 2017 à 23:11

>.< Je vais regarder ceci je vous tiens informé ! :)
Avatar de l’utilisateur
Kazuchiwa
Posteur néophyte
Posteur néophyte
 
Messages: 49
Enregistré le: 17 Juil 2016 à 15:51

Re: Erreur undefined method phpbb\db\driver\factory::prepapre()

Messagepar Kazuchiwa » 22 Mar 2017 à 19:52

Tout marche je met le sujet en résolue merci à vous !
Avatar de l’utilisateur
Kazuchiwa
Posteur néophyte
Posteur néophyte
 
Messages: 49
Enregistré le: 17 Juil 2016 à 15:51


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 1 invité