ZeitenWandel
Hallo.
Und zwar habe ich ja ein Projekt vor. Dieses befasst sich mit dem Thema Website (war ja klar

).
Und zwar gibt es ein Grundpket, das Basic System. Das hat as solche Funktion keines. Es dient als Grundlage für weitere Pakete.
Nun soll man diese Pakete installieren können. Ein Paket wär beispielsweise das News-Script oder Poll oder sowas.
Dann müsste man ja in die Datei rein greifen um dort Änderungen reinzumachen.
Also die Einstellungen. Die sind alle unter einem Menüpunkt drin. Bei News ist das beispielsweise eine Einstellung wie viele News angezeigt werden sollen. Bei Umfragen sind das die IP-Sperren und so.
Demnach müsste der user dann in der datei einstellungen den code suchen und ihn verändern.
Dies will ich verhindern. Kann ich den Code bei der installation in der DB einspeichern lassen und in dann aufrufen lassen? Das ist ja auch php-code der dort erzeugt wird.
Oder gibts da sogar evtl. eine komfortablere Lösung?
Danke für Eure Abtworten *auf Taz schiel*
Taz
Kurz und knapp:
Die Funktion die du brauchst bzw. suchst, heist
eval()
| Zitat: |
| Oder gibts da sogar evtl. eine komfortablere Lösung? |
Also ICH, würde die Einstellungen, in
einer Datei sofort als richtigen PHP-Code Speichern, und nicht erst in einer DB ablegen.
Und diese "config" Datei dann einfach per include in dein Script einfügen
Eine nützlich Funkion währe dafür zb.
var_export()
ZeitenWandel
Ja moment. Das problem ist ja, dass auch die db-speicherung erweitert werden muss.
d.h. ich hab folgenden code (beispielsweise)
| php: |
1:
|
mysql_query("UPDATE daten_bank Set `das` = '".$das."', `das` = '".$das."', `das` = '".$das."', `das` = '".$das."', `das` = '".$das."'") OR die(mysql_error()); |
|
muss ich dann erweitern zu:
| php: |
1:
|
mysql_query("UPDATE daten_bank Set `das` = '".$das."', `das` = '".$das."', `das` = '".$das."', `das` = '".$das."', `das` = '".$das."', `dieskommtnoch` = '".$dazu."'") OR die(mysql_error()); |
|
Darum gehts ja!
//Edit:
Ah, jetzt versteh ich!
Dann verbinde ich zur db, lese sie aus und mach dann
| php: |
1:
2:
|
$dbeintrag = eval($row["dbeintrag"]);
mysql_query("UPDATE daten_bank Set $dbeintrag") OR die(mysql_error()); |
|
oder?
Taz
Du kannst das ganze auch anders machen
zb.so:
| php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
|
/**
* Deine Einstellungen (Prinzip)
*/
$Settings = array(
'EnableNews' => true,
'Option_A' => 542,
'Option_B' => 'xyz');
/**
* Einstellungen in die Datenbank Speichern:
*/
$Sql = "INSERT INTO YourTable (SettNews) VALUES(".serialize($Settings).")";
/**
* Beim Auslesen dann einfach:
*/
$Settings = unserialize($MysqlErgebniss); |
|
ZeitenWandel
ja die settings müssen auch verändert wieder aufrufbar sein.
Ich schau mal, irgendwie wird es schon gehen!
Taz
mhhh... ihrgentwie hast du mich nicht verstanden was ich dir gerade aufgeschrieben habe
Natürlich können die Einstellungen auch verändert aufgerufen werden
Hirn einschalten
Soll ich dir jetzt noch erklären wie mann ein Formular erstellt?
bzw. was hast du daran denn jetzt nicht verstanden?
Ich versuche es nochmal, in der kurz form
| php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
|
<?php
/**
* Einstellungen Speichern
*/
if(isset($_POST['Save']) {
// UPDATE YourTable SET SettNews
$NeuerInhalt = serialize($_POST);
}
/**
* Einstellungen auslesen
*/
$Settings = unserialize($MysqlErgebniss);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Unbenanntes Dokument</title>
</head>
<body>
<form method="post" action="datei.php">
<input name="Option_A" type="text" /><br />
<input name="Option_b" type="text" /><br />
<input name="Save" type="submit" value="Senden" />
</form>
</body>
</html> |
|
ZeitenWandel
Hm mist sorry.
habe das zu Hause nur grad schnell in Kurzform durchgelesen.
Bin gerade bei nem Freund.
Jetzt versteh ich auch wie du das meinst.
Ich teste mal beide Varianten, mal schauen welche angenehmer zu erweitern ist und von der Schnelligkeit her.
Danke nochmal
Taz
Kein Problem
Was die Geschwindigkeit, Performance betrifft, ist das folgende Script das BESTE!
Denn es wird nur die Datei Included, keine Datenbank abfrage, keine Datei öffnen,
sondern nur ein kurzes include
Beim Speichern wird dann mit
var_export() gearbeitet.
(Natürlich dient das hier nur als Beispiel, muss natürlich noch weiter ausgearbeitet werden)
Einstellungen ändern/speichern:
| php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
|
<?php
/**
* Einstellungen Speichern
*/
if(isset($_POST['Save']) {
file_put_contents('config.php', '<?php
$Config = '.var_export($_POST, TRUE).';
?>');
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Unbenanntes Dokument</title>
</head>
<body>
<form method="post" action="datei.php">
<input name="Option_A" type="text" /><br />
<input name="Option_b" type="text" /><br />
<input name="Save" type="submit" value="Senden" />
</form>
</body>
</html> |
|
Einstellungen in dein Script laden:
| php: |
1:
2:
3:
4:
5:
6:
7:
8:
|
/**
* Einstellungen laden
*/
include('config.php');
if($Config['Option_A'] == 'WasWeissIch') {
echo 'WasWeissIch';
} |
|