CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

formulaire ajout photo

spartan_18
spartan_18
Niveau 39
25 novembre 2007 à 14:42:59

c´est bon ça marche quand même sans problème

[chonchon]
[chonchon]
Niveau 7
25 novembre 2007 à 16:32:18

Non c´est pour supprimer les photos du dossier "images" pas le dossier.

C´est à dire que je veux afficher la liste des images à l´intérieur du dossier "images" et effacer celles que je veux.

Je testerai tout à l´heure chez moi.

Merci de votre aide.

deepblue
deepblue
Niveau 16
25 novembre 2007 à 16:46:25

Sinon test le script que j´ai posté plus haut.
http://geneweb.fr/aide-jv/upload/index.php je l´ai testé avant de poster et il ne peux que fonctionner (sauf si bloquage de free)

[chonchon]
[chonchon]
Niveau 7
25 novembre 2007 à 19:38:28

https://www.jeuxvideo.com/forums/1-30-7860140-1-0-0-0-0.htm
| Citation de : deepblue
| Date du message : 25 novembre 2007 à 14:35:37
| Contenu du message :
| "" unlink(images/) " tu vexu supprimer un dossier ?
|
| test ça (chez free) :
| tu mets un fichier nommé toto.txt, et dans un fichier php (dans le meme dossier que toto.txt), tu mets <?php unlink("toto.txt"); ?> . Si il y une erreur, dis la nous"

:d)

J´ai testé comme ceci :
<?
//Page de suppression (supprimer.php)
mysql_connect("..................)
mysql_select_db("mabase");

$img = intval($_GET[´id´]);
$requete = mysql_query("SELECT nom FROM images WHERE id = ´.$img.´");
$suppr = mysql_fetch_assoc($requete);

$fichier = ´images/´.$suppr[´nom´].´´; //n´oubli pas de mettre le nom du dossier (si y´en a besoin) entre les 1er guillemets

:d) unlink(´images/DSC00054.jpg´); :g) // jai remplacé par unlink($fichier);
mysql_query("DELETE FROM images WHERE id = ´.$img.´");
?>

Et ça efface bien l´image DSC00054.jpg, du moins sur free et en local.

Par contre il ne m´affiche aucun message comme quoi la photo a été supprimée.

Sinon merci pour ton script mais je le trouve trop compliqué pour moi et mon but c´est aussi de faire des scripts simples et de les comprendre.

Merci de me consacrer votre temps, on est proche du but :-)

[chonchon]
[chonchon]
Niveau 7
25 novembre 2007 à 19:39:16
  • :d) unlink(´images/DSC00054.jpg´); :g) // jai remplacé à la place de : unlink($fichier);
spartan_18
spartan_18
Niveau 39
26 novembre 2007 à 13:43:12

Pour afficher que c´est supprimé tu peux simplement faire un echo "OK"; ou alors tu mets juste après :

if(file_exists(´images/DSC00054.jpg´))
{
echo "Existe plus";
}
else
{
echo "pas supprimé";
}

deepblue
deepblue
Niveau 16
26 novembre 2007 à 16:57:00

Spartan_18 > if(!file_exists(´images/DSC00054.jpg´))
[chonchon] > si ça fonctionne c´est que l´erreur vient du script que utilises.

Sinon, mon script n´a rien de complexe :

makeDir($dirname) : créé des dossiers de façon récursive.
Si tu veux créer un ça : toto/titi/tata et que chacun de ses dossiers n´existe pas, il va les créer l´un après l´autre :
toto, toto/titi, toto/titi/tata

testFileType($filetype, $allowedtype) : retourne true si le type de fichier est autorisé, sinon false

testFileSize($filesize, $maxsize) : retourne true si la taille est correct, sinon false

fileName($dir, $name) : generer un nouveau nom si le fichier qu´on veut uplodé a déjà le meme nom de fichier sur le server :

if(!file_exists($dir.$name)) { return $name; } : si le fichier qu´on veut uploadé n´existe aps sur le server, on retourne son nom (donné en paramètre),
else { .... } sinon en regenere le nom avec une chaine (moi j´ai pris time()).

Après c´est de l´upload avec generation de fichier...

deepblue
deepblue
Niveau 16
26 novembre 2007 à 17:27:55

str_replace(array_pop(explode(´.´, $nom)), ´txt´, $nom)
str_replace(array_pop(explode(´.´, $_GET[´id´])), ´txt´, $_GET[´id´])
str_replace(array_pop(explode(´.´, $nm)), ´txt´, $nm)

Remplace l´extension du fichier par "txt"
toto.jpg > toto.txt

str_replace(´/´, ´´, $_GET[´id´]);
Evite a un eventuel utilisateur malsein de remonter dans les dossiers et de lister autre chose que tes photos.

Le reste, c´est du billard

spartan_18
spartan_18
Niveau 39
26 novembre 2007 à 18:38:26

a oui j´ai inversé, soit tu inverses les echo soit tu met le ! devant la fonction

[chonchon]
[chonchon]
Niveau 7
27 novembre 2007 à 12:43:12

:salut:

Voilà j´ai réussi à faire le script de suppression !

A part un petit bug à chaque fois que la page est rafraichie :

Warning: unlink(./images/DSCFO669.jpg): No such file or directory in....

DSCFO669.jpg= image que j´ai supprimée précédemment donc c´est normal qu´il ne la trouve pas dans le répertoire !

(Si jamais vous pouvez m´aider à résoudre ce bug ça serait bien).

Voici mon code :

<?
$adresse = "./images/"; //Adresse du dossier.
if(isset($_GET[´nom´])) //Si $_GET[´nom´] existe, on supprime le fichier...
$nom=´´.$adresse.$_GET[´nom´].´´;
unlink($nom);

echo ´Le fichier "´.$_GET[´nom´].´" a été éffacé !< br>´;

$dossier = opendir($adresse); //Ouverture du dossier.

echo ´<fieldset><legend>Liste des fichiers</legend><br>´;

while ($Fichier = readdir($dossier)) //Affichage...
{
if ($Fichier != "." && $Fichier != "..")
{
echo ´<a
href="voir_fichiers.php?nom=´.$Fichier.´">Supprime
r</a> => <a
href=´.$adresse.$Fichier.´ target="_blank">´.$Fichier.´</a><BR>´;
}
}
closedir($dossier); //Fermeture du dossier.
echo ´<br></fieldset>´; //Fermeture du fieldset.
?>

Merci d´avance.

[chonchon]
[chonchon]
Niveau 7
27 novembre 2007 à 13:00:01

Désolée du double post.

Si je veux aussi supprimer les données dans la base de données, je dois ajouter et modifier comment la requête dans le script ?

mysql_query("DELETE FROM images WHERE id = ´.$img.´");

Merci.

spartan_18
spartan_18
Niveau 39
27 novembre 2007 à 13:59:04

pour l´erreur tu peux par exemple faire une redirection :
header("location: ta_page.php");
ou tu peux aussi la faire en javascript ou avec une balise meta

pour la BDD la requête est ok, et dans la variable $img tu mes l´id que tu as enregistré lors de l´upload.

[chonchon]
[chonchon]
Niveau 7
27 novembre 2007 à 18:33:52

Je mets où dans le script la fonction : header("location: ta_page.php"); ?

Parce que j´ai l´erreur suivante en plus :
Warning: Cannot modify header information - headers already sent by

Je l´ai mis à la fin du script c´est peut-être pour ça.

Merci.

spartan_18
spartan_18
Niveau 39
27 novembre 2007 à 19:35:26

Il faudrait le mettre dans le if qui vérifie si y´a le GET pour supprimer (par contre faut pas mettre de HTML avant.

Sinon y´a la solution du javascript qui redirige au bout de x secondes par exemple là au bout de 3 secs :

<script type="text/javascript">

setTimeout("window.location.replace(´ta_page.php´)
", 3000);
</script>

[chonchon]
[chonchon]
Niveau 7
28 novembre 2007 à 11:37:14

Merci , par contre je ne vois pas comment je dois modifier et où placer la requête dans le nouveau script :

$img = intval($_GET[´id´]);
$requete = mysql_query("SELECT nom FROM images WHERE id = ´.$img.´");
$suppr = mysql_fetch_assoc($requete);

[chonchon]
[chonchon]
Niveau 7
05 décembre 2007 à 18:19:05

Salut ! C´est encore moi.

Voilà, j´ai résolu la plupart des problèmes que j´avais.
J´ai juste un petit bug pour le script de suppression ( ps :il marche quand même) :
"Notice: Undefined index: nom in c:\**\diaporama\supprimer_photos.php on line 7"

  • line 7 : echo ´Le fichier "´.$_GET[´nom´].´" a été effacé !< br>´;

Voici mon script :

<?
$adresse = "../../images/"; //Adresse du dossier.
if(isset($_GET[´nom´])) //Si $_GET[´nom´] existe, on supprime le fichier...
$nom=´´.$adresse.$_GET[´nom´].´´;
@unlink($nom);

echo ´Le fichier "´.$_GET[´nom´].´" a été effacé !< br>´;

$dossier = opendir($adresse); //Ouverture du dossier.

echo ´<fieldset><legend>Liste des fichiers</legend><br>´; //Ouverture de fieldset
while ($Fichier = readdir($dossier)) //Affichage...
{
if ($Fichier != "." && $Fichier != "..")
{
echo ´<a
href="supprimer_photos.php?nom=´.$Fichier.´">Suppr
imer</a> => <a
href=´.$adresse.$Fichier.´ target="_blank">´.$Fichier.´</a><BR>´;
}
}
closedir($dossier); //Fermeture du dossier.
echo ´<br></fieldset>´; //Fermeture du fieldset.
?>

Merci de m´aider. :merci:

[chonchon]
[chonchon]
Niveau 7
05 décembre 2007 à 18:22:57

Désolée du double post, je voudrais aussi savoir s´il est possible de restreindre l´affichage des fichiers, c´est à dire je veux juste pouvoir afficher la liste des images(pour pouvoir les supprimer) et non les autres fichiers à l´intérieur du dossier.

Donc afficher juste les fichiers en .jpg

Merci encore.

[chonchon]
[chonchon]
Niveau 7
07 décembre 2007 à 14:36:35

Salut !
C´est bon j´ai trouvé pour le bug, il manquait juste 2 accolades...

Sinon pour afficher juste les images du dossier( et non les autres fichiers), comment puis-je faire ?

Je sais qu´il faudrait que je fasse une restriction pour afficher juste les fichiers ayant les extensions en .jpg, .bmp...

Mais je ne sais pas comment faire en php.

Merci de m´aider.

spartan_18
spartan_18
Niveau 39
07 décembre 2007 à 17:39:32

Tu peux le faire avec un simple :

if(preg_match(´#.jpg#´, $fichier)){echo "$fichier";}

Sinon je crois qu´on peut directement avec les extensions et des arrays mais je sais plus comment on fait.

spartan_18
spartan_18
Niveau 39
07 décembre 2007 à 17:49:44

change le echo en echo $fichier;

sinon :

$autorise = array("bmp", "gif", "jpeg", "jpg");
if(in_array($type, $autorise)){echo $fichier;}

$type est l´extension du fichier (recherche une fonction permettant de la trouver)

Sous forums
  • Aide à l'achat Mac
  • Internet
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment