Créer fichier TXT

Créer fichier TXT - PHP - Programmation

Marsh Posté le 26-06-2006 à 20:05:34    

Mon but étant de modifier un fichier TXT si le mot de passe est bon.
 
Je reçois une erreur après avoir vérifier si le mot de passe est présent et qu'il est ok.
 
Je voulais mettre les lignes pour écrire mon fichier txt là où ça plante.
 
Voici mon code:
 
<?php
///-------------- début -----------------///
 
//$messtxt=fopen("message.txt", "r" );
$messtxt=file_get_contents("message.txt", False);
//mettre le mot de passe ici
$motdepasse="35;bleus";
 
///--------------  fin ----------------///
 
 
// ------ Afficher  le formulaire----- //
?>
<form ENCTYPE="multipart/form-data" method="post" name="upload">  
 <br>
 <table align="center" bgcolor="#FFA07A" bordercolorlight border="2" width="80%" cellpadding="10">
  <caption><h3><center><strong>Mise à jour du message personnalisé de votre page</strong></center></h3></caption>
  <tr><td><input type="hidden" name="MAX_FILE_SIZE" value="9999999" /><strong>Mot de passe </strong><input name="mdp" type="password">&nbsp;Obligatoire</td></tr>
  <tr><td><strong>Message</strong></td></tr>
  <tr><td><textarea name="texte" cols="120" rows="7"> <?php echo $messtxt?></textarea></td></tr>
  <tr><td align="center"><input type="SUBMIT" VALUE="Envoyer sur le site">&nbsp;<input type="reset" name="Cancel " value="Annulé"></td></tr>
 </table>
</form>  
<?
 
 
 
if($motdepasse=="" ) die("Il faut inscrire le mot de passe pour transférer votre message sur le site!" );
 
if($mdp!=$motdepasse) die ("Le mot de passe est erroné" );
 
{
 echo "Transfert des données vers message.txt"
}
 
?>
 
 
Parse error: parse error, unexpected '}', expecting ',' or ';' in /var/www/vhosts/ats3r.org/httpdocs/2006/equipe/35bleus/transfert.php on line 34

Reply

Marsh Posté le 26-06-2006 à 20:05:34   

Reply

Marsh Posté le 26-06-2006 à 20:07:51    

ben t'as oublié un ; a la fin de ton dernier echo.
comme c'est ecrit dans le message d'erreur quoi

Reply

Marsh Posté le 26-06-2006 à 20:15:19    

Oups!
 
Quand je pèse sur envoyer, il ne se passe rien, comment puis-je savoir où passe le programme.
 
Merci!

Reply

Marsh Posté le 26-06-2006 à 20:21:47    

si tu as mis tout ca dans un meme fichier, j'ai l'impression qu'il te manques les bases
 
http://www.phpdebutant.org/article56.php

Reply

Marsh Posté le 26-06-2006 à 20:34:39    

Si le mdp est bon, je veux transéfer le contenu de messtxt vers message.txt.


Message édité par fourniey le 26-06-2006 à 20:49:39
Reply

Marsh Posté le 26-06-2006 à 21:37:42    

fourniey a écrit :

Oups!

 

Quand je pèse sur envoyer, il ne se passe rien, comment puis-je savoir où passe le programme.

 

Merci!


peut etre que ca irait mieux si tu demandais a php d ecrire dans le fichier non ?  [:petrus dei]

 
Code :
  1. {
  2. echo "Transfert des données vers message.txt"
  3. }
 


les accolades servent a rien tu as du effacer une ligne
et ce code va juste ecrire sur la page "Transfert des données vers message.txt"
mais il va pas le faire

Reply

Marsh Posté le 28-06-2006 à 17:44:08    

Le contenu du fichier message.txt ne s'affiche pas dans le textarea et je ne trouve pas pourquoi ?
 
Merci de me guider!
 
Code:
 
<?php
///--------------  configuration  -----------------///
 
$messtxt=file_get_contents("message.txt", False);  
//$messtxt=fopen("message.txt", "r" );  
 
//mettre le mot de passe ici
$motdepasse="test";
 
//option pour afficher ou non le formulaire d'upload (1:oui, 0:non)
$formulaire_upload=1;
 
//si vous voulez rajouter des variables aux urls:
$variable_url='';
 
// Haut de la page
function tete($title)
{
 echo '<html><head><title>'.$title.'</title></head><body>';
}
 
// Bas de la page  
function pied()
{
 echo '</body></html>';
}
 
///--------------  fin configuration ----------------///
 
 
if($motdepasse=="" ) die("Il faut inscrire le mot de passe pour transférer un fichier sur le site!" );
 
 
//nom du dossier
$dirname=pathinfo($_SERVER['PHP_SELF'],PATHINFO_DIRNAME);
 
//chemin du dossier
$path=".".$dirname;
 
//chemin depuis la racine du serveur
$chemin=$_SERVER['DOCUMENT_ROOT'];
 
//nom de la page
$nom_page=$_SERVER['SCRIPT_NAME'];
 
//$dossier=urldecode($dossier);
$path=rawurlencode($path);
$path=str_replace('%2F','/',$path);
 
//$dossier=rawurlencode($dossier);
$dossier=str_replace('%2F','/',$dossier);
$dossier=str_replace(".","",$dossier);
$chemin_entier=$chemin.$dirname."/".$dossier;
 
/**
 * echo "<br /><b>\$path:</b> $path ";
echo "<br /><b>\$chemin</b>: $chemin ";
echo "<br /><b>\$dossier</b>: $dossier";  
echo "<br /><b>\$chemin_entier</b>: $chemin_entier<br />";
 */
 
// correction Francois
$act=$_POST['act'];
 
switch($act)
{
 case "upload":
  // correction Francois
  if($_POST['mdp']!=$motdepasse) die ("Le mot de passe est erroné" );
  upload();
  break;
  default :
  tete($title);
  if($formulaire_upload==1){ afficher_formulaire_upload(); }
   break;
}
 
 
///-------------------- liste des fonctions ----------------------////
 
function alert($message)
{
 echo "<br /><table align=\"center\" style=\"border:1px solid #C0c0c0;\"><tr><td><h4>$message</h4></td></tr></table>";
}
 
 
function afficher_formulaire_upload()
{
 
?>
<form ENCTYPE="multipart/form-data" method="post" name="upload">  
 <br>
 <table align="center" bgcolor="#FFA07A" bordercolorlight border="2" width="80%" cellpadding="10">
  <caption><h3><center><strong>Mise à jour du message personnalisé de votre page</strong></center></h3></caption>
  <tr><td><input type="hidden" name="MAX_FILE_SIZE" value="9999999" /><strong>Mot de passe </strong><input name="mdp" type="password">&nbsp;Obligatoire</td></tr>
  <tr><td><strong>Message</strong></td></tr>
  <tr><td><textarea name="texte" cols="120" rows="7"> <?php echo $messtxt?></textarea></td></tr>
  <tr><td align="center"><input type="SUBMIT" VALUE="Envoyer sur le site">&nbsp;<input type="reset" name="Cancel " value="Annulé"></td></tr>
 </table>
</form>  
<?  
 
  }
 
function upload()
{
 global $HTTP_HOST,$REQUEST_URI,$_FILES,$chemin,$dossier,$chemin_entier;
  if(move_uploaded_file($_FILES["NomFichier"]["tmp_name"],$chemin_entier.'/'.$_FILES["NomFichier"]["name"]))
  {
   $path=pathinfo($_SERVER['PHP_SELF'],PATHINFO_DIRNAME);
   echo '<h3>"'.$_FILES['NomFichier']['name'].'" a été envoyé sur le serveur avec succès</h3>';
   echo '<p><a href="?dossier='.$dossier.$variable_url.'">Retourner à ma page</a><br /></p>';
  }  
}
 
?>

Reply

Marsh Posté le 28-06-2006 à 17:49:59    

manque pas un ";" apres ton $messtxt ?
sinon j aime bien que mes fonctions soient déclarées dès le debut du script mais si t as pas d erreur de ce coté la c est cool

Reply

Marsh Posté le 28-06-2006 à 17:53:35    

Il n'y a pas d'erreur de déclaré! J'ai ajouté le ; même résultat.
 
J'ai mis echo $messtxt; tout de suite après mon file_gets...
 
et le contenu est bien dans la variable.


Message édité par fourniey le 28-06-2006 à 17:57:44
Reply

Marsh Posté le 28-06-2006 à 17:59:54    

alors trace ta source pour voir à quel endroit elle disparait (tu dois sûrement l'effacer ou alors la remplacer)

Reply

Marsh Posté le 28-06-2006 à 17:59:54   

Reply

Marsh Posté le 28-06-2006 à 18:08:00    

mIRROR a écrit :

manque pas un ";" apres ton $messtxt ?
sinon j aime bien que mes fonctions soient déclarées dès le debut du script mais si t as pas d erreur de ce coté la c est cool


 
Non, c'est pas cool justement.
 
On devrait interdire aux gens de commencer par le PHP, parce que déclarer une fonction avant de l'utiliser, c'est quand même la moindre des choses je trouve, d'autant qu'on retrouve la nécessité de cette habitude dans bcp d'autres langages.  :??:

Reply

Marsh Posté le 28-06-2006 à 18:18:53    

Hermes le Messager a écrit :

Non, c'est pas cool justement.
 
On devrait interdire aux gens de commencer par le PHP, parce que déclarer une fonction avant de l'utiliser, c'est quand même la moindre des choses je trouve, d'autant qu'on retrouve la nécessité de cette habitude dans bcp d'autres langages.  :??:


 
bon je vais dire un truc qui ne va surement faire rire que moi mais bon
j aime bien ce coté intuitif de php
ca me rappelle mes debuts de webmaster avec ie
il m a fallu du temps avant de m habituer a la rigueur de firefox
bref on s en fout mais le parallele m amuse
 
mdrrrrr je suis trop bete j avais pas vu  :sweat:  
c est idiot tes pseudo fonctions html

Code :
  1. function afficher_formulaire_upload($messtext)

ca marche mieux comme ca peut etre :/


Message édité par mIRROR le 28-06-2006 à 18:19:30
Reply

Marsh Posté le 28-06-2006 à 20:52:35    

Re-bonjour,
 
Je poursuis pour arriver à modifier mon fichier message.txt.  
 
Maintenant, quand je pèse sur le bouton terminé, il ne se passe rien à l'exception que le mot de passe se vide. Si je ne mets pas de mdp, aucun message!
 
 
<?php
//$messtxt=fopen("message.txt", "r" );
$messtxt=file_get_contents("message.txt", False);
 
//mettre le mot de passe ici
$motdepasse="test";
 
//si vous voulez rajouter des variables aux urls:
$variable_url='';
 
 
?>
<form ENCTYPE="multipart/form-data" method="post" name="upload">  
 <br>
 <table align="center" bgcolor="#FFA07A" bordercolorlight border="2" width="80%" cellpadding="10">
  <caption><h3><center><strong>Mise à jour du message de la page de votre équipe</strong></center></h3></caption>
  <tr><td><input type="hidden" name="MAX_FILE_SIZE" value="9999999" /><strong>Mot de passe </strong><input name="mdp" type="password">&nbsp;Obligatoire</td></tr>
  <tr><td><strong>Message</strong></td></tr>
  <tr><td><textarea name="texte" cols="120" rows="7"> <?php echo $messtxt?></textarea></td></tr>
  <tr><td align="center"><input type="SUBMIT" VALUE="Terminé">&nbsp;<input type="reset" name="Cancel " value="Annulé"></td></tr>
 </table>
</form>  
<?
 
 
 
if($motdepasse=="" ) die("Il faut inscrire le mot de passe pour transférer un fichier sur le site!" );
 
 //nom du dossier
 $dirname=pathinfo($_SERVER['PHP_SELF'],PATHINFO_DIRNAME);
 //chemin du dossier
 $path=".".$dirname;
 //chemin depuis la racine du serveur
 $chemin=$_SERVER['DOCUMENT_ROOT'];
 //nom de la page
 $nom_page=$_SERVER['SCRIPT_NAME'];
 //$dossier=urldecode($dossier);
 $path=rawurlencode($path);
 $path=str_replace('%2F','/',$path);
 //$dossier=rawurlencode($dossier);
 $dossier=str_replace('%2F','/',$dossier);
 $dossier=str_replace(".","",$dossier);
 $chemin_entier=$chemin.$dirname."/".$dossier;
 // correction
 $act=$_POST['act'];
 switch($act)
 {
  case "upload":
   // correction
   if($_POST['mdp']!=$motdepasse) die ("Le mot de passe est erroné" );
    upload();
    break;
    default :
    // tete($title);
    if($formulaire_upload==1){ afficher_formulaire_upload(); }
     break;
 }
 
///-------------------- liste des fonctions ----------------------////
 
function alert($message)
{
echo "<br /><table align=\"center\" style=\"border:1px solid #C0c0c0;\"><tr><td><h4>$message</h4></td></tr></table>";
}
 
 
function upload()
{
echo 'Test';
 global $HTTP_HOST,$REQUEST_URI,$_FILES,$chemin,$dossier,$chemin_entier;
  if(move_uploaded_file($_FILES["NomFichier"]["tmp_name"],$chemin_entier.'/'.$_FILES["NomFichier"]["name"]))
  {
   $path=pathinfo($_SERVER['PHP_SELF'],PATHINFO_DIRNAME);
   echo '<h3>"'.$_FILES['NomFichier']['name'].'" a été envoyé sur le serveur avec succès</h3>';
   echo '<p><a href="?dossier='.$dossier.$variable_url.'">Retourner à ma page</a><br /></p>';
  }
}
 
?>
 

Reply

Marsh Posté le 28-06-2006 à 20:56:16    

un form sans action ca sert a rien maintenant va prendre des cours ca suffit :o

Reply

Marsh Posté le 28-06-2006 à 21:06:06    

Mon cher mirror, je te verrais à ma place, je dois me débrouiller pour faire plaisir aux gens de l'association avec des choses que je ne connais pas mais dont je m'efforce de comprendre pour satisfaire les gens.
 
Et le pire dans tout ça, c'est du bénévolat; j'espère que tu connais ce mot! Mon travail n'est pas la programmation mais la gestion de projet.
 
Et dans tout ça, je récolte des insultes probablement méritées mais je dois plier sur mon orgueil parce que je veux que les gens soient contents et fiers de leur site.
 
Merci!

Reply

Marsh Posté le 28-06-2006 à 21:14:04    

fourniey a écrit :

Mon cher mirror, je te verrais à ma place, je dois me débrouiller pour faire plaisir aux gens de l'association avec des choses que je ne connais pas mais dont je m'efforce de comprendre pour satisfaire les gens.
 
Et le pire dans tout ça, c'est du bénévolat; j'espère que tu connais ce mot! Mon travail n'est pas la programmation mais la gestion de projet.
 
Et dans tout ça, je récolte des insultes probablement méritées mais je dois plier sur mon orgueil parce que je veux que les gens soient contents et fiers de leur site.
 
Merci!


 
Si tu n'as pas le niveau pour faire un site internet digne de ce nom, tu n'as pas le niveau. Point. On ne va pas envoyer non plus des médecins en Afrique qui n'ont pas étudier la médecine au préalable sous prétexte que c'est gratuit.  
Faire un site internet de qualité qui répond à un cahier des charges rigoureux, c'est pas donné à tout le monde. Ton assoc veut un site pourri, n'importe qui pourra sans doute le faire en utilisant un programme, en copiant collant des bouts de code par ci par là. Dans le cas contraire, il faudra payer. C'est pour tout pareil, l'informatique ne fait pas exception à la rêgle.

Reply

Marsh Posté le 28-06-2006 à 21:22:12    

fourniey a écrit :

Mon cher mirror, je te verrais à ma place, je dois me débrouiller pour faire plaisir aux gens de l'association avec des choses que je ne connais pas mais dont je m'efforce de comprendre pour satisfaire les gens.
 
Et le pire dans tout ça, c'est du bénévolat; j'espère que tu connais ce mot! Mon travail n'est pas la programmation mais la gestion de projet.
 
Et dans tout ça, je récolte des insultes probablement méritées mais je dois plier sur mon orgueil parce que je veux que les gens soient contents et fiers de leur site.
 
Merci!


 
j ai appris seul
sans poser 20 questions a la suite parce que je n etais pas capable de resoudre un probleme auquel la documentation sur le net repond au moins 200 fois par jour
 
j aide les gens qui ont des problemes ici et c est aussi du benevolat
mais on n est pas ici pour faire le taf minimal a leur place c est a dire RTFM
 
pour finir je ne t ai pas insulté et je n y compte pas  
j ai dit "va prendre des cours"
ca par contre je le repete [:spamafote]

Reply

Marsh Posté le 28-06-2006 à 21:41:27    

Si je pouvais, sois assuré que je suivrais des cours mais comme mon travail est aussi exigeant, et bien, je manque de temps. Par contre, je lis et j'apprends.

Reply

Marsh Posté le 29-06-2006 à 17:32:32    

Je vais essayer de t'éclairer un peu sur tes erreurs
 
Premiérement si tu pouvais utiliser les balises de code  (bouton C/C++) quand tu postes un message ça serait plus lisible pour nous ;)
 
Ensuite

Code :
  1. <form ENCTYPE="multipart/form-data" method="post" name="upload">


 
il manque un élément essentiel à la déclaration de ton formulaire à savoir l'action, cad ce qu'il va faire lorsque tu vas le submit (en cliquant sur ton bouton dans ton cas)
Donc là il faut rajouter l'option action="monfichier.php" comme ci dessous

Code :
  1. <form ENCTYPE="multipart/form-data" method="post" name="upload" action="monfichier.php">


 
Une fois ceci corrigé tu pouras retrouver le contenu de ta zone de texte à l'aide de $_POST['texte'] texte étant le nom de ta textarea
 
Désolé de ne pas répondre plus longuement mais j'espére que ça va te débloquer un peu (et puis la c'est l'heure de rentrer à la maison)  :sol:  

Reply

Marsh Posté le 30-06-2006 à 22:13:21    

est-ce que je dois faire le contrôle du mot de passe dans le premier php ou dans monfichier.php ?

Reply

Marsh Posté le 30-06-2006 à 22:18:28    

nico168 a écrit :

si tu as mis tout ca dans un meme fichier, j'ai l'impression qu'il te manques les bases
 
http://www.phpdebutant.org/article56.php


 
 
Ah bon et pourquoi ?

Reply

Marsh Posté le 30-06-2006 à 22:28:22    

j'ai deux fichiers, un pour le formulaire (mot de passe et message) et un pour les réponses.

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed