Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: Tom Liberec 18. 10. 2014, 10:32:26
-
<?php
$jmeno = htmlspecialchars($_POST["jmeno"]);
$text = htmlspecialchars($_POST["text"]);
file_put_contents("news.txt", date('d.m.Y').date(' H:i:s')." - <b>".$jmeno."</b><br>".$text." <hr>"."\n".file_get_contents("news.txt"));
?>
Co je na tom špatně, že mi to do souboru neuloží obsah proměnné $text ?
( Tohle je ve skutečnosti jeden řádek ........
".$text."
"."\n".file_get_contents("news.txt"));
A je pravděpodobné, že se prohlížeč se zastaví při běhu PHP scriptu a nevrátí se nazpět na stránku formuláře ?
Jde mi o to pochopit kde je chyba, protože pokud to nechápu nemá smysl stahovat nějaký PHP blog hotový zkoušet jej nějak dobastlit do stránek.
-
Předem všem díky.
-
prava jsou nastavena dobre? kdyz soubor news.txt vymazes, vytvori se automaticky?
jinak misto toho cteni zpet bych asi pouzil
file_put_contents("news.txt", $data, FILE_APPEND | LOCK_EX);
-
Díky obojí vyzkouším. Práva mám v celém adresáři na domácím serveru na maximu. Teď musím jet na nákup.
Omlouvám se tedy, že to bude trvat.
-
<?php
Co je na tom špatně, že mi to do souboru neuloží obsah proměnné $text ?
Nemůžeš současně číst a zapisovat do jednoho souboru. Ve chvíli, kdy ho otevřeš pro zápis, je vymazán. Pak už nic nepřečteš.
Pochybuji, že v $text něco máš.
A je pravděpodobné, že se prohlížeč se zastaví při běhu PHP scriptu a nevrátí se nazpět na stránku formuláře ?
Ne. Proč by to měl dělat? Nějak té otázce nerozumím.
[/quote]
Jde mi o to pochopit kde je chyba, protože pokud to nechápu nemá smysl stahovat nějaký PHP blog hotový zkoušet jej nějak dobastlit do stránek.
[/quote]
Hlavně nemá smysl dělat blog tímto způsobem. Proč nepoužiješ nějakou databázi? Na freehostingu si obvykle můžeš vybraz z pěti druhů databází a ty to mastíš do souboru. A ještě blbě.
-
Zapisovat text pres php do souboru, no fuj....
-
Zapisovat text pres php do souboru, no fuj....
Co je na tom špatného? Dělám to běžně. Jenže současně číst a zapisovat do toho stejného souboru, to je fuj.
-
A ako mas riesene sucasne zapisovanie od viacerých ludi do suboru?
-
Co je na tom špatně, že mi to do souboru neuloží obsah proměnné $text ?
Zkus to takhle:
<?php
$jmeno = htmlspecialchars($_POST["jmeno"]);
$text = htmlspecialchars($_POST["text"]);
file_put_contents(
"news.txt",
date('d.m.Y H:i:s') . " - <b>$jmeno</b><br>$text"
);
-
v prve rade na nejaky takovyhle masteni pres soubory uplne zapomen.
-
Blog v souborech? Lulz?! :o ;D
-
Proč ne? Mají tu snad všichni nějakou mentální závislost na databázích nebo co?
-
Uz ti niekto prezradil ze na webe moze pristupovat viac ludi sucasne?
Alebo mas web len cisto pre jedneho cloveka... :)
-
Nekdo tady radi FILE_APPEND parametr pro file_put_contents, to je nicmene trochu neco jineho nez chces, protoze to zapise data na konec souboru, nikoli na zacatek.
Nekdo dalsi tvrdi, ze zapis do souboru ze ktereho ctes je blbost, konkretne tady v tom tvem PHP nikoli, protoze PHP funguje tak ze nejdriv vyhodnoti string ktery se ma zapisovat, vcetne ziskani obsahu souboru, a pak teprv ho zapise, takze v tomhle problem neni. Ovsem problem vznikne pokud by vic lidi chtelo naras do toho souboru takhle psat, muzes prijit o nejake data. Obecne je nutne soubory lockovat, pokud je ma pouzivat vic lidi najednou. I kdyz tohle vypada ze ma byt nejaky tvuj admin, ke kteremu budes pristupovat jen ty, takze bych v tom az zas takovy problem nevidel.
K tvemu problemu, pokud to do souboru ulozi novy zaznam, vcetne jmena, ale neulozi to promennou $text, tzn je jakoby prazdna, pak pravdepodobne prisla z formulare prazdna, nebo pod jinym jmenem. Ujisti se, ze <textarea> ve formulari ma atribut name=text
-
No a to jako proč ne? Je to mnohdy rychlejší a efektivnější...
Je to stejně o logice, mnoho "jako enterprise" firem a tím myslím i ty velké dokážou vytvořit
takový paskvil i nad super silnou databází, že je to stejně jedno.
Nebudu jmenovat, ale určitě je všichni znají takový ti červení, modří, zelení a různobarevní.
To není o souborech, nebo DB to je o myšlení... mnohdy soubor bude mnohem rychlejší a spolehlivější
než DB a naopak.
Zrovna u blogu mi to příjde skoro nejlepší řešení, v jednoduchosti je síla.
Blog v souborech? Lulz?! :o ;D
-
Tak to snad ani nerikej, jednou budes nekde zadat o zamestnani... V cem by mel byt dnes prinos ukladani dat takhle po souborech? Smankote i ty nejlevnejsi hostingy maji aspon sqlite. Rezie zanedbatelna u blogísku
-
Pro nasazení na web plánuji spíše to co nabízí Savana, kde mám VPS. Na kterých je i část webů firmy kde pracuji.
Tohle je spíše o tom zda zvládnu pochopit co se děje, tedy myslím PHP.
-
Použití databáze by bylo určitě lepší. Hlavně pokud budeš projekt rozšiřovat.
Nadruhou stranu...
Pokud se nechceš učit technické věci do houbky a jde ti o zveřejnění informací na webu s minimálním úsilím a náklady, tak jsou soubory dostačující. Jedná-li se o blog typu jeden autor a čtenáři, nemusíš ani řešit současný zápis, protože si to můžeš ohlídat sám.
Na takovéto věci je už ale celkem dost projektů, namátkou se mi vybavuje http://tiddlywiki.com/ (http://tiddlywiki.com/), kde si pohodlně uděláš blog s vyhledáváním, tagy a pod. Celý soubor potom jen u sebe upravíš a nakopíruješ na ftp.
Jednoduchý blog se tedy dá zařídit jednoduše aniž bys musel něco bastlit v PHP, řešit zabezpečení aplikace a další věci.
Kvalitní stránky dělá kvalitními především obsah. Technické řešení je vedlejší.
-
V noci z mobilu jsem zjistil, proč nefunguje to ukládání proměnné TEXT. Kvůli diakritice.
Ovšem ještě tam mám další nějaký problém, neboť jak jsem již napsal to zůstane stát na tom souboru zpracuj.php a nevrátí se to nazpět na stránku html, kterou se to celé spouští.
I pokud použiji soubor zpracuj.php od Kita :
<?php
$jmeno = htmlspecialchars($_POST["jmeno"]);
$text = htmlspecialchars($_POST["text"]);
file_put_contents(
"news.txt",
date('d.m.Y H:i:s') . " - $jmeno
$text"
);
nevrátí se mi to na stránku html, kterou se to spouští ať se jmenuje z.html nebo news.html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<form method="post" action="zpracovat.php" accept-charset="windows-1250">
<table>
<tr>
<td>Jméno:</td>
<td><input type="text" name="jmeno" size="50" maxlength="15"></td>
</tr>
<tr>
<td>Text novinky:</td>
<td><textarea name="text" rows="6" cols="38"></textarea></td>
</tr>
</table>
<input type="submit" value="Uložit novinku">
<input type="reset" value="Reset">
</form>
<a href="news.html">Nahlédnout do Novinek[/url]
</body>
</html>
Není problém v tom, že musím nějak upravit hlavičky? Evidentně je tam něco velmi důležitého, co jsem zcela opomenul.
-
No a to jako proč ne? Je to mnohdy rychlejší a efektivnější...
Tak určitě. Takže doporučuju namastit v MS Přední Stránka nebo ve Wordu a "programováním" kokotin typu ukládání blogu do souborl se nezabývat.
-
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<form method="post" action="zpracovat.php" accept-charset="windows-1250">
Výtečně... ::)
-
proc by se to taky melo vracet samo od sebe? bys to musel presmerovat. do toho ta 1250...
Hele takhle, proste to nech na nekom kdo to umi protoze takhle si namastis do bot. tohle co tady ted posilas neni dost dobre ani na totalniho zacatecnika. Nezvladas ani totalni zaklady HTML tak se radsi nepoustej do nejakych vetsich veci.
Sorry, zni to tvrde, ale usetris si mnoho problemu, protoze hodit nekam na produkci neco v teto kvalite...
-
:o
1. rozhodně svou tvorbu nikomu neukazuj
2. rozhodně ji nedávej na veřejně přistupný server
to, co hledáš je asi redirect.
http://stackoverflow.com/questions/768431/how-to-make-a-redirect-in-php (http://stackoverflow.com/questions/768431/how-to-make-a-redirect-in-php)
-
Díky hodně jste mi pomohli.
Přesměrování jsem vyřešil takto : <meta http-equiv="refresh" content="3;url=news.html">
Češtinu s tím, že jsem tohle prostě smazal : accept-charset="windows-1250
Vím, že se vám to jeví jako, že neskutečně blbnu a soustavně se pokouším o něco na co nemám.
Do značné míry máte i pravdu. Je to dáno tím, že v žádné škole, kterou jsou absolvoval, jsem skriptování nebo programování nebral.
A na samostudium mi jak vidno nestačí inteligence, trpělivost a spousta dalších věcí.
Bastlení webovek, není mojí hlavní náplní práce, ale pouze částí mého zkráceného pracovního poměru.
Určitě by mi pomohl nějaký kurz, ovšem jedna věc je přístupnost budov, další čas, zdraví.
Brát to můžete i tak, že si na mě zase o to lépe vydělají poskytovatelé služeb VPS, mám tři i když tu na Savaně využívám spíše jej jako hosting a webhostingových služeb. Spravuji malý webhosting firmy.
Stařičká Joomla byla dost hrozný podnik, byla poměrně často zavirovaná.
Přímo v kódu na fee šabloně je to jak pro mne tak pro mladého zdravého kolegu daleko lepší.
Sféra firem ve kterých se pohybuji, tedy lze mne zaměstnat, má to specifikum, že jsem v podstatě nejlevnější.
-
Tak pokud tě to baví, nikdo do toho nemá co kecat.
-
Dřív tady v baráku, dva domy propojené částečně podzemním tunelem, veprostřed budova bývalého výrobního družstva invalidů, doma pracovali dva programátoři oba po úrazu na vozíku.
Ovšem oba mají jiné bydlení a to již hodně let, není to úplně blízko, tak tam nemohu chodit co chvíli otravovat.
Navíc mám asi dost pomalé zapalování. Protože ten odkaz, přesměrování nazpět byl zřejmě důvodem proč mi nefungovali ostatní PHP zbastleniny.
Opravdu moc díky.
-
Vím, že se vám to jeví jako, že neskutečně blbnu a soustavně se pokouším o něco na co nemám.
Do značné míry máte i pravdu. Je to dáno tím, že v žádné škole, kterou jsou absolvoval, jsem skriptování nebo programování nebral.
Jestli ti mohu poradit, přejdi na programujte.com. Nejsme tam k začátečníkům tak agresívní jak na těchto pokročilých webech.
-
Do značné míry máte i pravdu. Je to dáno tím, že v žádné škole, kterou jsou absolvoval, jsem skriptování nebo programování nebral.
Určitě by mi pomohl nějaký kurz, ovšem jedna věc je přístupnost budov, další čas, zdraví.
1) tohle se neuci v podstate v zadne skole, tohle je iniciativa kazdeho toho cloveka ktery to dela. In fact se neuci v podstate zadne velke programovani nikde ve skolach, jen obecna teorie (+ max nejaky hello world) - zbytek jsou leta driny a praxe.
2) pristupnost budov je jen tvoje vlastni omluva pred sebou samym. Sorry, zni ti to mozna tvrde, ale je to tak(sam jsem krypl i kdyz ne na voziku tak si myslim, ze si to mohu dovolit). Je rok 2014 a neni duvodu navstevovat nejake priblble budovy. Taky je nenavstevuju. Mnohem zasadnejsi bariera v tehle branzi je (ne)znalost anglictiny.
3) samostudium neznamena bastlit to jen podle sebe timhle stylem. V roce 2014 je naprosto drtiva vetsina vsech vedomosti lidstva dostupna v sekundach odkudkoliv. Existuje asi bambilion tutorialu na cokoliv, spousta toho je na youtube takze je to nekdy lepe konzumovatelne
.
Trochu blby je, ze ty zacatecnicky navody na HTML jsou tak stare, ze vetsina uvadi prave takove historicke omyly jako je cp1250.
-
A jinak ano, treba programujte.com bude pro totalni zacatky vhodnejsi nez root a myslim, ze na vetsinu veci tam najdes uz odpovedi.
-
to je jedno, má v podstatě pravdu. Jsou to moje omluvy, tedy spíše výmluvy sobě samému.
-
Přesměrování jsem vyřešil takto : <meta http-equiv="refresh" content="3;url=news.html">
To není dobrý nápad kvůli historii v prohlížeči. Přesměrování snadno uděláš přímo v PHP:
header('Location: news.html');