Double action ?

Résolu
blackbutterfly Messages postés 95 Date d'inscription   Statut Membre Dernière intervention   -  
blackbutterfly Messages postés 95 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   220
 
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 6029 Date d'inscription   Statut Contributeur Dernière intervention   1 312
 
Oui, généralement on fait comme ça, avec un switch pour faire plus propre.
0
blackbutterfly Messages postés 95 Date d'inscription   Statut Membre Dernière intervention   1
 
et le switch je le met dans le formulaire donc ?
0
tryan44 Messages postés 1288 Date d'inscription   Statut Membre Dernière intervention   220
 
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   Statut Membre Dernière intervention   1
 
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   Statut Membre Dernière intervention   1
 
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 6029 Date d'inscription   Statut Contributeur Dernière intervention   1 312
 
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   Statut Membre Dernière intervention   1
 
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 6029 Date d'inscription   Statut Contributeur Dernière intervention   1 312
 
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   Statut Membre Dernière intervention   1
 
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 6029 Date d'inscription   Statut Contributeur Dernière intervention   1 312
 
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   Statut Membre Dernière intervention   1
 
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   Statut Membre Dernière intervention   1
 
Solution : Ajax
0