LA GLOBULE

Inscris le 25/09/2002 à 10:40
  • Site web
  • Nombre de sujets
    47
  • Nombre de messages
    8 345
  • Nombre de commentaires
    142
  • Nombre de news
    8 346
  • Niveau en PHP
    Excellent

Ses derniers messages sur les forums

LA GLOBULE
le 27/03/2009 à 07:57
Problème - mysql_query("UPDATE
Et ton champ date est de quel type ? varchar ? ou date ?

Si il est de type date, tu dois entrer une vraie date (genre YYYY-MM-DD ou YYYY-MM-DD HH:MN:SS si tu as un datetime).
LA GLOBULE
le 26/03/2009 à 14:21
Problème - mysql_query("UPDATE
Fais un echo de "UPDATE ".$table." SET date = '".mysql_escape_string($_POST['nouvelleDate'])."' WHERE ID='0'"; pour voir la tronche de ta requête.
LA GLOBULE
le 26/03/2009 à 14:02
Problème - mysql_query("UPDATE
Il faut que tu entoures ta date de guillemets.

Exemple :

<?php
mysql_query("UPDATE ".$table." SET date = '".mysql_escape_string($_POST['nouvelleDate'])."' WHERE ID='0'") or die(mysql_error());
?>


Pense aussi à utiliser mysql_escape_string pour protéger les données que tu vas envoyer à MySQL.

Ta construction de if est louche par contre.
Tu lances l'update SQL quoi qu'il arrive (je ne pense pas que ce soit voulu).
Et si tu rentres dans le else, ben $table n'existe pas, or tu l'utilises dans ta requete.
Utilise des { } pour délimiter tes if, et dans le cas du else, bloque l'éxection d'une facon ou d'une autre pour ne pas faire la requête (exit, header ou bien declarer une variable $erreur, et tu lances l'update que si $erreur n'existe pas, etc.).
LA GLOBULE
le 25/03/2009 à 20:21
Génération d'une requete SQL en fonction des donnnées d'un formulaire
Quelques idées de debug :
- juste avant de lancer tes requêtes SQL, essayes de faire un print_r($_POST) pour voir quelles valeurs tu récupères
- place des echo différents dans chaque if pour voir dans lequel ton script va aller
- ne fais pas confiance dans le tableau $_POST : dans ton else, tu balances direct la variable sans escaper son contenu (dans les elseif, tu ne le fais pas non plus, mais c'est moins génant, car tu sais que tu as la valeur '1') : utilise la fonction mysql_escape_string
- testes si mysql a renvoyé une erreur à PHP en testant si mysql_query a retourné false (et si il retourne false, tu peux lire l'erreur SQL grace à la fonction mysql_error)
LA GLOBULE
le 24/03/2009 à 20:08
analyse de fichiers
Tu as des outils comme phpdocumentor, mais c'est surtout utilisé pour faire une doc d'un ensemble de classes PHP et non directement des variables dans un .php.

Par contre, ces outils demandent l'utilisation de commentaires bien spécifiques, donc quoi qu'il arrive, tu devras "relire" ton code (pour y inclure ces fameux commentaires).
LA GLOBULE
le 24/03/2009 à 19:12
"Injecter" OR ou AND via php
Heu non, pas spécialement. C'est juste un test qui teste que tu ne reçois pas du caca que tu vas injecter dans ta requête SQL.
LA GLOBULE
le 24/03/2009 à 15:58
"Injecter" OR ou AND via php
Ben dans ton formulaire, tu peux faire deux radio qui prendront le nom de 'tri', un qui prend la valeur de AND et l'autre la valeur de OR.

Et dans la page qui va lancer la requete, tu fais un truc de ce genre :

<?php
if (!isset($_POST['tri']) || ($_POST['tri'] != 'AND' && $_POST['tri'] != 'OR')) $_POST['tri'] = 'AND';

$sql = "SELECT ... FROM ... WHERE champs1 = 'toto' ".$_POST['tri']." champs2 = 'titi'";
?>
LoadingChargement en cours