fwritte($file "w+") qui bloque///

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : fwritte($file "w+") qui bloque///

Re: fwritte($file "w+") qui bloque///

par dredtrake » 07 oct. 2009, 17:25

re,
en effet il s'agit des users apache pour le vhost
sinon oui en RTFM je me suis rendu compte qu'il étais mieux (dans mon cas) de mettre juste "w" :D

bon en fait je vien de faire un copier du dossier vers encore un autre vhost (qui est sur un autre emplacement) et ait donné les droit de l'user du vhost courant et pareil ça a fonctionné direct
on dirais qu'il y a eut un couac lors de la création du vhost, (????)
ducoup on va réinstaller un nouveau vhost, et voir ce que ca donne...

en tout cas merci du temps que tu as pu me me consacrer... :D

Re: fwritte($file "w+") qui bloque///

par Kran » 07 oct. 2009, 17:14

Une petite précision suplémentaire serait nécessaire juste pour valider que les droits sur tes répertoires sont bons : client1 et client2 sont respectivement tes utilisateurs apache pour les vhost 1 (qui merde) et 2 (qui fonctionne), aren't they ?

Si on est d'accord la dessus, j'avoue que j'ai pas trop d'idées supplémentaires... #-o

Juste une petite remarque qui normalement ne dervait pas influencer le résultat, mais qui fera plus propre : si tu as juste besoin d'écrire dans le fichier sans le lire, le mode w suffit : pas besoin du mode w+. Enfin a ce niveau la c'est de l'ordre du cosmétique...

Re: fwritte($file "w+") qui bloque///

par dredtrake » 07 oct. 2009, 10:52

re, merci Kran pour ta réponse , je vien faire un apport d'information

dossier qui merde

drwxr-xr-x 4 client1 users 4096 oct 6 19:46 test

dossier qui marche

drwxr-xr-x 2 client2 users 4096 oct 6 17:09 iphone

quand je parlais de 2 virtual host différent, il s'agit de 2 sites bien distinct qui vont chacun tapper dans un dossier différent.

[edit]Pour ce qui est de mes script, les 2 me retournent la meme chose à savoir :
L'écriture de ($somecontent) dans le fichier ($filename) a réussi [/edit]

Si cela donnes une piste à quelqu'un pour m'aider je lui en serai très reconnaissant. :D

Re: fwritte($file "w+") qui bloque///

par Kran » 06 oct. 2009, 21:57

hello dreadtrake

le mode "a" comme "append" sert à ouvrir un fichier existant à eof (fin du fichier) pour y ajouter des donnes...
ce mode nécessite uniquement d'avoir la permission "write" sur le fichier lui même

le mode "w" comme "write" sert réécrire intégralement un fichier. On peut imaginer que ceci équivaut à effacer le fichier et à en créer un nouveau...
créer un fichier nécessite d'avoir la permission "write" sur le le répertoire contenant

on en déduit donc qu'il peut être normal d'avoir le droit d'appender des données à un fichier sans forcément avoir le droit de l'effacer/recréer.

de plus, tu fais la remarque fort intéressante que l'utilisateur utilisé sur le second vhost est différent mais du même groupe que le premier utilisateur !

j'aurais tendance à penser que ton utilisateur servant à gèrer le second vhost a probablement le droit 7 (rwx) sur le répertoire (dont je présupose qu'il est probablement propriétaire... ) mais que le groupe auquel il appartient n'a que la permission 4 (r--) ou 5 (r-x) sur ce répertoire... d'ou la difficulté pour l'autre utilisateur de recréer un fichier dans ce répertoire
et mes numéros du lotto pour les protections sur ce répertoire sont... 755 au hasard... avec l'utilisateur gestionnaire du vhost n°2 comme propriétaire...

mais la arrive le moment ou je dois me pendre car aparemment, le premier user arrive bien a créer le fichier mais pas a le remplir... quid...
arf et puis en plus c'est deux dossiers différents ... ? ou pas ?
ca m'apprendra a répondre aux question à l'heure de la digestion... -_-'

un autre volontaire ?

enfin en attendant tu peux toujours nous dire ce qu'affiche ton script dans le premier cas, ainsi que les vrais propriétaires et droits sur tes répertoires... ca peut toujours aider parceque jouer au lotto n'est pas du gout de tout l'monde ^^

fwritte($file "w+") qui bloque///

par dredtrake » 06 oct. 2009, 17:41

hello a tous,
j'ai un soucis qui est en train de me rendre dingue

j'ai un script tout bête qui doit créer un doc text on va prendre ça comme ex (le script a été testé sur ma machine local>windows):

Code : Tout sélectionner

<?php $filename = "data.txt"; $somecontent = "Ajout de chaîne dans le fichier\n"; if (!$handle = fopen($filename, 'w+')) { echo "Impossible d'ouvrir le fichier ($filename)"; exit; } if (fwrite($handle, $somecontent) === FALSE) { echo "Impossible d'écrire dans le fichier ($filename)"; exit; }else{ echo "L'écriture de ($somecontent) dans le fichier ($filename) a réussi"; } fclose($handle); ?>
quand j'éxecute le document sur mon serveur (dédié gentoo ovh) , il se génère mais son contenu reste désespérément vide...
en faisant des tests, je me suis rendu compte que si le document existait je pouvais écrire à la suite si je mettais "a" ou "a+" à la place de "w+".
mais dès que je remet "w+" le fichier se vide et n'écrit plus rien...

utilisant un serveur dédié j'ai copié le script sur un autre vhost et là ca fonctionne direct avec le param "w+"

j'ai donc regardé le httpd.conf, mais a part un autre users (du même groupe) utilisé et un autre DocumentRoot (normal) tout est identique....
les droits de dossiers sont les mêmes, mais rien a faire,....à n'y plus rien comprendre.

si quelqu'un a une petite idée je suis preneur
merci d'avance. :)
André