Autor | Zpráva | ||
---|---|---|---|
Adela Profil |
#1 · Zasláno: 4. 2. 2010, 15:54:20
Ahoj,
omlouvám se za dotaz pro lamy :-) Jak by měl vypadat jednoduchý php script, když si chci ve formuláři změnit data v nějaké proměnné. Např.: config.php <?php $nadpis = "Nějaký nadpis"; $text = "Nějaký text"; ?> form.php <?php include "config.php"; ?> <form action="funkce.php" method="GET"> <input type="text" name="configNadpis" value="<?php echo "$nadpis"; ?>" /> <input type="text" name="configText" value="<?php echo "$text"; ?>" /> <input type="submit" value="Odeslat" /> </form> funkce.php <?php ?> Určitě budete vědět jednoduchou možnost. děkuji Adéla |
||
SwimX Profil |
#2 · Zasláno: 4. 2. 2010, 17:04:10 · Upravil/a: SwimX
Adela:
když nějaká data odešleš do souboru funkce.php přes GET tak v souboru funkce.php máš: $_GET['configNadpis'] a $_GET['configText']. Jaký význam má, zapisovat je do configu? proč nepracuješ dál s těmito proměnnými? ALe kdyby si mermommocí chtěla: funkce.php <?php $file = fopen('config.php','w'); //otevře soubor config.php a smaže všechno uvnitř něj fwrite($file, '<?php $nadpis = "'.$_GET['configNadpis'].'";'); fwrite($file, '$text = "'.$_GET['configText'].'"; ?>'); fclose($file); ?> P.S. <input type="text" name="configNadpis" value="<?php echo "$nadpis"; ?>" /> Ty uvozovky jsou nesmyslné
|
||
panther Profil |
#3 · Zasláno: 4. 2. 2010, 17:05:18
Adela:
pořádně jsem nepochopil, co že to vlastně chceš, ale co třeba: if (isset($_GET['submit'])) { //je-li odesláno $nadpis = $_GET['configNadpis']; $text = $_GET['configText']; } a ve formuláři bude u odesílacího tlačítka atribut „name“ se stejnou hodnotou, jakou testuji v podmínce pomocí isset, tedy: <input type="submit" value="Odeslat" name="submit" /> |
||
Adela Profil |
#4 · Zasláno: 4. 2. 2010, 17:11:54
Smysl? Chci aby si uživatel mohl ty proměnné měnit pode sebe. nechci použít nějaký CMS kanón na komára, když jde jen o pár dat.
//otevře soubor config.php a smaže všechno uvnitř něj No to bych tučně nerada :-) jde něco jako :-): //otevře soubor config.php //najde proměnnou $nadpis a tu změní ????? |
||
Adela Profil |
#5 · Zasláno: 4. 2. 2010, 17:13:10
No jo no: <?php echo $nadpis; ?>
PHP neumím ani zapsat :-) |
||
Adela Profil |
#6 · Zasláno: 4. 2. 2010, 17:23:35
panther:
Nějak se tím nic nevyřešilo v config.php je stále: $nadpis = "Nějaký nadpis"; $text = "Nějaký text"; a ne to co jsem zadala do formuláře :-) |
||
SwimX Profil |
#7 · Zasláno: 4. 2. 2010, 17:25:05 · Upravil/a: SwimX
Adela:
> jde něco jako :-): > > //otevře soubor config.php > //najde proměnnou $nadpis a tu změní Jistě. Ale „Chci aby si uživatel mohl ty proměnné měnit pode sebe.“ a kolik jich bude? Pokud víc, pak by se hodila databáze. Těžko bude mít každý uživatek své dvě proměnné zapsané v souboru. :) Pokud jen jeden, pak ano něco jako: skript upraven do finální podoby, podle následujících příspěvků $f = file_get_contents('config.php', 'r'); //načte obsah souboru $f = preg_replace('~\$nadpis\s*=\s*".*";~', '$nadpis = "'.$_GET['configNadpis'].'";', $f); //nahradí všemezi uvozovkama u nadpisu. $f = preg_replace('~\$text\s*=\s*".*";~', '$text = "'.$_GET['configText'].'";', $f); //nahradí všemezi uvozovkama u nadpisu. $file = fopen('config.php','w'); //otevře soubor config.php a smaže všechno uvnitř něj fwrite($file, $f); //zapíše do něj upravený obsah fclose($file); // zavře panther mění obsah proměnné, nikoli obsah souboru config, myslel to jinak :) |
||
Adela Profil |
#8 · Zasláno: 4. 2. 2010, 17:55:35
SwimX
Děkuju .... chybu to nevypíše žádnou ale v config.php to taky nic nezmění :-) |
||
SwimX Profil |
#9 · Zasláno: 4. 2. 2010, 18:02:20
Adela:
:) moje chyba. Zvýrazněné mají být apostrofy, ne uvozovky $f = preg_replace('~\$nadpis = \"(.*)\";~', '$nadpis = "'.$_GET['configNadpis'].'";', $f); //nahradí všemezi uvozovkama u nadpisu. $f = preg_replace('~\$text = \"(.*)\";~', '$text = "'.$_GET['configText'].'";', $f); //nahradí všemezi uvozovkama u nadpisu. |
||
Adela Profil |
#10 · Zasláno: 4. 2. 2010, 18:10:02
SwimX
Pořád nic :-( |
||
SwimX Profil |
#11 · Zasláno: 4. 2. 2010, 19:30:28
Adela:
není možné :) ukaž část skriptu. Jaká jsou práva na souboru? |
||
Adela Profil |
#12 · Zasláno: 5. 2. 2010, 09:09:08
SwimX
form.php <?php include "config.php"; ?> <form action="funkce.php" method="GET"> <input type="text" name="configNadpis" value="<?php echo "$nadpis"; ?>" /> <input type="text" name="configText" value="<?php echo "$text"; ?>" /> <input type="submit" value="Odeslat" name="submit" /> </form> funkce.php <?php $f = file_get_contents('config.php', 'r'); //načte obsah souboru $f = preg_replace('~\$nadpis = \"(.*)\";~', '$nadpis = \"'.$_GET['configNadpis'].'\";', $f); //nahradí všemezi uvozovkama u nadpisu. $f = preg_replace('~\$text = \"(.*)\";~', '$text = \"'.$_GET['configText'].'\";', $f); //nahradí všemezi uvozovkama u nadpisu. $file = fopen('config.php','w'); //otevře soubor config.php a smaže všechno uvnitř něj fwrite($file, $f); //zapíše do něj upravený obsah fclose($file); // zavře ?> config.php <?php $nadpis = "Nějaký nadpis"; $text = "Nějaký text"; ?> Tohle mi nefunguje. Když mám config.php otevřený v Pspadu, tak ten mi hlásí že byl config.php změněn, ale nic se nezmění. |
||
SwimX Profil |
#13 · Zasláno: 5. 2. 2010, 11:47:00
Adela:
protože já tím regulárem měním $nadpis[mezera]=[mezera]"cokoli"; a ty máš za rovnáse dvě mězery. Je to takové trochu naprd uznávám, ale buď jednu mezeru smaž, nebo uprav regulár na: $f = preg_replace('~\$nadpis\s*=\s*\"(.*)\";~', '$nadpis = \"'.$_GET['configNadpis'].'\";', $f); //nahradí všemezi uvozovkama u nadpisu. $f = preg_replace('~\$text\s*=\s*\"(.*)\";~', '$text = \"'.$_GET['configText'].'\";', $f); //nahradí všemezi uvozovkama u nadpisu. |
||
Adela Profil |
#14 · Zasláno: 5. 2. 2010, 11:57:11
Už o jede díky SwimX
Ještě jsem teda musela změnit: '$nadpis = \"'.$_GET['configNadpis'].'\";' '$text = \"'.$_GET['configText'].'\";' na '$nadpis = "'.$_GET['configNadpis'].'";' '$text = "'.$_GET['configText'].'";' Není to na prd... přesně tohle jsem potřebovala. |
||
Časová prodleva: 15 let
|
0