fopen

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 : fopen

par marvllt » 11 juil. 2006, 00:48

lol merci mais bon je vais chercher sinon^^

mais un peu d'aide sera la bien venu

encore un grand merci

A+ Marvllt

par Truc » 11 juil. 2006, 00:32

Je fais remonter le sujet pour toi... étant donné que je suis mauvais en expression régulières... :oops:

Aidez-le [-o< :lol:

par marvllt » 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

par marvllt » 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

par Truc » 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.

par marvllt » 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

par Truc » 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()

par marvllt » 09 juil. 2006, 13:38

ha merde j'aurais voulu ciblé le truc tampis

heu je comprend comment on fait pour modifier le fichier

par Truc » 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.

par marvllt » 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^^

par Truc » 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

par marvllt » 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

par Truc » 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>';

par Cyrano » 09 juil. 2006, 12:00

mouais, essaye plutôt:
<?php
//...
echo'<textarea rows="500" cols="500">'. $text .'</textarea>';
//...
?>

par marvllt » 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