Autor | Zpráva | ||
---|---|---|---|
vodys Profil * |
#1 · Zasláno: 3. 2. 2015, 23:19:28
Dobrý den, válčím s problémem, na který jsem zde našel mnoho řešení, ale jen těžko říct či se dá nějaké použít.
Pokud se zde poflakuje někdo, kdo se vážně nudí a je ochotný, potřebuji vypsat z formuláře data do souboru. mám formulář: <form> <input type="text" name="jmeno-prijmeni" placeholder="Jméno a Přijímení" requied/> <input type="text" name="ico" placeholder="IČO" requied/> <input type="text" name="nazev-salonu" placeholder="Název salonu" requied/> <input type="text" name="adresa-salonu" placeholder="Adresa salonu" requied/> <input type="text" name="email" placeholder="Emailová adresa" requied/> <input type="text" name="mobil" placeholder="Mobilní číslo" requied/> <input type="submit" value="ODESLAT" /> </form> Při odeslání potřebuji, aby se do externího souboru, řekněme "klienti.php" zapisovala veškerá data popořadě řekněme v tabulce. Při každém odeslání aby se přidala další data na další řádek, ale nesmí být duplicitní. K tomu všemu by bylo vhodné vypisovat i IP adresu. Díky všem za pomoc! |
||
Keeehi Profil |
#2 · Zasláno: 3. 2. 2015, 23:43:20
Pokud chceš zajistit neduplicitu, doporučuji použít databázi. Bude to mnohem jednodušší.
Ukládání dat z formuláře není žádná těžká úloha. Pokud budeš mít problém s něčím konkrétním, určitě se tu najde někdo kdo kdo ti pomůže, ale opravdu bych nečekal, ze to někdo bude dělat celé za tebe. |
||
lionel messi Profil |
#3 · Zasláno: 3. 2. 2015, 23:53:31
vodys:
Okrem toho, že súhlasím s Keeehim (predovšetkým ohľadne duplicít), ešte dodám pár rád. 1. Premenné z formulára nájdeš v superglobálnom poli s kľúčom podľa hodnoty atribútu name pre príslušný formulárový prvok, napr. $_GET["jmeno-prijmeni"] . Na začiatku by som však odporúčal overiť, či boli premenné zadané pomocou jednoduchej podmienky: if (isset($_GET["jmeno-prijmeni], $_GET["ico"])) atď.
2. Na zápis do súboru sa bude hodiť predovšetkým funkcia file_put_contents, odporúčam použiť druhý parameter funkcie FILE_APPEND (zaistí pripísanie zadaného obsahu k pôvodnému namiesto prepísania).
3. Odporúčam jednotlivé hodnoty nepísať do tabuľky, ale vstupy pospájať do jedného reťazca a oddeliť napr. pomocou mriežky, vlnovky či zvislítka. Samozrejme by malo platiť nový užívateľ = nový riadok. To zaistí konštanta PHP_EOL .
4. IP adresu zistíš ľahko pomocou $_SERVER["REMOTE_ADDR"] .
|
||
vodys Profil * |
#4 · Zasláno: 4. 2. 2015, 13:51:51
Díky za pomoc, ještě však potřebuji vypsat datum odeslání, jaká je na to proměnná?
|
||
Dan Charousek Profil |
#5 · Zasláno: 4. 2. 2015, 13:53:58
vodys:
http://php.net/manual/en/function.date.php Dle dokumentace si můžeš výsledné datum naformátovat jak chceš. V našich formátech by to mohlo být Date("d. m. Y");
|
||
vodys Profil * |
#6 · Zasláno: 4. 2. 2015, 14:14:06
Jak to ale zakomponovat do zapisovací proměnné?
$savestring = "<td width='150'>" . $jmeno . "</td><td>" . $ico . "</td><td>" . $salon . "</td><td>" . $adresa . "</td><td>" . $email . "</td><td>" . $mobil . "</td><td>" . $_SERVER["REMOTE_ADDR"]. "</td><td><a href='#'><font color='red'>Neaktivní</font></a></td></tr><tr>"; |
||
lionel messi Profil |
#7 · Zasláno: 4. 2. 2015, 14:17:09
vodys:
$datum = date("d. m. Y"); $savestring = "<td width='150'>" . $jmeno . "</td><td>" . $ico . "</td><td>" . $salon . "</td><td>" . $adresa . "</td><td>" . $email . "</td><td>" . $mobil . "</td><td>" . $_SERVER["REMOTE_ADDR"]. "</td><td>" . $datum . "</td><td><a href='#'><font color='red'>Neaktivní</font></a></td></tr><tr>"; Len podotknem, že miešať v kóde české názvy premenných s anglickým nie je najlepší návyk a zvyčajne býva vhodné držať sa jedného jazyka. |
||
vodys Profil * |
#8 · Zasláno: 5. 2. 2015, 22:22:05
Dále ohledně podmínek formuláře, jak zajistit aby určitá pole měla svá pravidla?
¨<form method="post" action="poslat.php"> <input type="text" name="jmeno-prijmeni" placeholder="*Jméno a Přijímení" required> <input type="text" name="ico" maxlength="8" placeholder="*IČO" required> <input type="text" name="nazev-salonu" placeholder="*Název salonu" required> <input type="text" name="adresa-salonu" placeholder="*Adresa salonu" required> <input type="text" name="email" placeholder="*Emailová adresa" required> <input type="text" name="mobil" placeholder="*Mobilní číslo" required> <input type="submit" value="ODESLAT" /> </form> Aby do pole IČO bylo možné vepsat jen 8 čísel, v emailu byl požadován @ a v mobilu 9 čísel? Díky |
||
lionel messi Profil |
#9 · Zasláno: 5. 2. 2015, 22:26:33
vodys:
„Aby do pole IČO bylo možné vepsat jen 8 čísel, v emailu byl požadován @ a v mobilu 9 čísel?“ Najlepšie pomocou tzv. regulárnych výrazov. Na zistenie, či sa zavináč nachádza v reťazci bude ale stačiť aj strpos (nemusíš rozlišovať medzi vrátením false v prípade neúspechu a 0 v prípade zhody na začiatku reťazca, pretože ani jedno určite platný e-mail nie je). Čo sa týka regulárov, bude potrebné použiť funkciu preg_match a samotný regulár by vyzeral napr. pre 8 čísel: ~\d{8}~ Treba si však uvedomiť, že veľa užívateľov oddeľuje napr. telefónne číslo po troch číslach medzerou, píše predvoľbu +420 a podobne. |
||
Časová prodleva: 9 let
|
0