Aller au contenu

Problème pour attribuer un chmod 777 à un dossier


Sujets conseillés

Posté

Bonjour,

Voilà j'ai fait un petit script censé permettre la création d'un fichier config.php de paramètres de connexion à une base de données.

<?phpif (empty($_POST['posted_param_sql'])) {?><h1>Paramètrer la connexion à la base de données</h1><p>Les éléments à fournir doivent être en votre possession par l'intermédiaire de votre hébergeur.</p><form method="post" action="#"><fieldset><legend>Informations à donner</legend>
<input type="hidden" name="posted_param_sql" value="1" /><p><label for="hote_sql">Indiquer le nom de l'hôte de la base : </label><input type="text" name="hote_sql" id="hote_sql" /> (très souvent le nom est localhost, mais il est évidemment préférable de vous le faire confirmer)</p><p><label for="user_name">Indiquer votre nom d'utilisateur : </label><input type="text" name="user_name" id="user_name" /></p><p><label for="mdp">Indiquer votre mot de passe : </label><input type="text" name="mdp" id="mdp" /></p><p><label for="base_name">Indiquer le nom de la base : </label><input type="text" name="base_name" id="base_name" /></p>
<p><input type="submit" value="Envoyer" /></p></fieldset></form><?php}
else{$hote_sql=$_POST['hote_sql'];$user_name=$_POST['user_name'];$mdp=$_POST['mdp'];$base_name=$_POST['base_name'];/* On créé le fichier config.php*/$fichier_config=fopen("pics_viewer/include/config.php","w+");
/* On remplit ce fichier ligne par ligne*/fputs($fichier_config,"<?php \n");fputs($fichier_config,"$"."sql['hote'] = '".$hote_sql."'; \n");fputs($fichier_config,"$"."sql['user'] = '".$user_name."'; \n");fputs($fichier_config,"$"."sql['password'] = '".$mdp."'; \n");fputs($fichier_config,"$"."sql['base'] = '".$base_name."'; \n");fputs($fichier_config,"$"."sql['connection'] = _AT_mysql_connect("."$"."sql['hote'], "."$"."sql['user'], "."$"."sql['password']); \n");fputs($fichier_config,"mysql_select_db("."$"."sql['base'], "."$"."sql['connection']); \n");fputs($fichier_config,"?>");fclose($fichier_config);}?>

Je souhaitais m'assurer d'avoir les droits élargis chmod 777 sur le dossier pics_viewer/include/

donc j'ai rajouter à mon code

<?phpchmod('pics_viewer/include/',0777);?>

J'ai testé ça avec un hébergement où les chmod sont par défaut à 755. Mais parfaitement modifiable manuellement via filezilla par exemple.

Et bien rien ne se passe quand je veux automatiser cela avec mon script. Et le fichier pics_viewer/include/config.php ne se créé pas.

Si quelqu'un voulait bien m'indiquer si j'ai fait une erreur quelque part ce serait sympa.

Merci

Posté

Tout simplement parce que cet hébergement a désctivé le chmod, non?

Ou alors parce que Php n'a pas les droits de changer le mode du répertoire...

Posté (modifié)

Tout simplement parce que cet hébergement a désctivé le chmod, non?

Ou alors parce que Php n'a pas les droits de changer le mode du répertoire...

Modifié par wonderclochette
Posté

Il peut être désactivé pour Php, ou alors je pense plutôt que php n'étant pas le propriétaire du fichier include, il ne peut changer les droits.

Posté

Bon, le simple fait que tu en parles signifie que cette situation est au moins possible suivant les hébergeurs. Je vais donc en tenir compte.

Deux petites questions avant de m'éclipser

. Cette situation est elle courante, notamment dans les hébergements payants ?

. Peux tu me confirmer que si php avait pu changer les droits, mon code

<?phpchmod('pics_viewer/include/',0777);?>

aurait du fonctionner ? (l'adresse relative étant bonne je le jure !)

merci

Posté

Cette situation est courante... surtout si php tourne en module Apache. Il hérite de ce fait des droits d'Apache et ne peut changer les permissions des fichiers ou répertoires qui ne lui appartiennent pas.

Ton code est correct ;)

Dan

Posté (modifié)

Bonjour,

je suis vraiment quelqu'un de têtu,

J'ai testé ce code

<?php
$ftp_host='hote_ftp';
$ftp_login='nom_utilisateur';
$ftp_password='mot_de_passe';
$ftp = ftp_connect("$ftp_host"); // On prépare la connexion
ftp_login($ftp,"$ftp_login","$ftp_password"); // On se connecte au serveur

ftp_mkdir ($ftp,"pics_viewer/include"); // Création du dossier. (chemin depuis la racine du serveur)
ftp_chmod ($ftp ,0777,"pics_viewer/include");

ftp_quit ($ftp); // On se déconnecte du serveur
?>

Cela semble bien fonctionner...

A votre avis cette solution a t'elle une chance d'être fiable ? Ou dois je m'attendre à de mauvaises surprises suivant les hébergeurs.

Je sais que du point de vue de l'automatisation déjà il y a déjà une limite puisqu'il faut que la racine http corresponde à la racine FTP.

Modifié par wonderclochette
Posté

En fait c'est un vrai désastre...

Heu ...

... Sinon ...

...

... ça existe un site dédié à la standardisation des hébergeurs ??? :P

Parce que dans ce domaine ça ressemble vraiment à un freestyle qui confine au n'importe quoi.

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...