addslashes() : Erreur byzarre !

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : addslashes() : Erreur byzarre !

par Ajoloca » 30 nov. 2006, 23:12

Comment veux-tu qu'on devine ce genre de choses ?

Dans ton post tu ne parles que de récupérer la valeur, pas comment tu vas l'utiliser.
ben je sais bien, mais la soluation ne marche pas ...
Là aussi, ça veux dire quoi, ça ne marche pas ?

Tu as des erreurs ?
Si oui, lequelles ?
Quel est ton code ?

par Invité » 30 nov. 2006, 23:02

ben je sais bien, mais la soluation ne marche pas ...

Dans ma table sql j'ai que une lettre de description.

par Ajoloca » 30 nov. 2006, 21:59

Bonjour,
Je ne suis pas sur que ton "up" soit apprécié, déjà par son fait mais en plus si deux post plus haut on t'a donné la solution.
Ah bah oui, mais non ! :) (ouais je sais, ça veut rien dire)

addslashes est une fonction qui s'applique à une chaine. Dans ton cas $_POST['desimg'] est un tableau contenant une chaine pour chaque image. Il ne faut donc pas appeler la fonction sur le tableau, mais sur chaque chaine.

Par ailleurs tu dois avoir un soucis sur l'association de la description et le fichier.. il te faudrait un compteur pour suivre les fichiers et trouver la description corresondante :)
$cpt = 0; // compteur de position
foreach($_FILES...) {
  ...
  $desimg = addslashes($_POST['desimg'][$cpt]); // la $cpt ième description pour le $cpt ième fichier
  $cpt++; // incrémentation
}

par Invité » 30 nov. 2006, 21:37

Si qlq peu donnez un coup de main Car c'est assez chiant avec les ' !

par Invité » 29 nov. 2006, 19:08

Merci de ta réponse.

Mais j'avais vu ceci

Code : Tout sélectionner

reset($_POST); $tablo = array(); foreach($_POST as $key => $value) { $tablo[$key] = addslashes($value); } $message = ...
Il est pas possible de mettre tou sa dans le foreach ?

par Ryle » 29 nov. 2006, 13:38

Ah bah oui, mais non ! :) (ouais je sais, ça veut rien dire)

addslashes est une fonction qui s'applique à une chaine. Dans ton cas $_POST['desimg'] est un tableau contenant une chaine pour chaque image. Il ne faut donc pas appeler la fonction sur le tableau, mais sur chaque chaine.

Par ailleurs tu dois avoir un soucis sur l'association de la description et le fichier.. il te faudrait un compteur pour suivre les fichiers et trouver la description corresondante :)
$cpt = 0; // compteur de position
foreach($_FILES...) {
  ...
  $desimg = addslashes($_POST['desimg'][$cpt]); // la $cpt ième description pour le $cpt ième fichier
  $cpt++; // incrémentation
}

par Invité » 28 nov. 2006, 21:14

Bonjour voici le formulaire

<form method="post" enctype="multipart/form-data" action="?direction=photo&ajout=ok" >

Nom de l'album photo : 
<input  type="text" name="nom" size="30">
Description : <br>
<textarea name="description" rows="5" cols="62"></textarea>
<br>

<input type="file" name="imgfile[]" />
<input name="desimg[]" size="30" />

<input type="file" name="imgfile[]" />
<input name="desimg[]" size="30" />

<input type="file" name="imgfile[]" />
<input name="desimg[]" size="30" />

<input type="file" name="imgfile[]" />
<input name="desimg[]" size="30" />

<p><input type="submit" class="bouton" value=" Envoyer " name="submit" onClick="if(verif(this.form)) { return true; } else { return false; }"></p>
</form>
En faite ceu qui ne marche pas c'est desimg[] avec le addslash car des qUE l'on met des ' sa ne marche plus ...

Merci de votre aide

par Ryle » 28 nov. 2006, 11:39

C'est surtout le type et la valeur de $_POST['desimg'] qu'il faudrait connaître... A priori, en dehors du fait d'écraser inutilement ton $desimg par la même valeur à chaque itération, ça ne devrait pas poser de problème.

Au pire, tu peux sortir cette ligne là de ta boucle en la plaçant avant, le résultat sera le même :) (en plus performant ;))

Je serais curieux de savoir "ce qui ne marche pas". Tu as un message d'erreur ? ca serait bien de le partager :) Tu n'as pas le résultat souhaité ? As-tu affiché tes variables $_POST['desimg'] et $desimg ? avec et sans le addslashes ?

par Cyrano » 28 nov. 2006, 08:38

Comment est structuré ton formulaire ?

par Invité » 28 nov. 2006, 08:36

J'ai trouver un code qui devrai pouvoir marcher cependant je n'arrive pas a l'adpater avec le foreach
foreach($_POST as $key => $value) {
$tablo[$key] = addslashes($value);
et celui ci

Code : Tout sélectionner

foreach ($_FILES['imgfile']['tmp_name'] as $key => $value) {

par Invité » 27 nov. 2006, 23:33

Humm

On ne peu pas faire sa en boucle ?

Comment peu t'on dire a la fonction addslash de fonctionner si on peu pas la mettre dans la boucle ?

par Cyrano » 27 nov. 2006, 22:57

Une boucle sert éventuellement à traiter des tableaux indexés : de la manière dont tu as mis ça, ta variable $_POST['desimg'] est traitée à chaque tour, nombre de tour déterminé en fonction d'une autre variable qui est $_FILES : il y a un os dans le fromage là.

addslashes() : Erreur byzarre !

par Fab14 » 27 nov. 2006, 22:45

Hello
Voila j'ai mon formulaire
foreach ($_FILES['imgfile']['tmp_name'] as $key => $value) {

$file_tmp=$value;//nom reel de l'image 

$file_type = $_FILES['imgfile']['type'][$key];
$file_name = $_FILES['imgfile']['name'][$key];
$file_size = $_FILES['imgfile']['size'][$key];

$desimg = addslashes($_POST['desimg']);

//check file extension//////////////////////
$ext = strrchr($file_name,'.');
tou marche bien sauf la ligne
$desimg = addslashes($_POST['desimg']);
si je met
$desimg = $_POST['desimg'];
sa marche tres bien dans la boucle mes image on leur description mais dés que je met cela
$desimg = addslashes($_POST['desimg']);
pu rien ne marche ... et jai que une lettre dans la descrtiption .... qlq c'est pourquoi ?

merci