Autor | Zpráva | ||
---|---|---|---|
Josef Přerovský Profil |
Zdravím, vytvářím jednoduchý instalační script pro web, ale nemůžu přijít, ani se dopátrat na 1 věc...
když bych chtěl, aby se uložila data, které zadám na web, jako db_server, db_name, db_pass ... do souboru, třeba: include/DB.php a tam je: // napojeni na databazi $db_server = "****"; //IP nebo URL k napojeni $db_user = "****"; //Jmeno uzivatele k db $db_pass = '****'; //Heslo k db $db_name = "****"; //Jmeno databaze ve ktere jsou nahrane data Díky za rady, a omlouvám se možná za trochu zmatené téma. Tak nakonec jsem to vyřešil takhle: <?php }; if($krok == "2") { $db_server = null; $db_user = null; $db_pass = null; $db_name = null; $data_server = $_POST["database_server"]; $data_name = $_POST["database_name"]; $data_user = $_POST["database_user"]; $data_pass = $_POST["database_password"]; if($_POST["setDatabase"]) { $file = 'include/DB_01.php'; $data = "<?php $db_server = '$data_server'; $db_user = '$data_user'; $db_pass = '$data_pass'; $db_name = '$data_name'; $connect = mysql_connect($db_server, $db_user, $db_pass); $database = mysql_select_db($db_name); ?>"; file_put_contents($file, $data, FILE_APPEND); header('Location: ?step=3'); } ?> Zkoušel jsem i to nahoře oddělat a nepomohlo. |
||
Alphard_ Profil * |
#2 · Zasláno: 10. 2. 2019, 17:43:54
Nápad dobrý, ale je třeba doladit syntaxi jazyka. Když takto bez escapování použiteje názvy proměnných, budou nahrazeny za jejich obsah (což je null -> prázdný řetězec).
V jednoduchých apostrofech k jejich nahrazení nedojde: if($_POST["setDatabase"]) { $file = 'include/DB_01.php'; $data = '<?php $db_server = \''.$data_server.'\'; $db_user = \''.$data_user.'\'; $db_pass = \''.$data_pass.'\'; $db_name = \''.$data_name.'\'; $connect = mysql_connect($db_server, $db_user, $db_pass); $database = mysql_select_db($db_name); ?>'; file_put_contents($file, $data); // FILE_APPEND nedává moc smysl header('Location: ?step=3'); } PS 1: vstupy nejsou ošetřené a includuje se to do stránky, takto lze zcela ovládnout web. PS 2: Lepší než generovat kód by bylo uložit si konfigurační soubor, např. file_put_contents($file, json_encode(['server' => $data_server, 'user' => '$data_user' /*, ...*/])); Jen pozor, ať není zobrazitelný z venku.
|
||
Časová prodleva: 6 let
|
0