Variable Fonction

Variable Fonction - PHP - Programmation

Marsh Posté le 21-02-2005 à 18:40:09    

Bonjour à tous, voila mon code d'upload de photo avec enregistrement dans un bdd
 

Citation :

<?
include ("config_db.php" );
define("BASE_DIR","" );
$toto = "fichier";
$toto2 = "fichier2";
 
fileUpload($toto);
fileUpload2($toto2);
 
function fileUpload($toto)
{
$blnRetour = false;
if ( !empty($toto) && is_uploaded_file($_FILES[$toto]['tmp_name']) )
{
$strRepertoire = 'images/';
$strNom = $_FILES[$toto]['name'];
$strNomFichier = BASE_DIR.$strRepertoire.$strNom;
$blnRetour = move_uploaded_file($_FILES[$toto]['tmp_name'], $strNomFichier);
echo "$strNom";
mysql_query("UPDATE catalogue SET img1='$strNom' WHERE id='$id'" );
}
return $blnRetour;
}
 
function fileUpload2($toto2)
{
$blnRetour2 = false;
if ( !empty($toto2) && is_uploaded_file($_FILES[$toto2]['tmp_name']) )
{
$strRepertoire2 = 'images/';
$strNom2 = $_FILES[$toto2]['name'];
$strNomFichier2 = BASE_DIR.$strRepertoire2.$strNom2;
$blnRetour2 = move_uploaded_file($_FILES[$toto2]['tmp_name'], $strNomFichier2);
echo "$strNom2";
mysql_query("UPDATE catalogue SET img2='$strNom2' WHERE id='$id'" );
}
return $blnRetour2;
}
 
?>


 
 
J'ai pas tout optimisé mais c'est pas le sujet. L'echo de $strNom et $strNom2 et l'upload des images se fait pas parfaitement mais pas son inscription dans la base...  
Je prôbleme doit être du fait que le tout se passe dans une fonction, si vous avez une solution, merci.
 
 
frlp

Reply

Marsh Posté le 21-02-2005 à 18:40:09   

Reply

Marsh Posté le 21-02-2005 à 18:42:24    

frlp a écrit :

L'echo de $strNom et $strNom2 et l'upload des images se fait pas parfaitement mais pas son inscription dans la base...  
Je prôbleme doit être du fait que le tout se passe dans une fonction, si vous avez une solution, merci.
 
 
frlp


pas très clair :/

Reply

Marsh Posté le 21-02-2005 à 18:48:15    

Si l'inscription marche mal, c'est surement par ce que la fvariable $id n'existe pas dans la fonction. Il faudrait penser à faire passer la valeur à la fonction si tu veux l'utiliser.

Reply

Marsh Posté le 21-02-2005 à 18:53:19    

$id est dans le formulaire, désolé j'avais pas précisé mais bon...
 
En gros, tout se passe parfaitement, sauf la récupération de la variable $strNom lors de l'inscription dans la base.

Reply

Marsh Posté le 21-02-2005 à 18:56:21    

Et $id tu la recupere comment ? J'ai pas vu de $_POST['id']


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 21-02-2005 à 19:00:01    

'$id' suffit.
 
Le seul prôbleme est la récupération de $strNom, le reste marche nikel.

Reply

Marsh Posté le 21-02-2005 à 19:02:56    

frlp a écrit :

'$id' suffit.
 
Le seul prôbleme est la récupération de $strNom, le reste marche nikel.


non !
$id n'est pas défini dans ta fonction !
faut que tu les mette en global...


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 21-02-2005 à 19:03:08    

Je répête : $id n'existe pas dans la fonction.
On s'en fout que ca soit une valeur qui vienne d'un formulaire d'un cookie ou d'un autre fichier, ca ne change rien au fait que cette variable n'existe pas dans cette fonction.
 
On va reprendre les bases du PHP : une variable existant dans une fonction n'existe que dans cette fonction, une variable existant en dehors des fonction n'est visible qu'en dehors des fonctions. Seuls exections les variables globales.(global $var) Ta variable n'existe donc pas dans la fonction. D'ailleur, il faut pas abuser des "global $var", ca poyusse à programmer n'importe comment.
 
D'ailleur, c'est pas bien travailler avec "register_globals" à "on". Mieux vaut travailler avec le "register_globals" à "off". C'est un peu plus chiant vu qu'on ne peut pas utiliser directement des $var pour utiliser les données mais au moins on sait d'oùm elles viennent. Là avec ton script, tu sais pas si ton $id vient d'unn cookie, d'un formulaier d'un simple lien, d'une session ou directement du serveur en lui même.

Reply

Marsh Posté le 21-02-2005 à 19:12:42    

humm...
 
Lorsque j'éxécute mon script, sur disons l'id 34, le champ img1 et img1 se remplace par rien. Donc $id est pris en compte vu que la modification se fait se fait bien WHERE id = '$id'.
 
Merci

Reply

Marsh Posté le 21-02-2005 à 19:20:43    

Si tu le dis, mais à par si le fichier "config_db.php" fait joujou avec la fonction global, ca ne peut pas marcher.
Et si ca marche, ca serait bien de bien nous décrire PRECISEMENT ton probléme. "Madame Irma" ne passant pas sur ce forum, on ne peut pas deviner ce qui n'est pas écrit.

Reply

Marsh Posté le 21-02-2005 à 19:20:43   

Reply

Marsh Posté le 21-02-2005 à 19:26:51    

C'est tellement difficile en phase de conception d'afficher les messages d'erreur de mysql lorsqu'un problème se produit à ce niveau ?

Reply

Marsh Posté le 21-02-2005 à 19:35:30    

naceroth a écrit :

C'est tellement difficile en phase de conception d'afficher les messages d'erreur de mysql lorsqu'un problème se produit à ce niveau ?


 
Presque aussi dur que de pouvoir admettre qu'on est peut-etre moins qualifiés pour savoir ou notre script foire que ceux qui ont des scripts qui foirent pas


Message édité par esox_ch le 21-02-2005 à 19:36:02

---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 22-02-2005 à 08:50:02    

en conf de base, son register_global est peut etre à ON, donc $id lui suffit pour récupérer la variable venant du formulaire...
 
par contre le fait que tu joue avec un nom de fichier qui n'a pas d'extension

Citation :

$toto = "fichier";
$toto2 = "fichier2";


je sais pas si c'est pas génant pour

Citation :

$strNom = $_FILES[$toto]['name'];

...


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 22-02-2005 à 09:08:00    

Je rappel: pas d'erreur sql, pas de bug, rien niet, juste une inscription vide dans la base. config_db contient simplement les identifiants de la base....
 
en gros, $_FILES[$toto]['name'] n'est pas reconnu comme champ valide dans la requete sql ?  
Ok je cherche dans ce sens, merci xav_.
 
 
 

Reply

Marsh Posté le 22-02-2005 à 09:13:18    

Fait une fois un echo de $id aussi, histoire de voir ce qu'il y a dedans.

Reply

Marsh Posté le 22-02-2005 à 11:11:56    

euh... echo "$id" écrit la valeur qu'on lui donne dans le formulaire...
 
Je vois pas pourquoi vous vous acharner sur $id, le probleme ne vient pas de là.

Reply

Marsh Posté le 22-02-2005 à 11:57:36    

c'est quoi le type de img1 et img2 ?? (dans la bd je veux dire)


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 22-02-2005 à 12:36:44    

c'est en text

Reply

Marsh Posté le 22-02-2005 à 12:42:21    

un text pour un nom de fichier !!
pourquoi pas un (var)char binary ???


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 22-02-2005 à 12:46:40    

pourquoi pas oui, je test aprés bouffé :) merci pour ton aide

Reply

Marsh Posté le 22-02-2005 à 15:34:11    

pas de changements

Reply

Marsh Posté le 22-02-2005 à 15:50:08    

tu dis que le echo de $strNom  marche bien, mais pas l'insertion --> fait un echo de la requete avant son envoi pour voir ce que ça te donne...
fait un truc du genre:

Code :
  1. echo "$strNom";
  2. $req= "UPDATE catalogue SET img1='$strNom' WHERE id='$id'";
  3. echo $req;
  4. mysql_query($req);


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 22-02-2005 à 17:29:36    

Merci beaucoup wav_ , ça marche !
 
Je suis webdesigner donc si t'as besoin d'un design pour ton site ou autre chose, n'hésite pas. Tu me sors d'une belle m...  
 
 

Reply

Marsh Posté le 22-02-2005 à 17:31:34    

heink :heink:
 
comme si le echo allait faire que ca marche...


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 22-02-2005 à 17:53:43    

c'est pas le echo qui fait la chose en effet mais le  
 
$req= "UPDATE catalogue SET img1='$strNom' WHERE  
mysql_query($req);
 
 
C'était tout con, mais encore fallait il trouver

Reply

Marsh Posté le 22-02-2005 à 18:08:53    

[quote=990155,0,23,231299]Merci beaucoup wav_ , ça marche !
 
Je suis webdesigner donc si t'as besoin d'un design pour ton site ou autre chose, n'hésite pas. Tu me sors d'une belle m...[/quote]
http://webxav.chez.tiscali.fr/gif/src1/archi.gif
merci, je fait mes graphisme moi-meme (vu qu'avec CSS c'est plus proche du code qu'autre chose, mais merci de proposer)
 
Par contre mon pseudo c'est Xav
le "_" c'est paske il faut au moins 4 caractère pour s'enregistrer, il me fait plus chier qu'autre chose, par contre le reste j'y tiens ;)


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 22-02-2005 à 18:38:39    

;)

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed