Page 1 sur 1

améliorer un script en php

PostPosté: 23 Sep 2010, 18:23
par qwerty
Bonjour.
J'ai un script en php, qui affiche le contenu du répertoire. Or je voudrais qu'il n'affiche pas le ./ ni les fichiers en php; Voilà le code :
Code: Tout sélectionner
<?php
$folder = "./";
$dossier = opendir($folder);
while ($Fichier = readdir($dossier)) {
  if ($Fichier != "." && $Fichier != "..") {
    $nomFichier = $folder."".$Fichier;
echo "<ul><li><a href=\" $nomFichier\">$nomFichier</li></ul>";
  }
}
closedir($dossier);
?>

Merci de votre aide.
qwerty :marty:

PostPosté: 24 Sep 2010, 17:40
par qwerty
Personne ne se connais en php ?

PostPosté: 28 Sep 2010, 10:11
par ZeKE
Normalement ton code ne devrait pas retourner le ".", sinon modifie ton code comme suit :
Code: Tout sélectionner
<?php
$folder = "./";
$dossier = opendir($folder);
while ($Fichier = readdir($dossier)) {
  if ( (strcmp($Fichier, ".") != 0) && (strcmp($Fichier, "..") != 0) && (substr_compare($Fichier, ".php", -4, 4, true) != 0) ) {
    $nomFichier = $folder."".$Fichier;
echo "<ul><li><a href=\" $nomFichier\">$nomFichier</li></ul>";
  }
}
closedir($dossier);
?>


J'ai pas testé, mais ça devrait fonctionner, par contre c'est possible que tu aies des warnings, il faudrait améliorer le script...

PostPosté: 28 Sep 2010, 16:28
par qwerty
je ne voit plus les fichiers php, mais je voit encore les ./
Code: Tout sélectionner
<?php
$dir_nom = '.'; // dossier listé (pour lister le répertoir courant : $dir_nom = '.'  --> ('point')
$dir = opendir($dir_nom) or die('Erreur de listage : le répertoire n\'existe pas'); // on ouvre le contenu du dossier courant
$fichier= array(); // on déclare le tableau contenant le nom des fichiers

while($element = readdir($dir)) {
    if($element != '.' && $element != '..') {
        if (!is_dir($dir_nom.'/'.$element)) {$fichier[] = $element;}
        else {$dossier[] = $element;}
    }
}

if(!empty($fichier)){
    sort($fichier);// pour le tri croissant, rsort() pour le tri décroissant
    echo "\t\t<ul>\n";
        foreach($fichier as $lien) {
            echo "\t\t\t<li><a href=\"$dir_nom/$lien \">$lien</a></li>\n";
        }
    echo "\t\t</ul>";
 }
?>

Sinon, j'ai creer ca, il a pas les ./ mais les .php. Je ne sais pas comment adapter pour enlever les .php.
Merci
qwerty

PostPosté: 29 Sep 2010, 12:10
par ZeKE
Ce script devrait fonctionner :

Code: Tout sélectionner
<?php
$folder = "./";
$dossier = opendir($folder);
while ($Fichier = readdir($dossier)) {
  if ( (strcmp($Fichier, ".") != 0) && (strcmp($Fichier, "..") != 0) && (strncmp("./", $Fichier, 2) !=0 ) && (substr_compare($Fichier, ".php", -4, 4, true) != 0) ) {
    $nomFichier = $folder."".$Fichier;
echo "<ul><li><a href=\" $nomFichier\">$nomFichier</li></ul>";
  }
}
closedir($dossier);
?>

PostPosté: 29 Sep 2010, 16:31
par qwerty
toujours rien !
il a simplement * ./fichier
et moi je voudrai * fichier

PostPosté: 06 Mar 2011, 20:38
par qwerty
onjour. J'ai un problème avec mon script PHP :
Code: Tout sélectionner
<?php
include('includes/config.php');
include ("includes/header.php");
?>
<?php
//On verifie que le formulaire a ete envoye
if(isset($_POST['email'], $_POST['password'], $_POST['passverif']) and $_POST['email']!='')
{
   //On enleve lechappement si get_magic_quotes_gpc est active
   if(get_magic_quotes_gpc())
   {
      $_POST['password'] = stripslashes($_POST['password']);
      $_POST['passverif'] = stripslashes($_POST['passverif']);
      $_POST['email'] = stripslashes($_POST['email']);
   }
   //On verifie si le mot de passe et celui de la verification sont identiques
   if($_POST['password']==$_POST['passverif'])
   {
      //On verifie si le mot de passe a 6 caracteres ou plus
      if(strlen($_POST['password'])>=6)
      {
         //On verifie si lemail est valide
         if(preg_match('#^(([a-z0-9!\#$%&\\\'*+/=?^_`{|}~-]+\.?)*[a-z0-9!\#$%&\\\'*+/=?^_`{|}~-]+)@(([a-z0-9-_]+\.?)*[a-z0-9-_]+)\.[a-z]{2,}$#i',$_POST['email']))
         {
            //On echape les variables pour pouvoir les mettre dans une requette SQL
            $password = mysql_real_escape_string($_POST['password']);
            $email = mysql_real_escape_string($_POST['email']);
           
            //On verifie sil ny a pas deja un utilisateur inscrit avec le pseudo choisis
            $dn = mysql_num_rows(mysql_query('select id from card where email="'.$email.'"') or die(mysql_error()));

           
            if($dn==0)
            {
               //On recupere le nombre dutilisateurs pour donner un identifiant a lutilisateur actuel
               $dn2 = mysql_num_rows(mysql_query('select id from card'));
               $id = $dn2+1;
               //On enregistre les informations dans la base de donnee
if( mysql_query("insert into card (password, email) values ('.$id.', '.$email.', '.$password.')") )
               {
                  //Si ca a fonctionne, on naffiche pas le formulaire
                  $form = false;

?>
<div class="message">Vous avez bien &eacute;t&eacute; inscrit. Vous pouvez dor&eacute;navant vous connecter.<br />
<a href="connexion.php">Se connecter</a></div>
<?php
               }
               else
               {
                  //Sinon on dit quil y a eu une erreur
                  $form = true;
                  $message = 'Une erreur est survenue lors de l\'inscription.';
               }
            }
            else
            {
               //Sinon, on dit que le pseudo voulu est deja pris
               $form = true;
               $message = 'Un autre utilisateur utilise d&eacute;j&agrave; le meême email que vous d&eacute;sirez utiliser.';
            }
         }
         else
         {
            //Sinon, on dit que lemail nest pas valide
            $form = true;
            $message = 'L\'email que vous avez entr&eacute; n\'est pas valide.';
         }
      }
      else
      {
         //Sinon, on dit que le mot de passe nest pas assez long
         $form = true;
         $message = 'Le mot de passe que vous avez entr&eacute; contien moins de 6 caract&egrave;res.';
      }
   }
   else
   {
      //Sinon, on dit que les mots de passes ne sont pas identiques
      $form = true;
      $message = 'Les mots de passe que vous avez entr&eacute; ne sont pas identiques.';
   }
}
else
{
   $form = true;
}
if($form)
{
   //On affiche un message sil y a lieu
   if(isset($message))
   {
      echo '<div class="message">'.$message.'</div>';
   }
   //On affiche le formulaire
?>
<div class="content">
    <form action="sign_up.php" method="post">
        Veuillez remplir ce formulaire pour vous inscrire:<br />
        <div class="center">
            <label for="email">Email</label><input type="text" name="email" value="<?php if(isset($_POST['email'])){echo htmlentities($_POST['email'], ENT_QUOTES, 'UTF-8');} ?>" /><br />
            <label for="password">Mot de passe<span class="small">(6 caract&egrave;res min.)</span></label><input type="password" name="password" /><br />
            <label for="passverif">Mot de passe<span class="small">(v&eacute;rification)</span></label><input type="password" name="passverif" /><br />
            <input type="submit" value="Envoyer" class="button"/>
      </div>
    </form>
</div>
<?php
}
?>
      <div class="foot"><a href="<?php echo $url_home; ?>">Retour &agrave; l'accueil</a>
<?php
include ("includes/footer.php");
?>

Avec cette erreur : Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\wamp\www\sign_up.php on line 30
La ligne correspondante :
Code: Tout sélectionner
$dn = mysql_num_rows(mysql_query('select id from card where email="'.$email.'"') or die(mysql_error()));


elle peut venir d'ou ?