modifier un fichier en PHP

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 : modifier un fichier en PHP

par Truc » 23 janv. 2008, 15:43

Certes je me suis limité à BD mais Ryle fait bien de compléter la liste :)

par Ryle » 23 janv. 2008, 15:10

bof... base de données, fichier de configuration, flux xml... la source de données importe peu... c'est pas terrible que ce soit sous la forme d'un code php qui soit directement inclu, mais c'est surtout parce que c'est pas habituel...
Un fichier xml du genre

Code : Tout sélectionner

<points> <parrain>xxx</parrain> <filleul>xxx</filleul> </points>
qu'il te suffirait de parser serait peut être une alternative plus légère que la base de données et moins effrayante que la modification en ligne d'un script php...

Y a pas de moyen de modifier le milieu ou le début d'un fichier sans le réecrire complètement.

par VaN » 23 janv. 2008, 14:51

Je m'en doutais, sauf que créer une table exprès pour une variable, je trouve ça un peu lourd. Pour ma part, je vois les bases de données comme un système de sauvegarde de contenu, pas une sauvegarde de la configuration du site.
On ne change pas le code d'un fichier mais le contenu d'une variable.
La je ne peux qu'etre d'accord. C'est d'ailleurs pour ça que je venais poster ce bout de code. N'existe t'il pas un moyen de modifier seulement la variable qui m'interesse dans mon fichier vars.php, plutot que de le ré-ecrire en entier (ça se fait tout de meme facilement grâce au for() ) et de l'enregistrer ?

par Truc » 23 janv. 2008, 14:24

Hmm... la méthode est mauvaise je dirais.
On ne change pas le code d'un fichier mais le contenu d'une variable.

Dans ce sens l'admin ne doit pas avoir à modifier du php mais juste remplir un champ de formulaire pour aller modifier une valeur en BD qui correspond à "points_parrain".

modifier un fichier en PHP

par VaN » 23 janv. 2008, 02:09

Bonsoir,

je souhaite permettre à un utilisateur (un admin) de modifier un fichier php contenant des variables servant pour le site.
J'ai bien réussi à faire ce que je souhaitais, en bidouillant, et me servant un peu de la doc, mais je ne suis pas sûr que mon script soit vraiment optimisé.

En jetant un coup d'oeil, voyez-vous des choses qui vous semblent améliorables ?
// On lit le fichier vars.php
	$varsFile = file('../vars.php');
	$file = '';
	// On scan chaque ligne, si on trouve la variable de points, on modifie sa valeur
	foreach($varsFile as $line) {
		if(substr_count($line, 'points_parrain') == 1) {
			$line = '$points_parrain = '.$_POST['parrain'].';'."\n";
		}
		if(substr_count($line, 'points_filleul') == 1) {
			$line = '$points_filleul = '.$_POST['filleul'].';'."\n";
		}
		// on recrée de fichier ligne par ligne
		$file .= $line;
	}
	// On ouvre le fichier vars.php en effaçant tout son contenu, on remplace son contenu, et on le ferme
	$varsFile = fopen('../vars.php', 'w+');
	$file = fwrite($varsFile, $file);
	fclose($varsFile);