Autor | Zpráva | ||
---|---|---|---|
Trim Profil |
Ahoj, potřebuji poradit, jak pomocí str_replace dát do textarey ty funkce, zatím se mi to nepovedlo… nepoužívám databázi, takže práci v databázi neudělám, ukládám to do textového souboru…
Samozřejmě pomocí PHP… |
||
lionel messi Profil |
#2 · Zasláno: 15. 5. 2021, 11:08:33
Trim:
Čo prosím znamená „pomocí str_replace dát do textarey ty funkce“? Aké funkcie? Textarea je formulárové pole. Ak potrebuješ, aby sa povedzme pri validácii vypísal do textarea nejaký nahradený obsah, treba si uvedomiť, že obsah textarea sa nepredáva atribútom value, ale takto: <textarea>Obsah</textarea>
Čiže vieš spraviť čosi takéto: <form method="post"> <textrea name="text"> <?= ($formularBylOdeslany && $validacniChyby ? htmlspecialchars(str_replace("chobot", "robot", $_POST["text"])) : "") //ak bol formulár odoslaný a došlo k validačnej chybe, nahradí v obsahu textarey slovo "chobot" slovom "robot" ?> </textarea> </form> $formularBylOdeslany si nahraď svojou boolean premennou, kde si ukladaj, či bol formulár odoslaný. $validacniChyby nech je pole, ktoré bude prázdne, ak je všetko vyplnené ok, inak si tam ukladaj, čo je zle. |
||
Trim Profil |
#3 · Zasláno: 17. 5. 2021, 14:23:48
Počkej, teď nějak nechápu… kde jak mám načíst validační chyby, a kam je potřebuju uložit? Práci s chybami moc nezvládám, pracuju s obyčejným die, ale zas je mi 11…
|
||
anonym_ Profil * |
#4 · Zasláno: 17. 5. 2021, 15:59:35
Trim:
„kde jak mám načíst validační chyby“ Tam, kde je potřebuješ (chceš) vypsat. „kam je potřebuju uložit?“ Třeba do pole. „ale zas je mi 11“ Což není chyba, ale ani omluva. Pročti si nějaký ucelený tutoriál PHP (až už na webu, nebo knihu) a ptej se, až budeš mít zmáknuté základy jazyka. Diskusní fórum není vhodná platforma na tvoje učení se a řešení základů, které jsou popsány všude už milionkrát. |
||
Trim Profil |
Základy umím docela dobře, umím pracovat s databází a dokonce mám i přihlášení. Potřebuju pomoct jen s tím, co je pro mě obtížné nebo čemu nerozumím. ;-) Každopádně zpátky k tématu:
Udělám tedy textový soubor, do kterého se vypíší chyby, které se kdyžtak způsobí. :) Díky moc! Ha, tak jsem to zkusil nasadit, akorát to nefunguje v té tabulce, ale nahradí se to přímo v té textaréně po odeslání textu… |
||
lionel messi Profil |
Trim:
„akorát to nefunguje v té tabulce, ale nahradí se to přímo v té textaréně po odeslání textu…“ Áno, toto robí kód z [#2]. Všimni si, že som v ňom vôbec neriešil nejaké ukladanie. Ale princíp už máš. Nič ti nebráni ten nahradený reťazec nevypisovať, ale uložiť do premennej: $replacedText = str_replace("chobot", "robot", $_POST["text"]); .
Danú premennú si už spracuješ podľa potreby, napríklad uložíš do súboru, databázy, preženieš podmienkou, cyklom... Ak ukladáš do nejakej databázovej tabuľky, vrelo odporúčam pred uložením ešte escapovať (kľúčový výraz na samoštúdium je SQL injection). |
||
Keeehi Profil |
#7 · Zasláno: 18. 5. 2021, 09:36:00
lionel messi:
Používá soubory, takže v tomto případě ho SQL injection zajímat nemusí. Jako s každým uživatelským vstupem který se pak vypisuje do stránky by měl ale řešit XSS. Správně by se to mělo řešit až při výstupu, jelikož ale do toho souboru ukládá kromě dat uživatele i svoje HTML, musí to ošetřit ještě před uložením. |
||
Trim Profil |
#8 · Zasláno: 18. 5. 2021, 16:10:19
SQL injection řeším jen, když se napojuji do databáze, jinak to nemá smysl. :) Právě toho, co chci docílit je, aby člověk (i přes htmlspecialchars) kdyby napsal (:)), tak vy se to převedlo na usměváčka…
|
||
lionel messi Profil |
Trim:
„Právě toho, co chci docílit je, aby člověk (i přes htmlspecialchars) kdyby napsal (:)), tak vy se to převedlo na usměváčka…“ Áno, aj tu potrebuješ nahradenie reťazcov. Dám ti ešte jeden tip na zamyslenie. Keď budeš hotový so základným prevodom smajlíkov, skús systém vylepšiť tak, aby užívateľ mohol cielene napísať aj (:)) bez toho, aby došlo k prevodu na smajlíka. Napríklad ak komentár začína istou sekvenciou znakov, trebárs dvomi vlnovkami ~~ , tak by sa prevod neaplikoval a podobne (používa tuším Skype s inou sekvenciou).
Čosi podobné funguje aj tu na diskusii. Napríklad značka [p!re] a [/pre] vkladajú kód. Ak ich chcem napísať do textu a nechcem, aby ohraničovali kód, musím do textu značky (do toho pre ) vložiť výkričník. Možností je viacero...
|
||
Časová prodleva: 4 dny
|
|||
Trim Profil |
#10 · Zasláno: 23. 5. 2021, 07:33:24
Jojo, už jsem to dokázal, děkuji moc za rady! :) Nakonec jsem str_replace uložil do proměnných a c možnosti upravit příspěvek jsem tu proměnnou obrátil, aby nedošlo k nějakému HTML (třeba (:)) byl vlastně
<img src="smajlik.jpg" alt=":))"> , když jsem to pak obrátil, nadále se zobrazoval jako (:))
|
||
Časová prodleva: 3 roky
|
0