fopen

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

09 juil. 2006, 11:34

J'ai repris exactement la boucle de lecture et le contenu du fichier que tu as proposé et je n'ai aucun souci particulier :-k

Tu essai bien de lire le bon fichier ?
as tu effectué un test avec un fihcier sur une seule ligne, un mot ...

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 90 Messages

09 juil. 2006, 11:41

ok c'est bon ça marche aussi j'ai eu un prob avec le fichier reglage.php


merci a+

Eléphant du PHP | 90 Messages

09 juil. 2006, 11:57

maintenant je voudrais mettre tout le text dans un textarea pour pouvoir le midifier sans que j'aille sur mon ftp

mais le probleme c'est qu'il n'y a pas tout qui s'affiche
<?
$text='';
$fp = fopen("reglage.php","r");   
if ($fp)
{
   while(!feof($fp))
   {
       if($text2 =  fgets($fp))
      {
	  	$text.=$text2.'<br>';	
      }
      else echo 'impossible à lire <br>';
   }
   echo 'fin de boucle <br>';
   fclose($fp);  
   echo'<textarea rows="500" cols="500" value="'.$text.'"></textarea>';
}
else echo "erreur d'ouverture du fichier <br>";

?>
et voila ce quil me mais

Code : Tout sélectionner

<br> array("style1","style1.css"), <br> array("style2","style2.css") <br>); <br>/////// <br>// GESTION ADMIN <br>/////// <br>$var_admin=array ( <br> '-1' => array ('joueur' ), <br> '0' => array ('admin', "l'admin peut tout gerer",1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16), <br> '1' => array ('modo', "") <br>); <br>?><br>">
as tu une petite idée de l'erreur

encore merci

A+ Marvllt
Modifié en dernier par marvllt le 09 juil. 2006, 12:40, modifié 1 fois.

Mammouth du PHP | 19672 Messages

09 juil. 2006, 12:00

mouais, essaye plutôt:
<?php
//...
echo'<textarea rows="500" cols="500">'. $text .'</textarea>';
//...
?>
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

09 juil. 2006, 12:02

L'idée c'est déjà de na pas oublier les mots les plus importants des questions :lol:
mais le probleme c'est qu'il n'y a pas du qui s'affiche

Je suppose que c'est "il n'y a pas tout qui s'affiche" ?! :-k

Sinon attention la balise textarea ne comporte pas d'attribut "value" il faut écrire le contenu entre le tag d'ouverture et celui de fermeture:
echo'<textarea rows="500" cols="500">'.$text.'</textarea>';

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 90 Messages

09 juil. 2006, 12:51

ok merci dsl pour l'erreur de frappe

encore une question j'y vais progressivement^^

sur le site je concentre tous les champs d'ecriture dans un fichier
et tous les script et sur index.php et je selectionne la page avec un get index.php?p=xx
switch ($p)
{
case '1':
break;
case'2':
break;
}
et donc pour avoir la partie d'ecriture qui conrespond a la case'1':
je prend la partie texte.php?p=1

donc la je voudrai faire en sorte que les admins puissent clicqué sur un bouton qui les renveraient dans une page de correction de fautes d'orthographes qui ferai apparaitre le code d'écriture dans un textarea concernant seulement la partie de la page ou ils ont clicqué et c'est la mon probleme

voila comment est mon code d'écriture (bon la je mes qu'un case mais il y en a plein)
	case '4':
		$texte = array( 
		'change_mpd'  	=> 	'Changer son mdp:',
		'vieu_mpd'		=>	'ancien mdp:',
		'new_mpd'		=>	'nouveau mdp:',
		'verif'			=>	'vérification:',
		'change_login'	=>	'Changer son pseudo:',
		'new_login'		=>	'nouveau pseudo:',
		'change_mail'	=>	'Changer son adresse mail:',
		'new_mail'		=>	'nouveau mail:',
		'cookie'		=>	'Envoie de cookie:',
		'retenir'		=>	'retenir le mdp:',
		'effacer'		=>	'effacer le mdp:',
		'mps'			=>	'Recevoir des mps:',
		'maire'			=>	'par les maires:',
		'mail'			=>	'Recevoir des mails:',
		'style'			=>	'Choisir le style:',
		'lang'			=>	'Choisir la langue:',
		'supr'			=>	'Supprimer le compte:',
		'oui'			=>	'oui',
		'non'			=>	'non',
		'valider'		=>	'valider:'
		
		);		
	break;
je sais pas si je me suis exprimé clairement en esperant que vous alez comprendre ^^

merci d'avance

A+ Marvllt

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

09 juil. 2006, 13:03

Hum très vague...

Tu veux permettreaux admins de changer les textes par exemple:
$texte = array(
        'change_mpd'      =>     'Changer son mdp:',
        'vieu_mpd'        =>    'ancien mdp:', 
"Changer son mdp:" qui deviendrait "Change ton passe !!! "
et ça dans des champs texte ?

Proposition:

Après le switch:
<form ... > // avec les paramètres qui vont bien
<?php
foreach($texte as $cle => $valeur)
{
   echo '<input type=text" name="'.$cle.'" value="'.$valeur.'">';
}
?>
<input type="submit" name="Valider" value="Valider"></form>
ensuite un traitement sur le formulaire avec enregistrement des champs

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 90 Messages

09 juil. 2006, 13:06

oui je voudrai que les admin puissent changer le texte mais je voudrai que la partie de texte concernat la page s'affiche dans un textarea donc le prob c'est comment selectionner une partie de texte avec fopen pour le changer du fichier c'est pr la prochaine question^^

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

09 juil. 2006, 13:20

Ben re-écris la totalité du fichier qui est contenu dans le textarea toutes les modif seront pris en compte.

avec un fopen('fichier.php',w') qui écrase les données avec les nouvelles renvoyées par le texarea.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 90 Messages

09 juil. 2006, 13:38

ha merde j'aurais voulu ciblé le truc tampis

heu je comprend comment on fait pour modifier le fichier

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

09 juil. 2006, 13:56

Cibler le truc... Kes tu m'veu :mrgreen:

Enfait c'est beaucoup plus simple de tout reécrire le fichier sinon faudrait passer par des expression régulières, fonction de comparaison, un tas de fonction de fichier...

Pour écrire dans le fichier tu dois valider le formulaire récupérer les données du textarea puis ouvrir le fichier en écriture fopen() avec "w" ou "w+" puis fwrite() ou si tu est en PHP5 file_put_contents()

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 90 Messages

09 juil. 2006, 14:17

ok merci j'ai compris le truc il ne reste te plus que je vois le REGEX pour cobler le truc

A+ Marvllt

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

09 juil. 2006, 15:24

Tu n'en auras pas besoin puisque TOUT le fichier est recrée donc inutile de repérer les lignes modifiées.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 90 Messages

09 juil. 2006, 15:33

justement je veux cibler je vaux que les agmin ne modifie pas tout d'un coup je voudrais juste qu'ils puisent modifier ce qu'il y a dans les array

Eléphant du PHP | 90 Messages

09 juil. 2006, 20:52

re

j'ai encore un petit prb dsl de vous déranger


$chaine="	case '5':
		$texte = array( 
		'new_mdp'  		=> 	'Votre nouveau mdp est: ".$_POST['new_mdp'].".',
		'new_login'		=>	'Votre nouveau login est: ".$_POST['new_login'].".',
		'new_mail'		=>	'Votre nouvelle adresse mail est: ".$_POST['new_mail'].".',
		'existe_mail'	=>	'Votre adresse mail n\'a pas été changée car elle est déja utilisée.',
		'mdp_retenu'	=>	'Votre mdp sera retenu.',
		'mdp_effacé'	=>	'Votre mpd est effacé.',
		'new_style'		=>	'votre nouveau style est: ".$_POST['style'].".',
		'new_lang'		=>	'votre nouvelle langue est: ".$_POST['lang'].".',
		'supr_compte'	=>	'Votre compte est supprimé.',
		'accepter_mps'	=>	'Vous accepter de recevoir des mps collectifs des la part de votre maire.',
		'refuser_mps'	=>	'Vous refuser de recevoir des mps collectifs des la part de votre maire.',
		'accepter_mail'	=>	'Vous accepter de recevoir des mails collectifs des la part de votre maire.',
		'refuser_mail'	=>	'Vous refuser de recevoir des mails collectifs des la part de votre maire.',		
		'erreur'		=>	'ERREUR'
		
		);		
	break;	
	//connexion
	case '6':
		$texte = array( 
		'oubli'  		=> 	'Vous devez obligatoirement rentrer un login et un mot de passe.',
		'bad_mdp'		=>	'Ce mot de passe est incorrect.',
		'bad_login'		=>	'Ce login n\'existe pas.',
		'ban'			=>	'Votre joueur est banni.',
		'multi'			=>	'Plusieurs compte sur le meme pc est interdit.'
		
		);		
	break;	";

preg_match_all('`(case '5')(.+?)(break)`i',$chaine,$out);

$nb=count($out[0]);

for($i=0;$i<$nb;$i++)
{
echo $out[0][$i].'<br />';
}
 
voila je voudrais selectionner que le case '5' mais sa ne marche pas et comme je début dans le REGEX j'aimerai un ptit coup de main

merci

A+ Marvllt