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
    1. Merciii, tu avais raison ^^
      0
      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.
        0
        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
          0
          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 ;)
            0
            1. Comme je le pensais, ça marche toujours pas =(
              0