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

TheIshtar -  
 TheIshtar -
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. Alain_42 Messages postés 5413 Statut Membre 904
     
    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
  2. TheIshtar
     
    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
  3. Alain_42 Messages postés 5413 Statut Membre 904
     
    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
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. TheIshtar
     
    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
  6. TheIshtar
     
    Comme je le pensais, ça marche toujours pas =(
    0