SVP, effacer et modifier un fichier

Résolu
cs_sema Messages postés 110 Date d'inscription mardi 22 mars 2005 Statut Membre Dernière intervention 16 juin 2005 - 25 avril 2005 à 10:13
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 - 26 avril 2005 à 15:11
hello,

je vous explique mon probleme:

voici les trois formulaires que j'ai fais:

Pour ajouter

Date de mise en ligne,
<SMALL>Format de la date : jj/mm/aaaa </SMALL>

Titre,


Fichier,
,
----

quand je fais cela, il me mets dans ma base, la date de mise en ligne, le titre et je stocke dans ma base, le nom du fichier.
le fichier sera copier dans un dossier uploader qui va se trouver sur le serveur!!!

if(isset($fichier)) {
copy($fichier,"../uploader/".$fichier_name);
pour l'instant pas de probleme.

pour supprimer un enregistrement, je sais supprimer une ligne de ma base, mais je ne sais pas supprimer le fichier qui correspond à cet enregistrement????(je ne suis pas sur, mais j'ai chercher sur php.net,et je dois utiliser unlink, mais je n'arrive pas à l'adapter à mon probleme)

probleme aussi pour modifier, je ne sais pas comment faire:

Date de mise en ligne,
<SMALL>Format de la date : jj/mm/aaaa </SMALL>

Titre,


Fichier,
,
----

pas de probleme pour modifier les lignes de la base,(upload datedemiseneligne et titre)
mais ce que je veux, c'est modifier le contenue du fichier.(au cas où l'utilisateur a mit le mauvais fichier, ou bien, qu'il veut modifier le fichier qu'il a deja mit sur le serveur)
(je sais pas si on peut sans passer pas le ftp)
donner moi une idée pour la suppression , mais surtout pour la modification svp!!!
je ne vois pas comment proceder???????????
merci d'avance!!!!

Un pour toutes, tous pour UNE !!!

18 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
26 avril 2005 à 12:36
T'as qu'a mettre un if(!empty($file_name))
3
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
26 avril 2005 à 12:37
Ce qu'il faut, c'est au moins que tu aies une chaine vide, pas que tu essayes d'inserer une variable qui n#existe pas.
3
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
26 avril 2005 à 15:11
De rien :-)

Valide qu'on ferme ENFIN ce thread lol.
3
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
25 avril 2005 à 10:29
Hello,



montre plutot ton code. Unlink pour effacer ebn effet, et ouvrir le
fichier avec fopen() et a ou a+ pour la modification. Ou un lien dessus
tout simplement...qui ouvrira le fichier si c'est un fichier texte par
exemple.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_sema Messages postés 110 Date d'inscription mardi 22 mars 2005 Statut Membre Dernière intervention 16 juin 2005
26 avril 2005 à 09:51
c'est bon,pour la modification, ça marche,

et j'ai pas encore fait la suppresion,
mais je vais resoudre un probleme que j'ai decouvert quand j'ai fait la modification, est ce que tu saus comment faire pour que l'input fichier soit autoré en nul,
c'est à dire que quand je fais l'ajout et que je ne met pas de fichier, il me met:

Warning: odbc_do(): SQL error: [Microsoft][Pilote ODBC Microsoft Access] Le champ 'breve.fichier' ne peut pas être une chaîne vide., SQL state S1000 in SQLExecDirect in

comment faire pour qu'il autorise la chaine vide
merci

Un pour toutes, tous pour UNE !!!
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
26 avril 2005 à 10:11
Tu fais quoi au juste avec ce fichier pour avoir cette erreur ?
0
cs_sema Messages postés 110 Date d'inscription mardi 22 mars 2005 Statut Membre Dernière intervention 16 juin 2005
26 avril 2005 à 10:35
dans mon formulaire, l'utilisateur parcours son fichier(qu'il a sur son disque), et une fois qu'il met inserer, je copie le fichier dans un fichier uploader sur le serveur!!!

if(isset($fichier)) {
copy($fichier,"../uploader/".$fichier_name);
}

ensuite, je copie le lien et le nom du fichier dans ma base, (j'ai deux champs dans ma base, fichier et file_name)

$sql = ("INSERT INTO breve (datemel,titre, fichier, file_name)
VALUES ( '$datemel','$titre', '$fichier', '$fichier_name')");

$requete = odbc_do ($cnx,$sql) or die( odbc_error() ) ;

echo("<center>L'insertion a reussie</center>") ;

j'ai mis seulement un ptit bout de mon code car si je met tout, ça sera compliqué

Un pour toutes, tous pour UNE !!!
0
cs_sema Messages postés 110 Date d'inscription mardi 22 mars 2005 Statut Membre Dernière intervention 16 juin 2005
26 avril 2005 à 10:39
et ce que je veux , c'est que l'utilisateur peut seulement mettre un titre, (et pas de fichier à copié sur le serveur)

donc en gros, laisser libre les deux champs (fichier et file_name) de ma base
et quand il fait l'insertion

$sql = ("INSERT INTO breve (datemel,titre, fichier, file_name)
VALUES ( '$datemel','$titre', '$fichier', '$fichier_name')");

qu'il ne me met pas

Warning: odbc_do(): SQL error: [Microsoft][Pilote ODBC Microsoft Access] Le champ 'breve.fichier' ne peut pas être une chaîne vide., SQL state S1000 in SQLExecDirect in

Un pour toutes, tous pour UNE !!!
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
26 avril 2005 à 10:51
Deja :

if(isset($fichier))

a remplacer par


if(file_exist($fichier))

ou


if(is_file($fichier))




Pourquoi le lien et le nom ? Le lien contient le nom de toutes facons ?
0
cs_sema Messages postés 110 Date d'inscription mardi 22 mars 2005 Statut Membre Dernière intervention 16 juin 2005
26 avril 2005 à 11:21
ça c'est un autre probleme,,(c'est parceque j'en ai besoin autre part dans mon site...
j'y viendrai plus tard

mais tu sais pas comment je peux faire pour avoir le droit de ne rien mettre dans le formulaire pour le fichier

Un pour toutes, tous pour UNE !!!
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
26 avril 2005 à 11:30
Je ne vois pas ton formulaire la. Je vois pas ce que tu entends par la. On ne peut pas mettre de valeur par defaut dans un formulaire d'upload de fichier de toutes facons.
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
26 avril 2005 à 11:38
En fait ce n#est pas le formulaire ton probleme, mais ta base ? A
l'insertion, si ces deux champs ne sont pas renseignes, tu as une
erreur c#est ca ?

IL faut voir la structure de ces 2 champs, le type, si tu autorises a
ce qu'ils soient vides. Et la...je ne peux pas t'aider, je connais mal
Access (ou msql peut-etre?).
0
cs_sema Messages postés 110 Date d'inscription mardi 22 mars 2005 Statut Membre Dernière intervention 16 juin 2005
26 avril 2005 à 12:08
oui, tu as bien compris
mais dans ma base j'ai bien mis 'nul autorisé'
je ne comprend pas,

c'est quand il fait son insert into, il voit qu'il n'y a rien dans $fichier et $file-name (pas renseigné) alors il me met l'erreur!!!

Un pour toutes, tous pour UNE !!!
0
cs_sema Messages postés 110 Date d'inscription mardi 22 mars 2005 Statut Membre Dernière intervention 16 juin 2005
26 avril 2005 à 14:13
non ça ne marche pas :-(

Un pour toutes, tous pour UNE !!!
0
cs_sema Messages postés 110 Date d'inscription mardi 22 mars 2005 Statut Membre Dernière intervention 16 juin 2005
26 avril 2005 à 14:24
pour les input type texte je pouveais faire ça:

mais pour le input type file, ça ne maarche pas :-(

meme dans la base je mets un blanc et ça marche pas!!!

Un pour toutes, tous pour UNE !!!
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
26 avril 2005 à 14:40
Non, je te l'ai dit : on ne peut pas modifier la valeur par defaut d'un
champ file. Mais si il n'est pas renseigne...le $_POST['fichier'] ne le
sera pas non plus...cette variable ne sera pas definie. Il suffit donc
de faire un if

(!isset($_POST['fichier']))

$_POST['fichier']= '';
0
cs_sema Messages postés 110 Date d'inscription mardi 22 mars 2005 Statut Membre Dernière intervention 16 juin 2005
26 avril 2005 à 15:04
c'est bon, j'ai trouvé un truc,je fais

if(! empty ($fichier)) {
copy($fichier,"../uploader/".$fichier_name);
}
else{
$fichier=" ";
$fichier_name=" ";
}

Un pour toutes, tous pour UNE !!!
0
cs_sema Messages postés 110 Date d'inscription mardi 22 mars 2005 Statut Membre Dernière intervention 16 juin 2005
26 avril 2005 à 15:06
ahhhhhhhhh
j'avais pas vu ton dernier message
enfin bon
maintenant ça marche
merci malalam pour ton aide

Un pour toutes, tous pour UNE !!!
0
Rejoignez-nous