[RESOLU] Appeler script en fonction d'un champs formulaire

Eléphanteau du PHP | 22 Messages

12 déc. 2015, 18:45

Bonjour Forum,

j'ai un champs formulaire liste déroulante appelé : destinataire

Valeurs du champs exemple :

[email protected]

[email protected]

ce formulaire quand il est validé appel un script php qui envoie les champs à la personne concernée par mail.

Dans ce script php je voudrais appelé un autre script php en fonction du destinataire selectionné.

Exemple :

Si destinataire = [email protected] appeler script php : essai1.php

Si destinataire = [email protected] appeler script php : essai2.php

il doit s'agir pour ça de la fonction : require avec un truc genre :

if ($destinataire = [email protected]) require "test1.php";

j ai testé pour bricoler mais ça ne fonctionne pas.

si quelqu'un à une idée....

Merci

Klorane

Eléphant du PHP | 243 Messages

12 déc. 2015, 19:29

Normalement une simple condition suffit.
Pour l'appel, tu peux aussi utiliser include qui procède de la même façon (différence en cas d'erreur)
http://php.net/manual/fr/function.include.php

Je pense que le problème vient de ta boucle. Peut-on avoir un aperçu de ton code ?
"Nos études ont montré que la probabilité qu’un programme corrigé fonctionne comme avant la correction est seulement de cinquante pour cent"
~~Lorenzo Strigini

Eléphanteau du PHP | 22 Messages

12 déc. 2015, 19:59

Merci Ascla,

J'ai essayé ceci :

if ($destinataire="[email protected]") require "test1.php";

if ($destinataire="[email protected]") require "test2.php";

je teste avec [email protected] il execute les 2 fichiers test1.php et test2.php

Mammouth du PHP | 2703 Messages

12 déc. 2015, 20:13

== et non = pour comparer

Eléphanteau du PHP | 22 Messages

12 déc. 2015, 23:15

si je mets d autres adresses mail il execute quand meme...alors que rien devrait se faire.

exemple :
if ($destinataire="[email protected]") require "test1.php";
if ($destinataire="[email protected]") require "test2.php";

test1 et test2 sont executés c'est donc que If fait n importe quoi car ces adresses mails n 'existent pas.

j 'ai essayé avec == avec ça il n y a aucune execution

exemple :
if ($destinataire=="[email protected]") require "test2.php";

J ai testé autre chose. en pensant que c'était une histoire avec la liste déroulante.

$val = '1';

if ($val = 1) include 'test1.php';
if ($val = 2) include 'test2.php';

il m'execute là aussi test1 et test2...pourtant c'est le baba

Eléphanteau du PHP | 22 Messages

13 déc. 2015, 01:50

j'ai également testé ceci pour faire des essais:

<?php

if($nom = 1)
{
echo "Valeur 1";
}
else
{
echo "Valeur2";
}
?>

Je complète mon formulaire et j 'appelle le script en l'envoyant.

Quelque soit la valeur que j'indique dans le champs "nom" du formulaire 1,2,3......
j'ai le texte : valeur 1
Cela signifie que la valeur du champs "nom" n'est pas prise en compte.
j ai aussi testé ça :

$nom = $_POST['nom']

if($nom = 1)
{
echo "Valeur 1";
}
else
{
echo "Valeur2";
}

là j 'ai erreur :

Parse error: syntax error, unexpected 'if' (T_IF) in line 3 soit : if($nom = 1)

Eléphant du PHP | 243 Messages

13 déc. 2015, 03:40

Dans une condition, il faut toujours utiliser les 2 signes = pour une comparaison : if ($a == $b)
Le simple signe = change la valeur d'une variable.
Du coup, une condition if ($a = $b) sera TOUJOURS vraie, car à partir du moment ou l'assignation est faite, la condition reçoit vrai et sera donc respectée.
Pour ton problème, la solution serait donc :
if ($destinataire == "[email protected]")
{
     require "test2.php";
}
Pour ton autre exemple :
$val = 1;

if ($val == 1) 
{
    include 'test1.php';
}
if ($val == 2)
{
    include 'test2.php';
}
Modifié en dernier par Ascla le 13 déc. 2015, 15:07, modifié 1 fois.
"Nos études ont montré que la probabilité qu’un programme corrigé fonctionne comme avant la correction est seulement de cinquante pour cent"
~~Lorenzo Strigini

Eléphanteau du PHP | 22 Messages

13 déc. 2015, 04:02

Merci Ascla.

effectivement il y avait ce problème là et aussi la récupération de la valeur du champs que je n avais pas mise : $destinataire = $_POST['destinataire'];

Encore merci.

Klorane