bonjour,
contexte:
j'utilise php afin de renseigner une base access (d'ou les procedures odbc du prg ci-dessous).
procedures:
sur ma page web, je recupere a l'aide de formulaires des renseignements tels que $titre_doc, $date_parution, $reference, $chemin_doc ou $observations.
j'applique aux variables $reference, $titre_doc et $observations la procedures addSlashes(). (l. 5 a 7)
je joints ensuite les variables ainsi transformees a ma table 'document'. (l. 10)
pour continuer, j'interroge ma table 'document' afin de connaitre le 'NuméroAuto' (=> 'no_doc') attribue a mon enregistrement par access. (l. 11)
enfin, j'utilise ce 'NuméroAuto' pour creer une copie du fichier sur le serveur. (l. 13)
programme:
1 $date_enregistrement = strtotime("now");
2 $date_parution = mktime (0, 0, 0, $mois, $jour, $annee);
3 if ($reference == "")
4 $reference = "Sans références";
5 $reference = addSlashes($reference);
6 $titre_doc = addSlashes($titre_doc);
7 $observations = addSlashes($observations);
8 echo "INSERT INTO document (utilisateur, date_enr, lien_doc, titr_doc, cod_pub, ref_doc, date_doc, obs_doc) VALUES ('$individu', $date_enregistrement, \"$nom_fichier\", \"$titre_doc\", $num_revue, \"$reference\", $date_parution, \"$observations\");<br>";
9 echo "SELECT no_doc FROM document WHERE utilisateur = '$individu' AND date_enr = $date_enregistrement AND lien_doc = \"$nom_fichier\" AND titr_doc = \"$titre_doc\" AND cod_pub = $num_revue AND date_doc = $date_parution AND obs_doc = \"$observations\";";
10 odbc_do($cnx, "INSERT INTO document (utilisateur, date_enr, lien_doc, titr_doc, cod_pub, ref_doc, date_doc, obs_doc) VALUES ('$individu', $date_enregistrement, \"$nom_fichier\", \"$titre_doc\", $num_revue, \"$reference\", $date_parution, \"$observations\");");
11 $numero_fichier = odbc_do($cnx, "SELECT no_doc FROM document WHERE utilisateur = '$individu' AND date_enr = $date_enregistrement AND lien_doc = \"$nom_fichier\" AND titr_doc = \"$titre_doc\" AND cod_pub = $num_revue AND date_doc = $date_parution AND obs_doc = \"$observations\";");
12 if ($extension_fichier <> "")
13 copy($chemin_doc, "docs_scannes/".odbc_result($numero_fichier, no_doc).$extension_fichier);
probleme:
lorsque je mets des '''''' la requete 'INSERT INTO' (l. 10) ne fonctionne plus.
pourtant si je fais un copier du resultat de la procedure "echo "INSERT INTO ...";" (l. 8) et que je le colle dans l'assistant de creation de requete d'access, l'enregistrement passe sans aucun probleme !!!
on dirait qu'access comprend ma requete mais que php n'arrive pas a lui envoyer convenablement ?!
toujours est il que je suspecte les procedures addSlashes() d'etre pour quelque chose dans cette histoire ...
quelqu'1 saurait-il expliquer cela et m'aider a resoudre mon probleme ???
merci a vous,
alonsyl