wonderclochette Posté 25 Novembre 2006 Posté 25 Novembre 2006 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
Dan Posté 25 Novembre 2006 Posté 25 Novembre 2006 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...
wonderclochette Posté 25 Novembre 2006 Auteur Posté 25 Novembre 2006 (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é 25 Novembre 2006 par wonderclochette
Dan Posté 25 Novembre 2006 Posté 25 Novembre 2006 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.
wonderclochette Posté 25 Novembre 2006 Auteur Posté 25 Novembre 2006 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
Dan Posté 25 Novembre 2006 Posté 25 Novembre 2006 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
wonderclochette Posté 26 Novembre 2006 Auteur Posté 26 Novembre 2006 (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 connexionftp_login($ftp,"$ftp_login","$ftp_password"); // On se connecte au serveurftp_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é 26 Novembre 2006 par wonderclochette
wonderclochette Posté 29 Novembre 2006 Auteur Posté 29 Novembre 2006 En fait c'est un vrai désastre... Heu ... ... Sinon ... ... ... ça existe un site dédié à la standardisation des hébergeurs ??? Parce que dans ce domaine ça ressemble vraiment à un freestyle qui confine au n'importe quoi.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant