Function php() - un petit coup de pouce

ZelkiN
WRInaute impliqué
WRInaute impliqué
 
Messages: 500
Inscription: 27 Juil 2007

Function php() - un petit coup de pouce

Message le Ven Jan 07, 2011 15:46

Bonjour à vous WRInautes ;)

Je suis entrain de faire une fonction PHP appelé last_transaction($usersid,$number) mais je rencontre un problème tout simple... mais que je n'arrive cependant pas à régler.

En effet je fais une requête select dans cette fonction, jusqu'à la rien de bien méchant, le truc c'est que ca me met une erreur, la variable $bdd (permettant la connexion a la base de donnée) est introuvable. Elle est pourtant bien défini précedemment...

FONCTION COMPLETE
function last_transaction($usersid,$number) {
require_once('../bdd/bdd.php');
$query_transac = "SELECT usersID, title, montant, date FROM users_transaction WHERE usersID='$usersid'";
$rs_transac = mysql_query($query_transac, $bdd) or die(mysql_error());
$transac = mysql_fetch_assoc($rs_transac);
echo $transac['title'];
}


Est ce que quelqu'un aurait une idée sur ce probleme ? Sachant que si je ne fais appel a ma bdd il n'y a pas de souci, Merci

jeroen
WRInaute passionné
WRInaute passionné
 
Messages: 2461
Inscription: 30 Aoû 2002

Re: Function php() - un petit coup de pouce

Message le Ven Jan 07, 2011 18:45

Code: Tout sélectionner
function last_transaction($usersid,$number) {
   global $bdd;
   require_once('../bdd/bdd.php');
   $query_transac = "SELECT users
   ....

ZelkiN
WRInaute impliqué
WRInaute impliqué
 
Messages: 500
Inscription: 27 Juil 2007

Re: Function php() - un petit coup de pouce

Message le Sam Jan 08, 2011 11:25

Ok merci ca marche nikel, en revanche j'ai entendu dire que les superglobales favorisaient les failles de sécurité ?! Ca craint quelque chose la dedans ?


Blount
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 430
Inscription: 18 Nov 2010

Re: Function php() - un petit coup de pouce

Message le Sam Jan 08, 2011 11:45

On préfère effectivement éviter le plus possible l'utilisation des variables globales.
Le problème de ces dernières, c'est que tu n'es jamais sur du contenu. En théorie, elle contient ta connexion à la BDD, mais en pratique, elle peut être modifiée à tout moment, pour une raison ou une autre.

Une solution est de mettre ta ressource dans une fonction.
Voici un exemple :
Code: Tout sélectionner
# dans ton fichier bdd.php

function getConnection() {
    static $bdd = null;
   
    if ($bdd !== null) {
        return $bdd;
    }
   
    // ton autre code pour initialiser la connexion
}

// ensuite, dans ta fonction last_transaction :
function last_transaction($usersid,$number) {
    $bdd = getConnection();
}


De cette manière, tu es certain du contenu de $bdd (qui est locale dans les fonctions).

Il existe bien entendu plusieurs façon de procéder.

ZelkiN
WRInaute impliqué
WRInaute impliqué
 
Messages: 500
Inscription: 27 Juil 2007

Re: Function php() - un petit coup de pouce

Message le Sam Jan 08, 2011 12:38

J'ai l'impression qu'il y a une erreur Blount, en effet quand j'applique ta méthode la var $bdd n'est pas trouvé ce qui met en erreur la requete SQL (code ci joint)

mysql_query(): supplied argument is not a valid MySQL-Link resource in c:\*******\function.php on line 18


Blount
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 430
Inscription: 18 Nov 2010

Re: Function php() - un petit coup de pouce

Message le Sam Jan 08, 2011 22:13

Peut-être que les ressources ne sont pas prises en compte avec "static" alors.

Montre nous ton code.


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

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