Page 1 sur 1
améliorer un script en php
Posté: 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:
<?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

Posté: 24 Sep 2010, 17:40
par qwerty
Personne ne se connais en php ?
Posté: 28 Sep 2010, 10:11
par ZeKE
Normalement ton code ne devrait pas retourner le ".", sinon modifie ton code comme suit :
- Code:
<?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...
Posté: 28 Sep 2010, 16:28
par qwerty
je ne voit plus les fichiers php, mais je voit encore les ./
- Code:
<?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
Posté: 29 Sep 2010, 12:10
par ZeKE
Ce script devrait fonctionner :
- Code:
<?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);
?>
Posté: 29 Sep 2010, 16:31
par qwerty
toujours rien !
il a simplement * ./fichier
et moi je voudrai * fichier
Posté: 06 Mar 2011, 20:38
par qwerty
onjour. J'ai un problème avec mon script PHP :
- Code:
<?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 été inscrit. Vous pouvez doré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éjà le meême email que vous désirez utiliser.';
}
}
else
{
//Sinon, on dit que lemail nest pas valide
$form = true;
$message = 'L\'email que vous avez entré 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é contien moins de 6 caractè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é 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ères min.)</span></label><input type="password" name="password" /><br />
<label for="passverif">Mot de passe<span class="small">(vé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 à 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:
$dn = mysql_num_rows(mysql_query('select id from card where email="'.$email.'"') or die(mysql_error()));
elle peut venir d'ou ?