tomstig
OC Addicted
|
angenommen ich hab in vars.php den wert $blabla = 0; und ich möchte von index.php aus diesen wert auf 1 stellen, sprich: $blabla = 1;
wie mach ich das am simpelsten?
|
watchout
Legendundead
|
keine LAME .php config-files verwenden, sondern ne datenbank?
|
semteX
begehrt die rostschaufel
|
du liest die vars.php aus, speicherst alles dann machst string replace und schreibst die file wieder.
tada the end
oder einfach auf config files sch.... und datenbank verwenden
|
moidaschl
Vollzeit-Hackler
|
//index.php
<?PHP
require("vars.php"); # vars.php einbinden
$blabla = 1; # die var $blabla auf eins setzen
?>
nur bleibt dann natürlich blabla nur solang auf eins, bis das script durchlaufen wurde  aber ich denke was anderes solls ja ned sein wenn ned kann ich dir nur fopen und fread ans herz legen
|
BuSHidO
ist süß
|
das script mit vars.php?blabla=1 aufrufen ... oder sessions verwenden
|
tomstig
OC Addicted
|
ich mag die variable in der anderen datei ändern, nicht im script... datenbank mag ich dafür nicht verwenden, hab mirs eh schon überlegt... hab mich schon mit file, preg_replace, fopen, fwrite, fclose gespielt, aber irgendwie wirds nix, weil ich mich nicht mit den depperten suchbegriffen auskenn, die man bei preg_replace braucht... folgender code bis jetzt: index.php <?php
include("vars.php");
echo "Useronline: " . $user_online . "<br />";
echo "Username: " . $user_name . "<br />";
echo "Lieblingszahl: " . $user_favourite_number . "<br />";
echo "<br /><br />";
#$handle = fopen("vars.php","r+");
$array = file("vars.php");
$file = implode("\n", $array);
preg_replace("\$user_online = 0","\$user_online = 1",$file);
echo "<br /><br />";
include("vars.php");
echo "Useronline: " . $user_online . "<br />";
echo "Username: " . $user_name . "<br />";
echo "Lieblingszahl: " . $user_favourite_number . "<br />";
?>
vars.php <?php
$user_online = 0;
$user_name = "max";
$user_favourite_number = 2;
?>
fehlermeldung: Warning: No ending delimiter '$' found in g:\www\cms\wert ändern\index.php on line 12 (habs getestet, es liegt an dem $file..) tia
|
watchout
Legendundead
|
du hast nen schuss: 1:db quote: "datenbank mag ich dafür nicht verwenden, hab mirs eh schon überlegt..." wtf is das problem daran? 2:du verwendest regexp kennst dich net aus du erkennst (vermeintlich) das problem erkennen und änderst nix daran? du kopierst unvollständig aus irgendwelchen beispielen 3:Ich geb dir jetzt nen vorschlag, machs mit ner ini: config.ini user_online = 0
user_name = "max"
user_favourite_number = 2
index.php <?php
function vars_load($s_filename = 'config.ini')
{
// daten aus der ini-datei lesen
return parse_ini_file($s_filename);
}
function vars_save(&$am_vars,$s_filename = 'config.ini')
{
// string generieren
$s_filecontent = '';
foreach($am_vars as $s_varname => $m_vardata)
{
$s_filecontent.= $s_varname.' = "'.$m_vardata.'"'.chr(10);
}
// datei schreiben
$r_fp = fopen($s_filename,'w');
fwrite($r_fp,$s_filecontent);
return fclose($r_fp);
}
function vars_output(&$am_vars)
{
foreach($am_vars as $s_varname => $m_vardata)
{
echo $s_varname.' = "'.$m_vardata.'"<br />';
}
}
// test
// daten in array $a_vars laden
$am_vars = vars_load();
// ausgeben
vars_output($am_vars);
// daten ändern
$am_vars['user_name']='maxi';
// speichern, neu laden & ausgeben
vars_save($am_vars);
$am_vars = vars_load();
vars_output($am_vars);
?>
Bearbeitet von watchout am 06.08.2004, 22:00
|
Jehul
Big d00d
|
hoi!
ich würde mal gern wissen, was der sinn des scriptes ist *G* würd sicher andre möglichkeiten auch geben.
zum script: der fehler liegt im preg_replace so sollts funktionieren: preg_replace('!\$user_online = 0!','\$user_online = 1',$file); oder über string-replace: str_replace('$user_online = 0','$user_online = 1',$file);
mfg.
|
tomstig
OC Addicted
|
na grüß gott... du hast nen schuss: nein, definitiv nicht... 1: db quote: "datenbank mag ich dafür nicht verwenden, hab mirs eh schon überlegt..." wtf is das problem daran?
ich mag das script schreiben, damit, wenn jem. die site zum ersten mal betritt, auf die konfigurationsseite weitergeleitet wird. dort kann er selber bestimmen, wie die db heißen soll, die dann später verwendet wird. natürlich könnte ich eine anlegen, reinschreiben, dass er schon da war, und wenn er eine neue, mit einem eigenen namen macht, die alte löschen. ich könnte auch ganz simpel cookies erstellen, aber die löschen sich auch irgendwann. oder ich könnte irgendeine datei erstellen (z.b. blabla.php) und dann mit file_exists() prüfen, ob so eine schon existiert, wenn nicht, dann war er anscheinend noch nicht auf dieser seite. und deshalb möchte ich es in einer datei speichern, wo ich auch noch andere optionen speichern kann, wenn ich will 2: du verwendest regexp kennst dich net aus du erkennst (vermeintlich) das problem erkennen und änderst nix daran? du kopierst unvollständig aus irgendwelchen beispielen

stimmt, mit regexp kenn ich mich nicht aus, ich hab einfach nur herumexperimentiert. nein, ich hab das problem nicht erkannt, weil ich mich mit regexp nicht auskenne nein, ich hab keine unvollständigen bsps kopiert, ich hab mir das bisher selber zusammengedichtet @3: danke fürs script, ich werds noch ausprobieren, aber ich fahr in 10 min nach melk zum "im namen der rosa" (open-air-theater) und wollte noch schnell antworten
|
watchout
Legendundead
|
ich mag das script schreiben, damit, wenn jem. die site zum ersten mal betritt, auf die konfigurationsseite weitergeleitet wird. dort kann er selber bestimmen, wie die db heißen soll, die dann später verwendet wird. natürlich könnte ich eine anlegen, reinschreiben, dass er schon da war, und wenn er eine neue, mit einem eigenen namen macht, die alte löschen. ich könnte auch ganz simpel cookies erstellen, aber die löschen sich auch irgendwann. oder ich könnte irgendeine datei erstellen (z.b. blabla.php) und dann mit file_exists() prüfen, ob so eine schon existiert, wenn nicht, dann war er anscheinend noch nicht auf dieser seite. und deshalb möchte ich es in einer datei speichern, wo ich auch noch andere optionen speichern kann, wenn ich will und wenn du jetzt einfach das file erst dann erstellst wenn der user eben diese daten eingibt? - klar, bleibt noch die möglichkeit einer späteren änderung, aber is die frage wieviel dann überhaupt noch von deinem script läuft... stimmt, mit regexp kenn ich mich nicht aus, ich hab einfach nur herumexperimentiert. nein, ich hab das problem nicht erkannt, weil ich mich mit regexp nicht auskenne nein, ich hab keine unvollständigen bsps kopiert, ich hab mir das bisher selber zusammengedichtet und das anhand von beispielen, denn anders geht's ja nicht..., is egal - übrigens liegt dein fehler darin (wie von jehul zwar erkannt, aber nicht direkt angesprochen) dass in pcre-regexp der pattern einen delimiter braucht. dafür wird ganz einfach das erste zeichen im string angenommen: bei deinem string nun "$", jetzt hat der parser nach dem 2. dollar gesucht, aber keinen gefunden... dollar wäre übrigens eine eher schlechte wahl... ($ wird vom parser als ende der zeile/string gesehen) am besten man nimmt einzeichen, welches nicht in der pattern vorkommt/vorkommen kann. @3: danke fürs script, ich werds noch ausprobieren, aber ich fahr in 10 min nach melk zum "im namen der rosa" (open-air-theater) und wollte noch schnell antworten  funktionieren tut es - das kann ich dir versichern  ich hatte nur einen fehler beim test, und das war ein tippfehler bei ner variablen
|
mat
AdministratorLegends never die
|
keine LAME .php config-files verwenden, sondern ne datenbank? full ack! mit db arbeiten ist 100x leichter, webserver unabhängiger und _sicherer_ als mit config.php dateien arbeiten. größter vorteil ist die leichte bearbeitung der datensätze (zB alle löschen, oder alle der vorjahres löschen).
|