Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/04/2011, 14h13   #1
apt
Membre du Club
 
Inscription : mai 2002
Messages : 526
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 526
Points : 42
Points : 42
Par défaut correction d'une foreach

Bonjour,

J'aimerais changé ce bout de code :

Code :
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 :
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.
apt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2011, 14h25   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Tu devrais effectivement revoir le principe d'une boucle foreach().

En dehors de ça, pourquoi vouloir mettre une boucle ici ?
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2011, 14h29   #3
apt
Membre du Club
 
Inscription : mai 2002
Messages : 526
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 526
Points : 42
Points : 42
Seulement pour ne pas réécrire toutes les variables
apt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2011, 14h42   #4
Membre émérite
 
Avatar de vorace
 
Homme
Développeur
Inscription : août 2010
Messages : 587
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 : 587
Points : 861
Points : 861
Code :
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]...
__________________
Développeur informatique contrarié...
vorace est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2011, 14h46   #5
apt
Membre du Club
 
Inscription : mai 2002
Messages : 526
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 526
Points : 42
Points : 42
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.
apt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2011, 14h58   #6
Membre émérite
 
Avatar de vorace
 
Homme
Développeur
Inscription : août 2010
Messages : 587
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 : 587
Points : 861
Points : 861
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 :
${$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...
__________________
Développeur informatique contrarié...
vorace est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2011, 15h15   #7
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Tu as la fonction extract() qui fait déjà ça :
Code :
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.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2011, 15h20   #8
Membre émérite
 
Avatar de vorace
 
Homme
Développeur
Inscription : août 2010
Messages : 587
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 : 587
Points : 861
Points : 861
crées les variables mais ne les nettoies pas.
__________________
Développeur informatique contrarié...
vorace est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/04/2011, 18h28   #9
apt
Membre du Club
 
Inscription : mai 2002
Messages : 526
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 526
Points : 42
Points : 42
Citation:
Envoyé par vorace Voir le message
ce que tu peux faire dans ton foreach c'est :
Code :
${$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 :
<p><?php echo $title;?></p>
apt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/04/2011, 20h13   #10
Membre émérite
 
Avatar de vorace
 
Homme
Développeur
Inscription : août 2010
Messages : 587
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 : 587
Points : 861
Points : 861
si tu veux à la base si $title est vide c'est parceque tu as une faute dans ton code :
Code :
$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 :
${$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.
__________________
Développeur informatique contrarié...
vorace est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/04/2011, 20h43   #11
apt
Membre du Club
 
Inscription : mai 2002
Messages : 526
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 526
Points : 42
Points : 42
L'erreur était dans le manque d'un $ entre {}:

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

mais pourquoi écrire ${$key} au lieu $key seulement ?
apt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/04/2011, 20h51   #12
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
$key est la variable "key"
${$key} est la variable dont le nom est la valeur de $key
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/04/2011, 21h41   #13
Membre émérite
 
Avatar de vorace
 
Homme
Développeur
Inscription : août 2010
Messages : 587
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 : 587
Points : 861
Points : 861
Citation:
$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é !
__________________
Développeur informatique contrarié...
vorace est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/04/2011, 10h38   #14
apt
Membre du Club
 
Inscription : mai 2002
Messages : 526
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 526
Points : 42
Points : 42
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.
apt est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h12.


 
 
 
 
Partenaires

Hébergement Web