if ( or ) php, @ l'aide

if ( or ) php, @ l'aide - Programmation

Marsh Posté le 03-09-2001 à 15:47:27    

Je ne comprends pas pourquoi il suffit que le mot de passe soit valide pour que else soit exécuté. Plus clairement il suffit de trouver le mot de passe pour pouvoir uploader. Mais pourquoi ? :hello:  
 
<?php
if ($username !=utilisateur or $password !=mot-de-passe) {
?>
<FORM ENCTYPE="multipart/form-data" ACTION="upload.php" METHOD=POST>
                  <div align="center">
                    <p>  
                      <INPUT TYPE="HIDDEN" name="MAX_FILE_SIZE" VALUE="10000">
                      Hello Jackie. </p>
                  </div>
                  <table border="1" align="center" bgcolor="#6699FF" bordercolor="#6666FF">
                    <tr>
                      <td>Username :</td>
                      <td>
                        <input type="text" name="username">
                      </td>
                    </tr>
                    <tr>
                      <td>Password :</td>
                      <td>
                         
        <input type="password" name="password">
                      </td>
                    </tr>
                    <tr>
                      <td>File to upload</td>
                      <td>
                        <input name="NomFichier" type="FILE">
                      </td>
                    </tr>
                  </table>
                  <p align="center">  
                    <INPUT TYPE="SUBMIT" VALUE="Upload">
                    <input type="reset" name="Cancel " value="Cancel ">
                  </p>
                </FORM>  
 
 
 
<?php  
   
} else {
 
 
echo '<table border="1" align="center" bordercolor="#6666FF" bgcolor="#6699FF">
  <tr>  
    <td>Temporary filename on server:</td>
    <td>'.$NomFichier.'</td>
  </tr>
  <tr>  
    <td>Original filename:</td>
    <td>'.$NomFichier_name.'</td>
  </tr>
  <tr>  
    <td>Size of '.$NomFichier_name.'</td>
    <td>'.$NomFichier_size.'</td>
  </tr>
  <tr>  
    <td>Type of '.$NomFichier_name.'</td>
    <td>'.$NomFichier_type.'</td>
  </tr>
</table>
';  
copy($NomFichier, "$NomFichier_name" );  
 
}
?>
 
Merci !  :jap:

Reply

Marsh Posté le 03-09-2001 à 15:47:27   

Reply

Marsh Posté le 03-09-2001 à 16:34:32    

faut pas mettre des "" pour définir les chaines de caractère utiisateur et mot-de-passe? Parce que tout le reste me semble correct.

Reply

Marsh Posté le 03-09-2001 à 16:37:11    

Euh c'est pas comme ca qu'on compare des chaines de caracteres en PhP ! Du moins moins je ne fais pas comme ca ...
 
//if ($username !=utilisateur or $password !=mot-de-passe) {
if(strcmp($username,utilisateur)!=0 or strcmp($password,mot-de-passe)!=0)

 

[edtdd]--Message édité par _epegasus_--[/edtdd]

Reply

Marsh Posté le 03-09-2001 à 16:40:17    

sisi, ca marche comme ca. les autes méthodes comme str_comp sont plus lourdes et ne doivent être utilisées que pour des comparaisons de grosses chaines ou de morceaux de chaines.

Reply

Marsh Posté le 03-09-2001 à 16:45:59    

moi j'aurais fait  
 
if ( ($username!='motdepasse') OR ($login!='mot-de-passe') ) {
 
à tester !


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 03-09-2001 à 17:27:15    

les opérators or, xor, and ont une précédence inférieure à =, !=, etc.  
classé par ordre de priorité ascendant :
or, xor, or ...
=, !=, ...
||, && ....  
http://www.php.net/manual/en/langu [...] edence.php
 
ton expression $username !=utilisateur or $password !=mot-de-passe
est équivalente à  
(($username !=utilisateur) or $password) !=mot-de-passe
donc soit :
($username !=utilisateur) or ($password !=mot-de-passe)
ou mieux :  
$username !=utilisateur || $password !=mot-de-passe

Reply

Marsh Posté le 03-09-2001 à 17:49:30    

c clair mais disons qu'avec les ' en plus, ça devrait déjà aller mieux, et que le fait de mettre des parenthèses rend le code beaucoup plus clair  :D


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 03-09-2001 à 18:36:41    

Putain c’est formidable !!!
 
Ça marche, c’est même de la case sensible (minuscule majuscule) !
 
Un grand merci @ tous et plus particulièrement @ : Sh@rdar & gizmo  :gun:

Reply

Marsh Posté le 03-09-2001 à 18:55:05    

:??: qu'est-ce que j'ai fais? pourquoi on me tire dessus?

Reply

Marsh Posté le 03-09-2001 à 19:40:11    

:fou:

Reply

Marsh Posté le 03-09-2001 à 19:40:11   

Reply

Marsh Posté le 03-09-2001 à 19:45:03    

je pourrais avoir une réponse exprimée en FRANCAIS? ou bien c'est trop compliqué pour toi?

Reply

Marsh Posté le 03-09-2001 à 20:26:15    

on te tire pas dessus, c'est la colère des autres de ne pas avoir été remericé  :sleep:

Reply

Marsh Posté le 03-09-2001 à 21:44:54    

ah! d'accord. fait plus simple la prochaine fois, j'ai le cerveau un peu embrumé par les exams pour le moment. :pt1cable:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed