Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/05/2011, 15h46   #1
Candidat au titre de Membre du Club
 
Homme
Étudiant
Inscription : mai 2011
Messages : 124
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mai 2011
Messages : 124
Points : 11
Points : 11
Par défaut Problème avec lien unlink

Bonjour, je voudrais savoir si c'était possible de faire un :
<a href=unlink....>Supprimer</a>
Car je viens d'essayer mais ca me renvoie sur une page 404 not found alors que le unlink seul marche..

Merci de votre aide

Cordialement
Ercan67000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2011, 16h53   #2
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 128
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 128
Points : 7 270
Points : 7 270
Bonsoir,

href est un attribut d'un lien (une page sur le serveur) donc quand tu cliques le lien, il va chercher la page qui est dans l'attribut href sur le serveur, si la page n'existe pas --> erreur 404.

A+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2011, 16h59   #3
Candidat au titre de Membre du Club
 
Homme
Étudiant
Inscription : mai 2011
Messages : 124
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mai 2011
Messages : 124
Points : 11
Points : 11
Merci de votre aide, mais auriez-vous par hasard une idée d'incorporation d'un unlink dans un hyperlien? Je m'explique. Je souhaiterais que sur la page il y a écrit : "Cliquez ici pour supprimer le fichier" et lorsque l'utilisateur clique sur cette phrase qui sera en hyperlien, le fichier se supprimer du dossier (ici /upload)

Cordialement
Ercan67000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2011, 00h23   #4
Membre régulier
 
Homme
Développeur Web
Inscription : octobre 2009
Messages : 72
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Vietnam

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : octobre 2009
Messages : 72
Points : 99
Points : 99
Par défaut Créer une page supprimer.php

Une idée parmi tant d'autres :
dans le href tu cibles une page supprimer.php à laquelle tu transmet (en $_POST ou $_GET) l'identifiant de la page à supprimer,
tu y fais le traitement de la suppression via unlink()
puis tu rediriges vers la page qui affiche lien en transmettant via $_GET l'état de la suppression.

Une autre solution est de lancer une fonction js on clic sur le lien qui effectue une requête ajax sur la page supprimer.php.
matlow est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2011, 11h08   #5
Membre Expert
 
Avatar de Djakisback
 
Inscription : février 2005
Messages : 1 791
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 1 791
Points : 1 681
Points : 1 681
Salut,
je ne trouve pas de lien dans la FAQ mais il faut commencer par comprendre le mécanisme de PHP.
- Tes scripts PHP sont interprétés sur le serveur qui renvoie une "page internet" au navigateur
- Le navigateur n'interprète pas le PHP donc tu ne peux pas utiliser une fonction PHP comme ça. Il reçoit et interprète du HMTL, JS, CSS, etc.
- La seule manière est donc de dire au serveur d'exécuter telle ou telle fonction PHP (en passant des paramètres à ton lien ou en appelant telle ou telle page PHP)

Je ne sais pas si c'est beaucoup plus clair...
Djakisback est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2011, 14h28   #6
Candidat au titre de Membre du Club
 
Homme
Étudiant
Inscription : mai 2011
Messages : 124
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mai 2011
Messages : 124
Points : 11
Points : 11
Pour le moment j'ai mis :
Code :
1
2
3
4
 
$fichier = uniqId().$extension;
$url = 'http://localhost/Projet/upload/'.$fichier;
echo '<a href="efface.php?supprimeLeFichier='.($url).'">supprimer</a><br />';
*
Et j'ai créé une page efface.php avec :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
<html>
	<head>
		<title>efface</title>
	</head>
<body>
<?php
if (isset($_GET["supprimeLeFichier"])) {
$up = $_GET['url']
  unlink($up);
  }
?>
</body>
</html>
Et il me dise erreur : Parse error: syntax error, unexpected T_STRING in C:\wamp\www\Projet\efface.php on line 9

Si vous pouvez m'aider.. Merci beaucoup
Ercan67000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2011, 14h34   #7
Membre Expert
 
Avatar de Djakisback
 
Inscription : février 2005
Messages : 1 791
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 1 791
Points : 1 681
Points : 1 681
Tu as oublié un point-virgule :

Et attention ce code a un gros trou de sécurité, il permet d'effacer n'importe quel fichier sur ton serveur en remplacement le paramètre directement dans l'url.
Je te conseille de ne passer que le nom du fichier dans l'url et de définir en dur le répertoire dans ta page efface.php.
Sachant que l'on pourra quand même effacer n'importe quel fichier dans ce répertoire ce qui n'est pas sécurisé, tout dépend de tes besoins.
Djakisback est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2011, 14h39   #8
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 128
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 128
Points : 7 270
Points : 7 270
Bonsoir,

Ici tu dois avoir un chemin relatif mais pas un url absolue
Citation:
$url = 'http://localhost/Projet/upload/'.$fichier;
A+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2011, 14h53   #9
Candidat au titre de Membre du Club
 
Homme
Étudiant
Inscription : mai 2011
Messages : 124
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mai 2011
Messages : 124
Points : 11
Points : 11
Je vous remercie de votre aide c'est sympa. Et pour le chemin relatif si je mets
$url='/upload/'.$fichier; cela est bon alors ? vu que la page efface.php se trouve dans le même dossier que ma page index..

Merci
Ercan67000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2011, 15h08   #10
Candidat au titre de Membre du Club
 
Homme
Étudiant
Inscription : mai 2011
Messages : 124
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mai 2011
Messages : 124
Points : 11
Points : 11
Désolé mais ça ne marche pas. Mon code est le suivant :
Code php :
1
2
3
4
5
6
7
 
<?php
if (isset($_POST["supprimeLeFichier"])) {
	$up = $_POST['url'];
  unlink($up);
  }
?>
Je viens de changer le GET en POST car j'utilise la méthode POST mais lorsque je clique maintenant sur l'hyperlien 'supprimer' une page blanche apparait et le fichier n'est toujours pas supprimer..

Merci de votre aide
Ercan67000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2011, 07h45   #11
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 128
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 128
Points : 7 270
Points : 7 270
Bonjour,

Code :
1
2
$fichier = uniqId().$extension;
echo '<a href="efface.php?supprimeLeFichier='.$fichier.'">supprimer</a><br />';
Une variable passé en URL est GET mais pas POST
Code :
1
2
3
4
5
6
<?php
if (isset($_GET["supprimeLeFichier"])) {
	$up = $_GET['supprimeLeFichier'];
  unlink("./cheminRepertoire/".$up);
  }
?>
A+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2011, 08h18   #12
Candidat au titre de Membre du Club
 
Homme
Étudiant
Inscription : mai 2011
Messages : 124
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mai 2011
Messages : 124
Points : 11
Points : 11
Je viens d'essayer, en changeant le dossier de destination et cela ne marche pas.. Je remet mes variables :
Code php :
1
2
3
 
$fichier = uniqId().$extension;
$url = 'http://localhost/Projet/upload/'.$fichier;
Je m'explique, j'ai 3 pages : une page formulaire qui renvoie vers une page upload et j'ai mis un <a href..> sur la page upload qui renvoie vers efface.php. Mais les deux variables ci-dessus se situe dans le fichier upload.php, donc faut-il pas un $_SESSION pour récupérer une variable provenant d'une autre page?
Merci
Ercan67000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2011, 08h36   #13
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 128
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 128
Points : 7 270
Points : 7 270
La variable (nom de fichier) est passé en URL, ce que récupères avec $_GET, je ne sais pas si tu comprends ce que c'est ces variables POST et GET. Je te conseille de lire un tutoriel sur PHP.

J'ai l'impression que ça tourne en rond là
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2011, 08h59   #14
Candidat au titre de Membre du Club
 
Homme
Étudiant
Inscription : mai 2011
Messages : 124
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mai 2011
Messages : 124
Points : 11
Points : 11
Je viens de lire des cours sur la méthode POST et GET j'ai compris leur fonctionnement merci.
Mon code est :
Code php :
1
2
3
4
5
6
7
8
9
10
 
<?php
if (isset($_GET["supprimeLeFichier"])) {
	$up = $_GET['supprimeLeFichier'];
  unlink("./upload/".$up);
  echo "Le fichier a été supprimé avec succès";
  }else{
  echo "Erreur lors de la suppression du fichier ";
  }
?>
et je reçois une erreur :
Warning: unlink(./upload/) [function.unlink]: Permission denied in C:\wamp\www\Projet\efface.php on line 9

Donc je pense qu'il faut faire un chmod('0777',$fichier) mais je bloque sur $fichier car $fichier = "./upload/".$up chez moi..
Ercan67000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2011, 10h21   #15
Membre Expert
 
Avatar de Djakisback
 
Inscription : février 2005
Messages : 1 791
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 1 791
Points : 1 681
Points : 1 681
T'as peut-être effectivement un problème de droit mais je crois que ton nom de fichier n'est pas passé également car il n'apparaît pas dans l'erreur :

Code :
Warning: unlink(./upload/)
T'es sûr que $up n'est pas vide ?

Pour les droits c'est un problème récurrent selon les config du serveur. Ton fichier dans upload est créé comment ?
Djakisback est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2011, 10h32   #16
Candidat au titre de Membre du Club
 
Homme
Étudiant
Inscription : mai 2011
Messages : 124
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mai 2011
Messages : 124
Points : 11
Points : 11
On m'a aidé à modifier le fichier efface.php :
Code php :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<html>
	<head>
		<title>efface</title>
	</head>
<body>
<?php
chmod("upload", 0755);
if (isset($_GET["supprimeLeFichier"])) {
	$up = $_GET['supprimeLeFichier']; 
  unlink("Projet/upload/".$up);
  echo "Le fichier a été supprimé avec succès";
  }else{
  echo "Erreur lors de la suppression du fichier ";
  }
?>
</body>
</html>
Mais j'ai toujours un problème alors que le message 'Le fichier a été supprimé avec succès s'affiche, je ne comprend plus
Warning: unlink(localhost/Projet/upload/4ddf5f57ab12f.jpg) [function.unlink]: No such file or directory in C:\wamp\www\Projet\efface.php on line 10
Merci
Ercan67000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h35.


 
 
 
 
Partenaires

Hébergement Web