Double action ?

Résolu/Fermé
blackbutterfly Messages postés 95 Date d'inscription mardi 17 avril 2012 Statut Membre Dernière intervention 29 mai 2012 - Modifié par blackbutterfly le 25/04/2012 à 14:17
blackbutterfly Messages postés 95 Date d'inscription mardi 17 avril 2012 Statut Membre Dernière intervention 29 mai 2012 - 4 mai 2012 à 10:46
Bonjour,

Je voulais savoir s'il était possible de faire en sorte que action lance une fonction bien définie dans un fichier.

Par exemple :

<form enctype="multipart/form-data" method="POST" name="form" action="cgi-bin/FromLog.php">

J'aimerais que dans le fichier FromLog.php elle utilise la fonction connect ()

Il y a t'il un moyen ou je dois faire plusieurs formulaire différent ( connexion, création de compte etc .. ) ?

Je vous remercie d'avance pour vos réponse.

Cordialement

P.S. la config du site n'étant pas en MVC, je suis obligé de passé par des formulaires. Sinon je serais passé sur mon contrôleur et je n'aurais pas eu ce problème ...



"Le hasard n'existe pas, tout est inéluctable."
A voir également:

3 réponses

tryan44 Messages postés 1288 Date d'inscription mardi 24 janvier 2012 Statut Membre Dernière intervention 26 octobre 2014 220
Modifié par baladur13 le 28/04/2012 à 13:56
Salut,

Peut être en ajoutant une variable à "action="cgi-bin/FromLog.php"".

action="cgi-bin/FromLog.php?action=1"


Puis dans "FromLog.php", récupérer la variable "action" et en fonction de sa valeur, lancer la dite fonction ou pas..
Signature non conforme - Publicité supprimée Modération CCM
1
AssassinTourist Messages postés 5710 Date d'inscription lundi 16 janvier 2012 Statut Contributeur Dernière intervention 29 février 2024 1 311
26 avril 2012 à 09:14
Oui, généralement on fait comme ça, avec un switch pour faire plus propre.
0
blackbutterfly Messages postés 95 Date d'inscription mardi 17 avril 2012 Statut Membre Dernière intervention 29 mai 2012 1
26 avril 2012 à 09:24
et le switch je le met dans le formulaire donc ?
0
tryan44 Messages postés 1288 Date d'inscription mardi 24 janvier 2012 Statut Membre Dernière intervention 26 octobre 2014 220
26 avril 2012 à 09:38
https://www.php.net/manual/fr/control-structures.switch.php

Dans votre cas et si une seul action, j'utiliserais une simple condition dans "FromLog.php":
<?php
//Si la variable existe et égal à 1
if(isset($_GET['action']) && $_GET['action'] ==1){
//Ma fonction
}
?>
0
blackbutterfly Messages postés 95 Date d'inscription mardi 17 avril 2012 Statut Membre Dernière intervention 29 mai 2012 1
26 avril 2012 à 09:49
Il y a plusieurs actions ( une pour ajouter l'utilisateur, l'autre pour la log, l'autre pour la modification de ses informations personnel, modification de mot de passe, déconnexion et c'est tous je crois xD )
0
blackbutterfly Messages postés 95 Date d'inscription mardi 17 avril 2012 Statut Membre Dernière intervention 29 mai 2012 1
26 avril 2012 à 09:50
Merci pour le lien, j'utilise des switch dans beaucoup de mes pages mais, je n'avais pas pensé qu'il était possible de le faire dans une autre page.
0
AssassinTourist Messages postés 5710 Date d'inscription lundi 16 janvier 2012 Statut Contributeur Dernière intervention 29 février 2024 1 311
26 avril 2012 à 14:00
Qu'est-ce que tu n'arrives pas ?
Ce qu'on te proposait, c'était quelque chose comme ça dans ta page FromLog.php :
<?php
if(isset($_GET['action']){
  switch($_GET['action']){
    case "accueil":
      //script a faire pour l'accueil
      break;
    case "page1":
      //script a faire pour la page1
      break;
    default:
      //script a faire pour l'accueil (par exemple, la page par default)
  }
}else{
  echo "Vous ne devriez pas être là."
}
?>


Peut-on voir ton code si ça ne fonctionne toujours pas ?
0
blackbutterfly Messages postés 95 Date d'inscription mardi 17 avril 2012 Statut Membre Dernière intervention 29 mai 2012 1
26 avril 2012 à 15:03
Voici mon FormUser.php ( le fichier sur lequel je veux mettre toutes mes fonctions )
if(isset($_GET['action']){
  switch($_GET['action']){
	case "Add":
	include ("../classes/MMembers.class.php");
// Création d'un nouvel utilisateur 

	$error = false;
	$AddOK = false;
	$rights= 1 ;
	//echo'<pre>';print_r($_POST);echo'</pre>';
	if (isset($_POST['Add'])) 
	{
		$member = new MMembers();
		//$member->user_exists($_POST['email']);
		$exist = $member->Who_I_Am($_POST['email']);
		$Passwd = md5($_POST['PASSWD_MEMBER']);
		$Passwd2 = md5($_POST['PASSWD_MEMBER2']);
		if(empty($exist['0']))
		{
			if($Passwd == $Passwd2)	
			{	
			
				$member->Add_Member($_POST['organisateur'], 
									$_POST['adresse'], 
									$_POST['code_postal'],
									$_POST['ville'], 			
									$_POST['tva'],				
									$_POST['prenom'],
									$_POST['nom'],
									$_POST['email'],				
									$_POST['telephone'], 		
									$_POST['fax'], 				
									$Passwd, 								
									$rights);		
				$AddOK = true;
			}
			else 
			
			{
				$error = true;
			}
		}
		else 
		{
			$error = true;
		}
	
		if ($AddOK)
		{
			session_start();
			
			echo'<pre>';print_r($exist);echo'</pre>';
			echo'<pre>';print_r($exist['0']);echo'</pre>';
			echo'<pre>';print_r($exist['0']['0']);echo'</pre>';
		
			$USR = $member->Who_I_Am($_POST['email']);
			$_SESSION["USR_ID"] = $USR['0'];
			$_SESSION["PRENOM"]	=$_POST['prenom'];
			$_SESSION["NOM"]	=$_POST['nom'];
			$_SESSION["ADRS"]	=$_POST['adresse'];
			$_SESSION["CP"]		=$_POST['code_postal'];
			$_SESSION["VILLE"]	=$_POST['ville'];
			$_SESSION["BOITE"]	=$_POST['organisateur'];
			$_SESSION["MAIL"]	=$_POST['email'];
			$_SESSION["TEL"]	=$_POST['telephone'];
			$_SESSION["FAX"]	=$_POST['fax'];
			$_SESSION["TVA"]	=$_POST['tva'];
			$_SESSION["RIGHTS"] = '1';
			
		
			header("Location: ../panier_presta.php");
		}
		if ($error)
		{
			header("Location: ../commandeErno.php");
		
		}

	}
	break;
    case "Log":
      $ConnectOK = false;
    $error = false;
	//echo ("test");

    if (isset($_POST['login']) && $_POST['PASSWD_MEMBER']  && $_POST['MAIL'] != null)
    {
		$paswd = md5($_POST['PASSWD_MEMBER']);
        $member = new MMembers();
        if ($ID = $member->Connect_Me($_POST['MAIL'], $paswd))
        {
			session_start();
			//echo ($ID['0']);
        	$_SESSION["USR_ID"]=$ID['0'];
			$info = $member->Get_MemInfo();
			$_SESSION["PRENOM"]	=$info['0']['0'];
			$_SESSION["NOM"]	=$info['0']['1'];
			$_SESSION["ADRS"]	=$info['0']['2'];
			$_SESSION["CP"]		=$info['0']['3'];
			$_SESSION["VILLE"]	=$info['0']['4'];
			$_SESSION["BOITE"]	=$info['0']['5'];
			$_SESSION["MAIL"]	=$info['0']['6'];
			$_SESSION["TEL"]	=$info['0']['7'];
			$_SESSION["FAX"]	=$info['0']['8'];
			$_SESSION["TVA"]	=$info['0']['9'];
			$_SESSION["RIGHTS"] =$info['0']['10'];
            $ConnectOK = true;
        }
        else
        {	
            header("Location: ../debug.php");
        }
    }
    else
    {
        $error = true;
    }
    
    if ($ConnectOK)
    {
        header("Location: ../session_util.php");
    }
    if ($error)
    {
        header("Location: ../debug.php");
    }
      break;
    case "Deconection":
      session_start();
		 //destruction de toutes les variable de sessions
		session_unset() ;
		//destruction de la session
		session_destroy() ;
		header("Location: deco.html");
      break;
    default:
      break;
  }


Et ça c'est les requête que je fais sur plusieurs fichier ou ( dans un certain cas sur le même )

<form enctype="multipart/form-data" method="POST" name="form" action="cgi-bin/FromUser?action=Add.php">
<center><input type="submit" name="Add" value="Enregistrement et passage à la deuxième étape" onClick="return CheckInput();" /></center>

<form enctype="multipart/form-data" method="POST" name="form" action="cgi-bin/FromUser?action=Log.php">
<center><input type="submit" name="Log" value="Connexion et passage à la deuxième étape"/></center>


et cela ne tourne pas :/
0
AssassinTourist Messages postés 5710 Date d'inscription lundi 16 janvier 2012 Statut Contributeur Dernière intervention 29 février 2024 1 311
26 avril 2012 à 17:36
Alors en regardant vaguement, j'ai envie de te dire d'y aller par étape. Déjà, voir si le switch se comporte correctement en mettant juste dans les case un petit echo.

D'autre part, les header en php ne fonctionnent pas s'il y a du html (et/ou des echo) dans la page.
0
blackbutterfly Messages postés 95 Date d'inscription mardi 17 avril 2012 Statut Membre Dernière intervention 29 mai 2012 1
27 avril 2012 à 11:59
Non c'est un formulaire purement php. et justement, il ne rentre pas dans le switch je pense car, il me fait un fail page à chaque fois.
0
AssassinTourist Messages postés 5710 Date d'inscription lundi 16 janvier 2012 Statut Contributeur Dernière intervention 29 février 2024 1 311
27 avril 2012 à 14:21
Et pourtant, j'ai vu des echo dans ton script...

Il rentre au moins là-dedans ? => if(isset($_GET['action']){ ??
Fais un echo pour être sûr et regarde ce qu'il y a dans ton GET.
0
blackbutterfly Messages postés 95 Date d'inscription mardi 17 avril 2012 Statut Membre Dernière intervention 29 mai 2012 1
27 avril 2012 à 14:33
Je ne pense pas, il me dit que la page est inexistante alors que je l'utilise et qu'elle tourne -_-
0
blackbutterfly Messages postés 95 Date d'inscription mardi 17 avril 2012 Statut Membre Dernière intervention 29 mai 2012 1
4 mai 2012 à 10:46
Solution : Ajax
0