Probleme de redirection pour select

babyhay Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -  
babyhay Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -
bonjour a tous et a toutes,j'espere deja que vous allez bien

je rencontre un grand probleme avec un code que je trouve sur ce forum,parait semblant que le code fonctionne tres bien mais pas pour moi,

voici le code


<?php if(isset($_POST['tache']))
{
  switch($_POST['tache'])
  {
    case 'a':
    header('location: fichier1.php');
    exit;
  
    case 'b':
    header('location: fichier2.php');
    exit;
  
    case 'c':
    header('location: fichier3.php');
    exit;
  
    case 'd':
    header('location: fichier4.php');
    exit;
  
    default:
    header('location: fichier1.php');
    exit;
  }
}
else
{
    header("location:index.php");
}
    
?>



donc je l'ai modifier pour mettre dans un traitememnt php pour une page html
voici la page de traitement

<?php
session_start();//on démarre la session
// $errors = [];
  $errors = array(); // on crée une vérif de champs
if(!array_key_exists('Name', $_POST) || $_POST['Name'] == '') {// on verifie l'existence du champ et d'un contenu
  $errors ['Name'] = "vous n'avez pas renseigné votre nom";
  }
if(!array_key_exists('mail', $_POST) || $_POST['mail'] == '' || !filter_var($_POST['mail'], FILTER_VALIDATE_EMAIL)) {// on verifie existence de la clé
  $errors ['mail'] = "vous n'avez pas renseigné votre email";
  }
if(!array_key_exists('imei', $_POST) || $_POST['imei'] == '') {
  $errors ['imei'] = "vous n'avez pas renseigné votre message";
  }
  if(!array_key_exists('Provider', $_POST) || $_POST['Provider'] == '') {
  $errors ['Provider'] = "vous n'avez pas renseigné votre message";
  }
  if(!array_key_exists('Zte', $_POST) || $_POST['Zte'] == '') {
  $errors ['Zte'] = "vous n'avez pas renseigné votre message";
  }

//On check les infos transmises lors de la validation
  if(!empty($errors)){ // si erreur on renvoie vers la page précédente
  $_SESSION['errors'] = $errors;//on stocke les erreurs
  $_SESSION['inputs'] = $_POST;
  header('Location:index.html/');
  }else{
  $_SESSION['success'] = 1;
  $headers  = 'MIME-Version: 1.0' . "\r\n";
  $headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
  $headers .= 'FROM:' . htmlspecialchars($_POST['email']);
  $to = 'xxxxx@xxxxxxxx.com'; // Insérer votre adresse email ICI
  $subject = 'Message envoyé par ' . htmlspecialchars($_POST['Name']);
  $message_content = '
  <table>
  <tr>
  <td><b>bonjour,je voudrais unlock mon portable:</b></td>
  </tr>
  <tr>
  <td>'. $subject . '</td>
  </tr>
  <tr>
  <td><b>voici les coordonnes de mon portable:;</b></td>
  </tr>
  <tr>
  <td>le Model de mon portable est::::>>>'. htmlspecialchars($_POST['Zte']) .'</td>
  </tr>
  <tr>
  <td>l/imei de mon portable est le suivant::::>>>'. htmlspecialchars($_POST['imei']) .'</td>
  </tr>
  <tr>
  <td>son provider ID est::::==>>'. htmlspecialchars($_POST['Provider']) .'</td>
  </tr>
   <tr>
  <td>est aussi mon mail est::::==>>'. htmlspecialchars($_POST['mail']) .'</td>
  </tr>
  <tr>
  <td>Merci de m/aider,message de la part de:::>>>'. htmlspecialchars($_POST['Name']) .'</td>
  </tr>
  </table>
  ';
if(isset($_POST['zte']))
{
  switch($_POST['zte'])
  {
    case 'b':
    header('location:[https://web.whatsapp.com/%27); https://web.whatsapp.com/');|nofollow]    exit;
  
    case 'a':
    header('location:send.html');
    exit;
  
    case 'c':
    header('location: [https://login.live.com/login.srf?wa=wsignin1.0&rpsnv=13&ct=1475068975&rver=6.4.6456.0&wp=MBI_SSL_SHARED&wreply=https:%2F%2Fmail.live.com%2Fdefault.aspx&lc=1036&id=64855&mkt=fr-fr&cbcxt=mai%27); https://login.live.com/login.srf?wa=wsignin1.0&rpsnv=13&ct=1475068975&rver=6.4.6456.0&wp=MBI_SSL_SHARED&wreply=https:%2F%2Fmail.live.com%2Fdefault.aspx&lc=1036&id=64855&mkt=fr-fr&cbcxt=mai');|nofollow]    exit;
  
    case 'd':
    header('location:[https://fr.yahoo.com/%27); https://fr.yahoo.com/');|nofollow]    exit;
  
    default:
    header('location:index.php');
    exit;
  }
}
else
{
    header("location:index.php");
}
  }
?> 



et aussi voici la page HTML

 <form name="Zte" form method="post" action="formmail2.php" class="select-model" onSubmit="return verify();">

<select name="Zte"  required>
<option value="at&t+r225+gophone" > </option>
                           <option value="810-E810" name="a"> </option>
                                <option value="A261" name="b"> </option>
                                <option value="at&t-r225-gophone" name="c" > </option>
                                <option value="Blade-Lutea" name="d" > </option>
</select>
 <li class="last"> 

         Imei<input id="imei" type="text" name="imei" pattern="[0-9]{15}" title=enter your Imei maxlength="15" required>

         Provider ID <INPUT type="text" NAME="Provider" SIZE=46 placeholder="no worry if you have'nt"> <P>

         Name <INPUT id="name"     NAME="Name"               SIZE=40  required> <p>
            
         Enter your Mail <input      name="mail"  placeholder= "mail@example.com" required > <p> 

          <input name="button" type="submit" value="unlock"></input>




        
        </li> 
</form>


mon plus grand probleme c'est que apres la soumission du formulaire,la redirection se fait toujours sur la page par defaut,je ne sais ppas que dois je faire maintenant,je veux vraiment de votre aide,merci d'avance pour votre aide

EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.

1 réponse

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,

Premier souci.. tu as le même NAME sur deux éléments
<form name="Zte" 

<select name="Zte"  required>


ensuite, dans :
<form name="Zte" form method="post" action="formmail2.php" class="select-model" onSubmit="return verify();">


que vient faire le "form" qui se promène tout seul en plein milieu?


Puis ... dans les éléments OPTION ...il n'y a pas d'attribut NAME
<option value="810-E810" name="a"

ça n'existe pas..... (tu ne dois pas en mettre).

Le code que tu as trouvé se base sur la VALUE de tes options...
Il faut donc faire comme ceci :
<select name="select_Zte"  required>
  <option value="at&t+r225+gophone" > </option>
  <option value="810-E810"> </option>
  <option value="A261" > </option>
  <option value="at&t-r225-gophone" > </option>
  <option value="Blade-Lutea" > </option>
</select>

et côté php :
 //récupération "propre" des variables en utilisant l'écriture ternaire
 $select_Zte = isset($_POST['select_Zte']) ? $_POST['select_Zte'] : NULL;
 
 switch($select_Zte){
  case '810-E810':
    $url_redirection = 'send.html';
    break;
  case 'A261':
    $url_redirection = 'https://web.whatsapp.com/';
    break;
  case 'at&t-r225-gophone':
    $url_redirection = ' https://login.live.com/login.srf?wa=wsignin1.0&rpsnv=13&ct=1475068975&rver=6.4.6456.0&wp=MBI_SSL_SHARED&wreply=https:%2F%2Fmail.live.com%2Fdefault.aspx&lc=1036&id=64855&mkt=fr-fr&cbcxt=mai';
    break;
  case 'Blade-Lutea':
    $url_redirection = 'https://fr.yahoo.com/';
    break;
  default:
    $url_redirection = 'index.php';
    break;
  }
  header('location:'.$url_redirection);



Cordialement, 
Jordane                                                                 
0
Babyhay
 
Ok merci JORDAN, je vais essayer ta solution
0
babyhay Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
est ca vas fonctionner sans que la valeur dans la case ne correspond pas avec celles dans option?
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
oups un oublie lors de mon copier/coller
En effet il faut modifier dans le switch les "values" de référence....

J'édite mon message précédent
0
babyhay Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
merci Jordane ,ca fonctionne tres bien
0
babyhay Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
comment puis je envoyer un email automatique des donne saisies par l'utilisateur dans ce traitement php?
0