créer un dossier automatiquement

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 : créer un dossier automatiquement

par Cyrano » 05 nov. 2005, 23:10

Oui !!!
ça marche :)
Merci à tous !

Jsute avant de mettre résolu quelqu'un pourrait-il répondre à mes questions ?
Si ce sujet est résolu, tu le taggue [Résolu] et pour les autres questions, tu crée un nouveau sujet, merci.

par Gakman » 05 nov. 2005, 18:15

Oui !!!
ça marche :)
Merci à tous !

Jsute avant de mettre résolu quelqu'un pourrait-il répondre à mes questions ?
 $pt5=strrpos($file5,"."); // rôle ? 
  $folder_name=$file5; // rôle ? 

Le code final si ça peut intéresser quelqu'un :
<p class="titre">Merci !</p>
<?
$dossier_j="j_".$_GET['jeu'];

$liste5=array();
$handle5=opendir($dossier_j);
 while($file5=readdir($handle5)){
  $pt5=strrpos($file5,"."); // rôle ?
  $folder_name=$file5; // rôle ?
  $num5=substr($file5,2); // supprimable
  $fich5=$dossier_j."/".$file5."/details.php";
  if (@file_exists($fich5)){
   array_push($liste5,$num5);}} // remplacer $num5 par $file5 si supprimé
closedir($handle5);
$num_new=count($liste5);
$num_new++;
$dossier_s_new="s_".$num_new;
mkdir ($dossier_j."/".$dossier_s_new,0700);

$Fnm=$dossier_j."/".$dossier_s_new."/details.php";
$ouvre_w = '<'.'?';
$ferme_w = '?'.'>';
$auteur_w = '$auteur="'.$_POST["auteur"].'";';
$mail_w = '$mail="'.$_POST["mail"].'";';
$site_w = '$site="'.$_POST["site"].'";';
$titre_w = '$titre="'.$_POST["titre"].'";';
$note_w = '$note="'.$_POST["note"].'";';
$date_w = '$date="'.date("d/m/Y").'";';

$inF=fopen($Fnm,"w");
fwrite($inF,$ouvre_w."\n".$auteur_w."\n".$mail_w."\n".$site_w."\n".$titre_w."\n".$date_w."\n".$note_w."\n".$ferme_w);
fclose($inF);

$commentaire_w=$_POST["commentaire"];
$Fnm2=$dossier_j."/".$dossier_s_new."/commentaire.php";
$inF2=fopen($Fnm2,"w");
fwrite($inF2,$commentaire_w);
fclose($inF2);

echo '<p>&nbsp;</p><p><a href="index.php?lang='.$_GET['lang'].'&rub=liste&jeu='.$_GET['jeu'].'">Retour à la page du jeu.</a></p><p>&nbsp;</p>';
include("m_retour.php"); include("m_stats.php");
?>

par Truc » 05 nov. 2005, 17:17

c'est cette ligne qui empeche la récéption des données:

Code : Tout sélectionner

enctype="text/plain"
enleve la et essai d'envoyer ton fichier
sinon remplace par:

Code : Tout sélectionner

enctype="multipart/form-data"

par Gakman » 05 nov. 2005, 17:01

j'ai rajouté les echo sur la page rub_post_rez.php juste en dessous des POST, et quand je l'exécute (depuis la page du formulaire rub_post.php), les valeurs n'apparaissent pas donc elles ne passent pas ?

par Gakman » 05 nov. 2005, 16:56

et ba non ça marche toujours pas

par Gakman » 05 nov. 2005, 16:52

il faut supprimer mes variables $ouvre_w et $ferme_w c'est elles qui font le problème !

par Gakman » 05 nov. 2005, 16:50

Euh.. une simple boucle for() de 1 a 20 ou tu fait juste un echo '<option...' avec $i en value :wink:
Comment j'ai pu ne pas y penser ??? Bon je vai me coucher moi... :wink: lol
J'essaye de passer en POST et d'afficher pour voir et je te donne la réponse.

par Truc » 05 nov. 2005, 16:43

donc les valeurs du formulaire ne sont pas passées !
récupère les variables avec POST au lieu de REQUEST, autant eviter si tu sait que ces variables seront toujours envoyés en POST.
$auteur_w =$_POST["auteur"]; 
//fait un affichage avant l'écriture dans le fichier
echo $auteur_w;
J'ai revérifié mes ; et } car j'en oublie régulièrement mais je n'ai rien trouvé (à part les 2 } manquantes.
Pour eviter ce genre de probleme tu referme l'accolade des que tu en ouvre une et tu écris entre ces 2 {..}, comme ça pas d'oublis :wink:
Vous ne savez pas comment faire pour la note pour ne pas mettre toutes les valeurs ?

Euh.. une simple boucle for() de 1 a 20 ou tu fait juste un echo '<option...' avec $i en value :wink:

par Gakman » 05 nov. 2005, 16:26

J'ai un problème : le script ne marche pas !
le fichier details.php créé contient
<?






?>
et commentaire.php est vide.
donc les valeurs du formulaire ne sont pas passées !
Voilà le code de la page forumalire :

Code : Tout sélectionner

<p align="center" class="gdtitre">Soumettre un fichier</p> <hr /> <p>Vous pouvez ici m'envoyer vos sauvegardes.</p> <p>&nbsp;</p> <form action="index.php?lang=<?=$_GET['lang']?>&rub=post_rez&jeu=<?=$_GET['jeu']?>" method="post" enctype="text/plain" id="post_script" name="post_script"> <p>Pseudo : <input name="auteur" id="auteur" /> (utilisez celui du forum SVP)</p> <p>Adresse E-mail : <input id="mail" name="mail" /></p> <p>Site perso : <input id="site" name="site" /></p> <p>Support : <select id="support" name="support"> <option selected>Windows</option> <option>DreamCast</option> <option>MegaDrive / Genesis</option> <option>MasterSystem</option> <option>GameGear</option> <option>XBox</option> <option>PlayStation 2</option> <option>PlayStation</option> <option>PSP</option> <option>GameCube</option> <option>Nintendo64</option> <option>SuperNintendo / SNES / SuperFamicom</option> <option>Nintendo / NES / Famicom</option> <option>DS</option> <option>GameBoy Advance</option> <option>GameBoy / GameBoy Color</option> <option>NGage</option> <option>arcade</option> <option>Linux</option> <option>MacOS</option> <option>Amiga</option> </select></p> <p>Titre de la sauvegarde : <input id="titre" name="titre" /></p> <p>Note (sur 20) donnée à la sauvegarde : <select id="note" name="note"> <option selected>Non notée</option> <option>1</option> <option>2</option> <option>3</option> <option>4</option> <option>5</option> <option>6</option> <option>7</option> <option>8</option> <option>9</option> <option>10</option> <option>11</option> <option>12</option> <option>13</option> <option>14</option> <option>15</option> <option>16</option> <option>17</option> <option>18</option> <option>19</option> <option>20</option> </select> <p>Vos commentaires et d&eacute;tails sur cette sauvegarde :<br /><textarea id="commentaire" name="details" rows="6" cols="75"></textarea></p> <p class="base_Rouge">S&eacute;lectionnez le(s) fichier(s) que vous voulez envoyer :<input id="fichier" name="fichier" type="file" size="40" /></p> <p><input name="post_submit" id="post_submit" type="submit" value="Envoyer" /></p> </form> <p>&nbsp;</p> <p>&nbsp;</p> <? include("m_retour.php"); include("m_stats.php");?>
On ne peut pas colorer le code HTML comme pour la balise PHP ?
Je ne sais pas où j'ai fait une erreur... J'ai revérifié mes ; et } car j'en oublie régulièrement mais je n'ai rien trouvé (à part les 2 } manquantes, merci Truc !).
Vous ne savez pas comment faire pour la note pour ne pas mettre toutes les valeurs ? Exemple : pouvoir déclarer valeurs de 1 à 20. Bon faut déjà régler le problème principal, ça je verrai après.

par Gakman » 05 nov. 2005, 16:21

OK merci je regarde ça ! Eh oui c'était juste ça :lol:.
J'ai mis à jour le code dans mon post.

par Truc » 05 nov. 2005, 16:20

tu as des accolades qui ne sont pas fermées pour la boucle while et le test if :wink:

par DarkBlue » 05 nov. 2005, 16:19

est-ce que tu as verifie que $liste5 etait pas vide ?

par Gakman » 05 nov. 2005, 16:14

je viens de l'ajouter, et c'est pareil :(. De plus je pense que finalement le +1 ne sert pas car si on le supprime on va simplement faire des dossiers de s_0 à s_(x-1) à la place de s_1 à s_x.
Enfin bref c'est pas ça le problème :cry:

par DarkBlue » 05 nov. 2005, 16:11

oui car :
$num_new=count($liste5); 
$dossier_s_new="s_".$num_new; 
mkdir ($dossier_j."/".$dossier_s_new,0700);
tu as oublié d'ajouter 1 donc tu essaie de creer un dossier qui existe deja

par Gakman » 05 nov. 2005, 16:08

Mon script ne marche pas :(
J'ai un mesage d'arreur : (la ligne 39 est la dernière)

Code : Tout sélectionner

Parse error: parse error, unexpected $ in /var/www/free.fr/7/a/gakman/rub_post_rez.php on line 39
<?
$dossier_j="j_".$_GET['jeu'];

$liste5=array();
$handle5=opendir($dossier_j);
 while($file5=readdir($handle5)){
  $pt5=strrpos($file5,"."); // rôle ?
  $folder_name=$file5; // rôle ?
  $num5=substr($file5,2); // supprimable
  $fich5=$dossier_j."/".$file5."/details.php";
  if (@file_exists($fich5)){
   array_push($liste5,$num5);}} // remplacer $num5 par $file5 si supprimé
closedir($handle5);
$num_new=count($liste5);
$num_new++;
$dossier_s_new="s_".$num_new;
mkdir ($dossier_j."/".$dossier_s_new,0700);

$Fnm=$dossier_j."/".$dossier_s_new."/details.php";
$ouvre_w = "<?";
$ferme_w = "?>";
$auteur_w = $_REQUEST["auteur"];
$mail_w = $_REQUEST["mail"];
$site_w = $_REQUEST["site"];
$titre_w = $_REQUEST["titre"];
$date_w = $_REQUEST["date"];
$note_w = $_REQUEST["note"];
$inF=fopen($Fnm,"w");
fwrite($inF,$ouvre_w."\n".$auteur_w."\n".$mail_w."\n".$site_w."\n".$titre_w."\n".$date_w."\n".$note_w."\n".$ferme_w);
fclose($inF);

$commentaire_w=$_REQUEST["commentaire"];
$Fnm2=$dossier_j."/".$dossier_s_new."/commentaire.php";
$inF2=fopen($Fnm2,"w");
fwrite($inF2,$commentaire_w);
fclose($inF2);

echo '<p>&nbsp;</p><p>&nbsp;</p>';
include("m_retour.php"); include("m_stats.php");
?>