Problème php avec header, if, elseif ...

Bonjour,

J'ai un problème, mais j'arrive à le trouver.

voici un bout de code que vous devez normalement comprendre ...


if (mysql_num_rows($req) > 0 ) {  
     $data = mysql_fetch_assoc($req);  
        $payement = $data['payement'];  
        $terminé = $data['terminé'];  
        $soft = $data['soft'];  
        
                 if ($payement == Oui && $terminé == Non) {  
      $query = mysql_query("UPDATE info SET terminé = 'Oui' WHERE id = '$id'; ");   
      $reponse = "Le téléchargement va bientôt commencer ...";   
      if($soft = fichier1) {   
      $url = "http://www.monsite.com/fichier1.rar"; }  
      elseif($soft = fichier2) {  
      $url = "http://www.monsite.com/fichier2.rar";}  
        
      header("Location: $url");  
      }  
      else { $reponse = "Vous avez déjà télécharger le logiciel."; } }  
      else { $reponse = "ID ou email incorrect."; }  



c'est la suite du code, après le submit d'un formulaire avec 2 champs : ID et email.

Le problème, c'est que le téléchargement ne se lance pas.
Merci d'avance ;)

7 réponses

  1. if (mysql_num_rows($req) > 0 ) {  
         $data = mysql_fetch_assoc($req);  
         $payement = $data['payement'];  
         $terminé = $data['terminé'];  
         $soft = $data['soft'];  
          //pour comparer avec une string il faut qu'elle soit avec des guillemets simples ou doubles  
         if ($payement == 'Oui' && $terminé == 'Non') {  
          $query = mysql_query("UPDATE info SET terminé = 'Oui' WHERE id = '$id'; ");   
          $reponse = "Le téléchargement va bientôt commencer ...";   
          if($soft = 'fichier1') {   
          $url = "http://www.monsite.com/fichier1.rar"; }  
          elseif($soft = 'fichier2') {  
          $url = "http://www.monsite.com/fichier2.rar";}  
            
          header("Location:$url");  
          }  
          else {
    			$reponse = "Vous avez déjà télécharger le logiciel."; 
    		} 
    } else {
    	$reponse = "ID ou email incorrect."; 
    }  
    1. Erf, là un nouveau problème s'oppose : voici donc le code :

      if (mysql_num_rows($req) > 0 ) { 
                    $data = mysql_fetch_assoc($req); 
                       $payement = $data['payement']; 
                       $terminé = $data['terminé']; 
                       $soft = $data['soft']; 
             
                        if($soft = 'fichier1') { 
                              $key = "code1" ;      
                              $url = "www.monsite.com/fichier1.rar"; } 
      
                        elseif($soft = 'fichier2') { 
                              $key = "code2" ; 
                              $url = "www.monsite.com/fichier2.rar"; } 
             
                        if($payement == 'en attente') { 
                            $reponse = "Vous n'avez pas encore payé votre commande."; } 
             
                        elseif ($payement == 'Oui' && $terminé == 'Non') { 
             $query = mysql_query("UPDATE info SET terminé = 'Oui' WHERE id = '$id'; ");  
             
             $reponse = "Le téléchargement va bientôt commencer ... <br>Votre clé est :  <b>$key</b>";  
             header("Refresh: 5;url=$url");  } 
      
             
                        else { $reponse = "Vous avez déjà télécharger le logiciel."; } } 
                        else { $reponse = "ID ou email incorrect."; }


      Le problème c'est que le téléchargement ne se lance que pour le fichier1 et ne montre la clé que du fichier1 même si c'est fichier2 en soft.

      D'avance merci.
      1. normal il faut faire une boucle while pour parcourir tous les enre trouvés
        $data = mysql_fetch_assoc($req); ne te sort que le premier

        if (mysql_num_rows($req) > 0 ) { 
                      while($data = mysql_fetch_assoc($req)){ 
                         $payement = $data['payement']; 
                         $terminé = $data['terminé']; 
                         $soft = $data['soft']; 
               
                          if($soft = 'fichier1') { 
                                $key = "code1" ;      
                                $url = "www.monsite.com/fichier1.rar"; 
        						} elseif($soft = 'fichier2') { 
                                $key = "code2" ; 
                                $url = "www.monsite.com/fichier2.rar";
        						} 
               
                          if($payement == 'en attente') { 
                              $reponse = "Vous n'avez pas encore payé votre commande.";
        						 }  elseif ($payement == 'Oui' && $terminé == 'Non') { 
               $query = mysql_query("UPDATE info SET terminé = 'Oui' WHERE id = '$id'; ");  
               
               $reponse = "Le téléchargement va bientôt commencer ... <br>Votre clé est :  <b>$key</b>";  
               header("Refresh: 5;url=$url");  } 
        
               
                          else { $reponse = "Vous avez déjà télécharger le logiciel."; } } 
                          else { $reponse = "ID ou email incorrect."; }
        						
        						} //fin de la boucle while
        1. la boucle est fait s'il y a plusieurs entré, là je n'ai qu'une seule.

          Je vais essayer tout de même ta solution ;)