Problème de permissions ou de script: fichier non créé !

Résolu
zut69 Messages postés 354 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 26 juin 2012 - 26 oct. 2005 à 13:04
zut69 Messages postés 354 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 26 juin 2012 - 27 oct. 2005 à 12:53
Bonjour,
Voila, j'esssaie de faire un script qui va crée automatiquement un dossier, un fichier html et uploadé une musique dans ce dossier, le script me parait correct, j ai mis un chmod 777 sur mon dossier et le code me semble correct, mais rien n'est créé !
Voici mon code, je traine dessus depuis des jours, mais je vois vraiment pas ce qui plante:


Code:
,
----

<?php
chmod($realpath, 777);
error_reporting(E_ERROR | E_WARNING | E_PARSE);
require "conf.php3";

mysql_connect("$sql_serveur","$sql_login","$sql_pass"); //connection sql
mysql_select_db("$sql_bdd");

$load = 'Téléchargement en cours';
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>titre</title>
...css...
</head>

<?php
$pseudo = $_POST['pseudo']; //$_POST récupère les infos du formulaire
$mdp = $_POST['pass'];
$mdp2 = $_POST['pass2'];
$url = $_POST['url'];
$disclaimer = $_POST['disclaimer'];
$http_url = "http://".$url; //url complète

$extensions_autorisees = array('mp3', 'wma', 'mid', 'wav'); //extensions autorisées

if(($pseudo)&&($mdp)&&($url)) //si quelque chose a été soumis, donc pas le premier chargement
{if($disclaimer !'ok') $reponse "Vous devez approuver la charte en cochant la case ci-dessous.";
else
{
$fichier_existe = "$realpath/$pseudo/index.$ext_page";
if(file_exists($fichier_existe)) $reponse = 'Désolé,ce pseudo est déjà utilisé, veuillez en choisir un autre.';
else
{
$verif = @fopen($http_url, 'r'); //verifie la validité de l adresse du blog (r pour read)

if($verif)
{
if($mdp == $mdp2)
{
if (isset($_FILES) && is_array($_FILES)) //si le type a envoyé un fichier
{

if ($_FILES['musique']['error'] == UPLOAD_ERR_OK) //si le fichier ne contient pas d erreurs
{
$ext = strrchr($_FILES['musique']['name'], "."); //récupère l extension du fichier

if ($ext != false && in_array(strtolower(substr($ext, 1)), $extensions_autorisees)) //validité de l extension
{

$query = "SELECT COUNT(*) as nb_url FROM `$sql_table` WHERE url='$http_url'"; //requête sql pour vérifier si l url est déjà inscrite
$requete = mysql_query($query) or die(mysql_error());
if($donnees['nb_url'] >= 1) //si l'url existe déjà dans la bdd
{
$reponse = "Désolé, ce blog est déjà incrit, mais vous pouvez modifier sa musique par la page d'administration, si vous en êtes l'administrateur.";
}
else {

mkdir("$realpath/$pseudo", 0700); // crée le dossier : chemin absolu/url sans http, le 700 c est les droits en ecriture
move_uploaded_file($_FILES['musique']['tmp_name'], $realpath.'/'.$pseudo.'/musique.'.$ext ); //enregistre et déplace le fichier

/* création de la page html */$fichier fopen("index.$ext_page","w"); //création du fichier (w write, r= read, r+=les 2)

$contenu = "<HTML>\n
<HEAD>\n\n
<!-- Page générée par blog micro-xtreme, Franz et Rabl -->\n
<!--index.html-->\n\n
</head>\n
\n
<FRAMESET ROWS=\"5%\">\n
<FRAMESET COLS=\"100%\">\n
<FRAME NAME=\"pub\" SRC=\"$pub\">\n
<FRAMESET ROWS=\"100%\">\n
<FRAMESET COLS=\"100%\">\n
<FRAME NAME=\"blog\" SRC=\"$http_url\">\n
Enter Micro Xtreme Shop\n
<NOFRAME>\n
\n

Votre navigateur ne supporte pas les frames\n
</FRAMESET><noframes></noframes>\n
\n
</HTML>"; //code de la page

fputs($fichier,"$contenu"); //insertion du contenu dans la page html
fclose($fichier);

$reponse = 'Bravo ! Vous êtes désormais inscrits à nos services, vous pouvez consulter votre blog sur
';
$reponse .= "$url_dossier_blog/$pseudo/";

mysql_query("INSERT INTO `$sql_table`(id, pseudo, pass, url) VALUES ('', '$pseudo', '$mdp', '$http_url')") or die(mysql_error()); //insertion des infos dans la bdd

}
}
else $reponse = "Le fichier que vous avez envoyé n'est pas de la musique, ou son type est inconnu !";

}
else $reponse = "La musique que vous avez envoyée contient des erreurs !";

}
else $reponse = "Vous n'avez soumis aucun fichier !";
}
else $reponse = "Le mot de passe et sa confirmation ne sont pas identiques.";
}
else $reponse = "L'url de votre blog n'est pas valide !";
}
}
}
?>
...formulaire html...
<? mysql_close(); ?>

Si quelqu un a une petite idée, ce serait avec plaisir que je l entendrai,

merci d avance,

Zut !

8 réponses

zut69 Messages postés 354 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 26 juin 2012 1
27 oct. 2005 à 12:53
en fait j ai resolu mon problème, j ai vu que le require conf.php3 qui contient le realpath etait apres le chmod... Faute bete... Merci quand meme
ZUt
3
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
26 oct. 2005 à 13:21
Hello,

affiche $realpath/$pseudo.

Et met plutôt 644 comme mode. 700 va sans doute poser un problème à ton script.
0
zut69 Messages postés 354 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 26 juin 2012 1
26 oct. 2005 à 13:33
merci, mais tu parle de 644 pour mkdir ou pour le chmod au debut ???

$realpath/$pseudo, j ai deja verifié, c est correct, et c est le dossier qui devra etre créé, le dossier $pseudo doit etre créé.

Merci pour ton aide,
Zut
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
26 oct. 2005 à 14:07
Pour le mkdir (tu peux aussi pour le chmod de départ, d'ailleurs).



Donne ce que contient $realpath ?
0

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

Posez votre question
zut69 Messages postés 354 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 26 juin 2012 1
26 oct. 2005 à 15:03
$realpath = "/home/httpd/vhosts/micro-xtreme.com/httpdocs/blog";

mais si je change pour le chmod, je suis pas sur qu on ait encore le droit de créer des fichiers et dossiers...
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
26 oct. 2005 à 17:11
Va donc lire des tutos sur le chmod :-)

Ou tape chmod dans php.net, dans la liste des fonctions (en haut à droite).



C'est un ehcmin relatif. Tu es où dans ton script à ce moment là ?
0
zut69 Messages postés 354 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 26 juin 2012 1
26 oct. 2005 à 20:31
Comment ca ou? c est tout en haut de la page, la 2eme ligne pour etre precis (1ere:<?php)

Sinon j ai tout essayé mais pas moyen de créer le moindre dossier ou fichier...
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
27 oct. 2005 à 09:11
Je voulais dire, où sur ton site. Dans quel répertoire.
0
Rejoignez-nous