Rex

  • Signature
    Un hamster dit : J'ai dressé le scientifique, quand j'appuie sur le bouton, il me donne des graines
  • Site web
  • Nombre de sujets
    4
  • Nombre de messages
    175
  • Nombre de commentaires
    2
  • Nombre de news
    Aucune
  • Niveau en PHP
    Débutant

Ses derniers messages sur les forums

Rex
le 28/02/2005 à 09:21
bbcode
j'sais pas, demande à Google ...
Un hamster dit : J'ai dressé le scientifique, quand j'appuie sur le bouton, il me donne des graines
Rex
le 28/02/2005 à 09:20
[POO] Variables de sessions dans les objets
Autre remarque :

Mettre à jour les sessions ou les cookies depuis ta classe n'est pas une très bonne idée en terme de conception objet.

Accèder à une base de données et écrire dans la session, c'est deux monde complètement différent.
Le jour où tu vas changer de base de données, tu vas devoir réécrire aussi l'accès aux sessions.

Si on voulait faire de la POO un poil plus correcte, on devrait écrire de cette manière :

<?php
// Objet d'accès à la base de données qui hérite
// d'une classe nommé "BD"
$bd = new MySQL();
// AccessMaTable est une classe héritant d'une
// autre et qui contient directement le nom de
// la table où sont les données
$rechercher = new AccessMaTable($bd);
// On fixe les conditions
$rechercher->condition = $conditions;

// On lance la recherche et on remplit la session
$_SESSION['belette'] = $rechercher->execute();
?>


Ensuite, rien ne t'empêche de mettre ce code dans une fonction ou dans une autre classe spécialisée.

Bref, en POO, il faut décomposer le travail en composants élémentaires.

Avec ça, on peut imaginer changer la base de données et au lieu de faire "new MySQL()" on fait "new PostGresql" sans rien changer dans le reste du code.
Un hamster dit : J'ai dressé le scientifique, quand j'appuie sur le bouton, il me donne des graines
Rex
le 28/02/2005 à 09:03
bbcode
htmlarea et consort ne font pas du bbcode, mais du html directement. Ce qui est beaucoup plus souple ...
Un hamster dit : J'ai dressé le scientifique, quand j'appuie sur le bouton, il me donne des graines
Rex
le 28/02/2005 à 09:01
authentification
hmmmm ... pourquoi faire une boucle ?

<?php
$values = implode("'), ('$id', '", $_POST['cp'] );
$values = "('$id', '$values')";

$requete = 'INSERT INTO partage_id (user_id, code_postal) VALUES ' . $values;
?>


Au passage, il NE FAUT PAS utiliser la fonction mysql_db_query (voir la doc).
Un hamster dit : J'ai dressé le scientifique, quand j'appuie sur le bouton, il me donne des graines
Rex
le 26/02/2005 à 17:17
petit probleme de md5
Au sujet des apostrophes, je m'explique :

Dans le cas flagrant ici, si les magic_quotes sont activés, il n'y a pas de risque d'injection SQL.
Mais l'auteur de ce script en a-t-il conscience ?

En cela, les magic_quotes ont sauvé de nombreux sites web.

Mais une chose est claire, si on a conscience des problèmes d'injection SQL, il faut absolument utiliser mysql_real_escape_string (et non addslashes) en faisant attention de supprimer les slahes introduit par magic_quotes s'ils sont activés.
Un hamster dit : J'ai dressé le scientifique, quand j'appuie sur le bouton, il me donne des graines
Rex
le 25/02/2005 à 23:12
comment faire un espace membre
On voit bien que tu n'étais pas là avant que le titre ne soit modifié par un modérateur ...
Un hamster dit : J'ai dressé le scientifique, quand j'appuie sur le bouton, il me donne des graines
Rex
le 25/02/2005 à 22:20
petit probleme de md5
hermm ... herrmmm ... chers PHPnautes, je vous invite à lire l'article La magie noire des apostrophes magiques et surtout l'explication sur l'injection SQL.

smiley
Un hamster dit : J'ai dressé le scientifique, quand j'appuie sur le bouton, il me donne des graines
Rex
le 25/02/2005 à 16:37
[POO] Variables de sessions dans les objets
Bon, il y avait de TRES nombreuses erreurs.
La plus flagrante étant "if($session = true)". Avec un seul égal, ça ne peut pas fonctionner car c'est une affectation et non une comparaison.

Ensuite :

1/ affectes des variables locales et non des propriétés de classes inexistante ($requete et non $this->requete, cette dernière n'étant pas déclarée par un "var" dans la classe.
2/ Ton constructeur de classe ne servait à rien
3/ Je t'invite à découvrir les joies de la fonction implode et array_keys
4/ oublies "while(list=each)" et goûtes à la simplicité de "foreach"
5/ Ta méthode "insertion" avait des paramètres inutilisés ?!? ($session et $cookie)
6/ Pourquoi retourner "insertok" alors que ce sera TOUJOURS le cas sauf quand ça plante, mais il y a un "die"
7/ Oublies le "SELECT *"
8/ Pour un SELECT, c'est mysql_num_rows et non mysql_affected_rows
9/ Utilises mysql_fetch_assoc qui retourne directement un tableau associatif (ça fait sauter de nombreuses lignes de code)
10/ Utilises un entier plutôt que des paramètres booléens
11/ Evites de mélanger anglais et français ($requete et $result)
12/ Ton approche objet est à revoir. Tu ne sembles pas comprendre à quoi ça sert vraiment. Inutiles de faire des classes si c'est pour faire ce genre de chose.
Voilà, c'est déjà pas mal.
En prime, voici ton code revu (et encore je ne trouve pas ça très objet!):

"code dans le wall"

Pour expliquer le point N°10, regardes ceci :
<?php
$objet->recherche_entree( $champs, $condition, true, false );
?>

En lisant ce code sans regarder la signature de la méthode on ne sait pas à quoi correspond "true, false" alors que ceci :
<?php
$objet->recherche_entree( $champs, $condition, ENREGISTREMENT_SESSION );
?>

On sait que ça enregistre en session et
<?php
$objet->recherche_entree( $champs, $condition, ENREGISTREMENT_SESSION + ENREGISTREMENT_COOKIE);
?>

Ca fait les deux.
Un hamster dit : J'ai dressé le scientifique, quand j'appuie sur le bouton, il me donne des graines
Rex
le 25/02/2005 à 13:44
comment faire un espace membre
no comment.
Un hamster dit : J'ai dressé le scientifique, quand j'appuie sur le bouton, il me donne des graines
LoadingChargement en cours