Autor | Zpráva | ||
---|---|---|---|
vodys Profil * |
#1 · Zasláno: 1. 11. 2014, 20:21:59
Dobrý den, poptávám řešení pro vytvoření souboru ve složce /www/user/ a zapsání zadaného údaje do něj při odeslání formuláře.
Dejme tomu, že do formuláře zadám. Jméno: Jan Novák Email: novak@jan.cz Chci aby se při odeslání vytvořil soubor /www/user/jan.novak.php a v něm bylo zapsané: novak@jan.cz Myslím, že na to existuje nějaká jednoduchá funkce pomocí php nebo js, ale nedopátral jsem se jí. Prosím o pomoc. Díky |
||
lionel messi Profil |
vodys:
„Myslím, že na to existuje nějaká jednoduchá funkce pomocí php nebo js, ale nedopátral jsem se jí.“ <form method="post"> Meno: <input type="text" name="meno"> E-mail: <input type="text" name="mail"> </form> <?php if (isset($_POST["meno"], $_POST["mail"])) { $meno = $_POST["meno"]; $mail = $_POST["mail"]; //priradenie do lokálnych premenných $meno = strtolower(str_replace(" ", "-", $meno)); //prevedie na malé písmená, nahradí medzeru za spojovník, bodku by som nepoužil, ale je to jedno //ešte by to v reáli chcelo odstrániť z mena diakritiku, napr. pomocou strtr a zvalidovať e-mailovú adresu, oboje pre prehľadnosť vynechávam //rovnako by som sa ešte vysporiadal so znakmi, kt. nemôžu byť v názve súboru, ale užívateľ ich môže nahádzať do inputu napr: \/: atď., tiež vynechávam, keby bolo treba, doplním if (!file_exists("/www/user/". $meno .".php") //ak súbor neexistuje, vytovríme ho { $subor = fopen("/www/user/". $meno .".php", "w"); //vytvoríme súbor fwrite($subor, htmlspecialchars($mail)); //zapíšeme do súboru mail fclose($subor); echo "Registrácia mailu prebehla v poriadku."; } else { echo "Zadané meno je už používané!"; } } else { echo "Vyplňte prosím všetky polia"; } ?> |
||
bestik_63 Profil |
#3 · Zasláno: 1. 11. 2014, 20:41:10
Podle tvého dotazu usuzuji, že o programování nemáš ani páru, asi by bylo lepší si něco nastudovat. A s hledáním je to snad ještě horší.
tohle je první odkaz, který jsem našel na google : http://www.tvorba-webu.cz/php/prace_se_soubory.php klíčová slova byli : vytvoření souboru php Takže ne jen že o tom nemáš ani páru, ale dokonce ani nejsi ochotný si něco vyhledat, však on ti někdo poradí že? |
||
vodys Profil * |
#4 · Zasláno: 1. 11. 2014, 20:48:36
bestik_63:
Slušně jsem se zeptal. Ano, nemám o tom ani páru, zvládám html a css. Php je mi cizí, potřebuji však občas nějaké funkce, které se svými schopnostmi nedovedu vytvořit. Vyhledání tohoto problému jsem věnoval skoro 2 hodiny a stránku, kterou jsi mi poslal jsem už pročítal, problém je, že když neznám základy, nedokážu sesmolit nic. Omlouvám se, že jsem zasáhl tvé povýšené sebevědomí a nějakým způsobem tě urazil. lionel messi: Moc děkuju! Opravdu jsi mi pomohl. :) |
||
Kubo2 Profil |
bestik_63:
„však on ti někdo poradí že?“ Niekto vodysovi možno rád poradí. lionel messi: V tvojom kóde by som zmenil 1\ použitie literálu namiesto konštantnej šablóny, <?php const PATH_PATTERN = '/www/user/%s.txt'; // ... if( file_exists( sprintf(PATH_PATTERN, $meno) ) ) { // do something // fopen() on the same principle, for example } 2\ escapovanie na vstupe namiesto escapovania na výstupe (v závislosti na kontexte). Predstav si, že by ti niekto zadal emailovú adresu v tvare Kubo2 <admin@localhost> , ty by si si ho uložil escapovaný a priamo by si ho chcel použiť na odoslanie emailu (iným skriptom),
<?php // ... fwrite($subor, $mail); // zapíšeme do súboru mail presenter.php <?php echo( htmlspecialchars( file_get_contents( sprintf("/www/user/%s.txt", $_GET['meno']) ) ) ); 3\ pre overenie existencie súboru (regulárneho súboru!) použitie file_exists() namiesto is_file() .
<?php // môže to byť existujúci súbor alebo adresár var_dump(file_exists($f)); // môže to byť iba existujúci regulárny súbor (= regular file) var_dump(is_file($f)); K tomu poslednému doplním odkaz. vodys: „Myslím, že na to existuje nějaká jednoduchá funkce pomocí php nebo js, ale nedopátral jsem se jí.“ V JavaScripte nie, skript (alebo obecne program) manipulujúci so súborovým systémom tvojho servera musí bežať (aspoň virtuálne) na tomto serveri. Mimochodom, mohol si o tom napísať aj sem. :-) |
||
lionel messi Profil |
#6 · Zasláno: 2. 11. 2014, 20:50:23
Kubo2:
Vďaka za doplnenie cenných pripomienok, opäť som sa niečo nové dozvedel, zaujal ma hlavne bod 3. Čo si však ani jeden z nás nevšimol, je, že môj kód obsahuje na r. 13 syntaktickú chybu (chýbajúca uzatváracia zátvorka), už sme to s vodysom vyriešili. |
||
Kubo2 Profil |
#7 · Zasláno: 2. 11. 2014, 21:07:47
lionel messi:
„Čo si však ani jeden z nás nevšimol, je, že môj kód obsahuje na r. 13 syntaktickú chybu (chýbajúca uzatváracia zátvorka), už sme to s vodysom vyriešili.“ Ale všimol. :-) Preto som na to vlákno odkázal v poslednej vete, schválne som to tu nespomenul, a koniec koncov kvôli tomu vláknu som napísal tento príspevok. :-) |
||
Časová prodleva: 9 let
|
0