Nur eine Variable in config.inc.php aktualisiren bei absenden des Formulars

Jukkales

Erfahrenes Mitglied
Also ich hab jetzt in einer config.inc.php mehere Variablen und über ein ACP werden die abgerufen. Wenn ich dann auf Absenden klicke soll der nur den wert der variable ändern und nicht mehr

config.inc.php
Code:
[...]
$javascript = 'files/functions.js';
$cssfile = 'files/style.css';
$sendeplan = 'files/Sendezeiten.swf';
[...]

und im ACP wird die über input - text aufgerufen. Wie kann ich das machen?
 
Du könntest dazu vielleicht eine RegExp verwenden.
PHP:
<?
$ersetze = preg_replace("#$varname = '(.*)';#Uis","$varname = '$ersatz';",$Datei);
?>
$varname ist die zu suchende Variable, z.B. sendeplan.
$ersatz ist das mit dem der alte inhalt ersetzt werden soll.

mb fanste
 
Nunja scheint nicht zu gehen.

files.php
PHP:
...

<form action="sites/savefiles.php" method="post" name="files" onSubmit="return check()" onReset="return leer()">
...

<input type="text" size="90" value='<?PHP echo $javascript; ?>' name="javascript" checked>
...

<input type="submit" value="Einstellungen Speichern">&nbsp;<input type="reset">

savefiles.php
PHP:
<?PHP
$Datei = "http://localhost/radio/radio/files/config.inc.php";
$javascriptneu = $HTTP_POST_VARS["javascript"];

$ersetze = preg_replace("#$javascript = '(.*)';#Uis","$javascript = '$javascriptneu';",$Datei);

?>

Das ist jetzt mit Javascript gemacht deswegen --- onSubmit="return check()" ---

Mit der Variable JavaScript getestet und es geht nicht

//EDIT: Oder kann es sein das man $ersetze erst "ausführen muss"? Wenn ja Wie?
 
Dann will er nicht mehr:

PHP:
<?PHP
$datei = "http://localhost/radio/radio/files/config.inc.php";
$javascriptneu = $HTTP_POST_VARS["javascript"];

$ersetze = preg_replace("#$javascript = '(.*)';#Uis","$javascript = '$javascriptneu';",$datei);

if (!$handle = fopen($datei, "r+")) {
         print "Kann die Datei $datei nicht öffnen";
         exit;
}
if (!fputs($handle, $ersetze)) {
       print "Kann in die Datei $datei nicht schreiben";
       exit;
}
print "Fertig, Datei $datei wurde geschrieben";
fclose($handle);

?>

Warning: fopen(http://localhost/radio/radio/files/config.inc.php): failed to open stream: HTTP wrapper does not support writeable connections. in f:\programme\easyphp1-8\www\radio\radio\acp\sites\savefiles.php on line 7
 
Gebe einen Pfad im Dateisystem, also ohne http:// am Anfang ein.... dann wirds gehen.
Wie genau dieser Pfad lauten muss, kann man nur sagen, wenn man weiss, in welchem Pfad sich das ausführende Skript befindet
 
ist die Variable $javascript in dem Script mit javascript belegt, also $javascript="javascript" ?
Wenn nicht probier einfach mal statt #$javascript...#Uis das:#javascript...#Uis
 
Naja ich hab jetzt den Physikalischen Pfad angegeben nur läuft da was falsch. In der Config.inc.php wurde in der ersten zeile das <?PHP mit dem physikalischen pfad ersetzt.

PHP:
$datei = "f:/programme/easyphp1-8/www/radio/radio/files/config.inc.php";
$javascriptneu = $HTTP_POST_VARS["javascriptak"];
$javascriptsuche = "/$javascript = '*'/";

preg_replace($javascriptsuche,"$javascript = '$javascriptneu';",$datei);

...

das geht auch nicht

da läuft irgenwas falsch nur was?
 
Machs mal so:
PHP:
$datei = "f:/programme/easyphp1-8/www/radio/radio/files/config.inc.php"; 
$javascriptneu = $HTTP_POST_VARS["javascript"]; 

preg_replace("#javascript = '(.*)';#Uis","javascript = '$javascriptneu';",$datei); 

//...

Klappts nun?
 
nein, der ersetzt wieder die ersten zeilen durch f:/programme/easyphp1-8/www/radio/radio/files/config.inc.php

PHP:
<?PHP
$datei = "f:/programme/easyphp1-8/www/radio/radio/files/config.inc.php";
$javascriptneu = $HTTP_POST_VARS["javascriptak"];
$ersetze = preg_replace("#javascript = '(.*)';#Uis","javascript = '$javascriptneu';",$datei); 

if (!$handle = fopen($datei, "r+")) {
         print "Kann die Datei $datei nicht öffnen";
         exit;
}
if (!fputs($handle, $ersetze)) {
       print "Kann in die Datei $datei nicht schreiben";
       exit;
}
print "Fertig, Datei $datei wurde geschrieben";
fclose($handle);
?>
Nochmal der Code; was ist daran falsch?
 
Zurück