IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

correction d'une foreach


Sujet :

Langage PHP

  1. #1
    apt
    apt est déconnecté
    Membre régulier
    Inscrit en
    Mai 2002
    Messages
    867
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 867
    Points : 118
    Points
    118
    Par défaut correction d'une foreach
    Bonjour,

    J'aimerais changé ce bout de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $title = ($_POST['title'];
    $post = $_POST['post'];
    $titleimg = $_POST['titleimg'];
    	if(verifiesimage($_POST['linkupload'], 150) == TRUE)
    	{
    		$linkupload = $_POST['linkupload'];
    	}
    par ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    foreach ($_POST as $key => $value) {
    		if ( $value == $_POST['linkupload']) {
    			if(verifiesimage($_POST['linkupload'], 150) == TRUE)
    			{
    				$linkupload = $_POST['linkupload'];
    			}
     
    			$key = $_POST[$key];
    		}
    	}
    Mais ça ne marche pas !!

    Merci d'avance.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu devrais effectivement revoir le principe d'une boucle foreach().

    En dehors de ça, pourquoi vouloir mettre une boucle ici ?

  3. #3
    apt
    apt est déconnecté
    Membre régulier
    Inscrit en
    Mai 2002
    Messages
    867
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 867
    Points : 118
    Points
    118
    Par défaut
    Seulement pour ne pas réécrire toutes les variables

  4. #4
    Membre éprouvé Avatar de vorace
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2010
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2010
    Messages : 573
    Points : 915
    Points
    915
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    			if(verifiesimage($_POST['linkupload'], 150) == TRUE)
    			{
    				$linkupload = $_POST['linkupload'];
    			}
     
    			$key = $_POST[$key];
    quand tu fais ça tu récupère exactement la même valeur dans $key et $linkupload parce que $_POST[$key] = $_POST['linkupload'], si c'est la clé que tu veux récupérer, elle est déjà dans $key, tu n'as pas besoin de lui affecter $_POST[$key]...

  5. #5
    apt
    apt est déconnecté
    Membre régulier
    Inscrit en
    Mai 2002
    Messages
    867
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 867
    Points : 118
    Points
    118
    Par défaut
    Parmi tout les POST, je devrais vérifier la valeur de $_POST['linupload'] (lien complet d'une image).

    C'est pour ça que j'ai fais ce test.

  6. #6
    Membre éprouvé Avatar de vorace
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2010
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2010
    Messages : 573
    Points : 915
    Points
    915
    Par défaut
    ce que je veux dire c'est que $key contient le name de l'input et $valeur sa value, quand ton input s'appelle linkupload $linkupload et $key contiendront tout les deux la même valeur et dans ton foreach comme tu utilises toujours $key tu écrases les valeurs de tes champs et tu ne récupère que la valeur du dernier...
    ce que tu peux faire dans ton foreach c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ${$key} = CleanPost($valeur);
    tu as ainsi des variables qui ont le nom de tes input avec pour valeur les values nettoyé avec ta fonction cleanpost que tu as du corriger...

  7. #7
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu as la fonction extract() qui fait déjà ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    extract($_POST);
    $linkupload = (verifiesimage($linkupload, 150)) ? $linkupload : NULL;
    Il n'est cependant pas recommandé de créer automatiquement les variables, quelque soit la méthode.

  8. #8
    Membre éprouvé Avatar de vorace
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2010
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2010
    Messages : 573
    Points : 915
    Points
    915
    Par défaut
    crées les variables mais ne les nettoies pas.

  9. #9
    apt
    apt est déconnecté
    Membre régulier
    Inscrit en
    Mai 2002
    Messages
    867
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 867
    Points : 118
    Points
    118
    Par défaut
    Citation Envoyé par vorace Voir le message
    ce que tu peux faire dans ton foreach c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ${$key} = CleanPost($valeur);
    tu as ainsi des variables qui ont le nom de tes input avec pour valeur les values nettoyé avec ta fonction cleanpost que tu as du corriger...
    par exemple si je veux utiliser la variable $title ou $linkupload, comment le faire ?

    parce que j'ai essayé d'afficher cette variable, mais elle est toujours vide ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <p><?php echo $title;?></p>

  10. #10
    Membre éprouvé Avatar de vorace
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2010
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2010
    Messages : 573
    Points : 915
    Points
    915
    Par défaut
    si tu veux à la base si $title est vide c'est parceque tu as une faute dans ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $title = ($_POST['title'];
    la parenthèse est en trop et si tu veux une variable du nom de l'input la ligne de code suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ${$key} = CleanPost($valeur);
    le fait.
    exemple avec ton input title
    dans le foreach, quand $key ="title" tu vas avoir $title qui sera égale à sa valeur $valeur.

  11. #11
    apt
    apt est déconnecté
    Membre régulier
    Inscrit en
    Mai 2002
    Messages
    867
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 867
    Points : 118
    Points
    118
    Par défaut
    L'erreur était dans le manque d'un $ entre {}:

    ${$key} = CleanPost($valeur);

    mais pourquoi écrire ${$key} au lieu $key seulement ?

  12. #12
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    $key est la variable "key"
    ${$key} est la variable dont le nom est la valeur de $key

  13. #13
    Membre éprouvé Avatar de vorace
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2010
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2010
    Messages : 573
    Points : 915
    Points
    915
    Par défaut
    $key est la variable "key"
    ${$key} est la variable dont le nom est la valeur de $key
    je ne l'aurais pas mieux expliqué, c'est vrai que c'est assez difficile à appréhender la première fois...surtout l'utilité !

  14. #14
    apt
    apt est déconnecté
    Membre régulier
    Inscrit en
    Mai 2002
    Messages
    867
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 867
    Points : 118
    Points
    118
    Par défaut
    Citation Envoyé par sabotage Voir le message
    $key est la variable "key"
    ${$key} est la variable dont le nom est la valeur de $key
    Merci.

Discussions similaires

  1. Affichage non correct d'une image
    Par AnonCoder dans le forum Langage
    Réponses: 2
    Dernier message: 03/11/2006, 14h51
  2. [MySQL] Afficher une date correctement après une requête
    Par Nerva dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 12/04/2006, 17h27
  3. [Debutant]Correction d'une requete normée svp
    Par Wisefool dans le forum Langage SQL
    Réponses: 3
    Dernier message: 24/01/2006, 11h54
  4. requete correcte si une seule reponse
    Par xave dans le forum Langage SQL
    Réponses: 5
    Dernier message: 20/07/2005, 11h20
  5. [Sémantique] Orthographe correcte d'une BD
    Par pataluc dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 03/09/2004, 16h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo