vkladani textu a ulozeni do souboru

7 příspěvků

Archiv diskusního fóra

Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.

  1. cawte.. naprogramoval si vkladani text a ulozeni do souboru prvne vsecko slo jako po dratkach... jenze pak jsem chtel aby ve jmene souboru bylo natrvalo .html, ale pak tomu najednou zacalo vadit.... ve vlozenem textu </body>, přesneji y, kdyz tam mam </bod> tak to funguje..., jak ste si jistě všimli... ve vloženem textu.. neni body ukončene... je ukončeno jen , nevite nekdo co s tim je..? if ($HTTP_POST_VARS["napsat_text"]!=""){ $a_text = $HTTP_POST_VARS["napsat_text"]; $text = "<head> <meta http-equiv="Content-Language" content="cs"> <title></title> </head> <body> <p> </p> <div class="tc"> $nadpis </div> <div class="tc2"></div> <div class="text_4"> $a_text </div> <div class="konec_clanek"></div> <div class="konec_clanek2"> Vyzkoušel a na web přidal $podpis</div> <p> </p> "; $jmeno_souboru = $jmeno_soubor; $filename = FOpen ($jmeno_souboru, "a"); FClose ($filename); $filename = FOpen ($jmeno_souboru, "r+"); FWrite($filename, $text); FClose ($filename); } ?>
  2. ssry nejak to tady nejde vlozit... jinak na zacatku vlozeneho textu sou tagy html
  3. Tak v prvé řadě, máte v tom zmatek. 1) V textu se nesmí křížit uvozovky. Takže je několik vyriant. Text uvést v apostrofu, ale musí se upravit proměnné, které v apostrofu nefunguji. Ponechat uvozovky, ale v tomto případě uvozovky uvnitř nahradit apostrofem nebo je escapovat \". 2) Jaký smysl má to dvojité fopen()? 3) $HTTP_POST_VARS je na dnešní dobu už staromódní. Stačí $_POST.
  4. $HTTP_POST_VARS uz se leta nepouziva, kdes to vyhrabal? pouzivej $_POST $jmeno_souboru = $jmeno_soubor; je k cemu? pak otevres soubor pro zapis, zavres ho, otevres znovu pro cteni a zapis, zapises, zavres. to je nejaka blbost, nezda se ti? a vubec ti to nemuze fungovat, protoze v retezci uzavrenem v " pouzivas ", cimz se ten retezec ukonci, nasledujici znaky pak hodi parse error: $text = "<head><meta http-equiv=" // tady se ukonci retezec bud retezec zavri do ' nebo v retezci misto " pouzij ' nebo \"
  5. cawte.. super uz mi to jede... $jmeno_souboru = $jmeno_soubor; je k cemu? tj k tomu... abych z prohlizece zadal jmeno souboru... tj zapisovani textu do... a pak nasledne ulozeni do souboru, ten soubor neexistuje.. prohlizec ho vytvori sam... a ten fopen co je tam 2x.. tj proto abych mohl z toho stejneho formulaře vytvořit zase dalsi soubor
  6. ad $jmeno_souboru = $jmeno_soubor;: Také jste si až ted všimli (Tonik), že ty dvě proměnné jsou různé? Aneb BCP: nepojmenovávat proměnné příliš podobně. $filename = FOpen ($jmeno_souboru, "a"); FClose ($filename); Tohle tedy znamená "vytvoř soubor pokud neexistuje", a to je celé k čemu to je? Jsem línej na RTFM ale tipoval bych že na to bude nějakej elegantnější způsob.
  7. Proměnné by se měly pojmenovávat podle významu, jinak se v tom časem ani autor nevyzná. $filename = FOpen ($jmeno_souboru, "a"); je ukázka jednoho takového nesmyslu, protože ani jedna proměnná nevyjadřuje obsah. Místo $jmeno_souboru bych použil (teď netuším, k čemu ten skript je, budu hádat) například $soubor_s_prispevky. Proměnná $filename vůbec neobsahuje jméno souboru, tak by se tak ani neměla jmenovat. Spíše $filehandle, $file nebo $handle, pokud chceme zůstat u anglických slovíček z učebnic. V češtině mě zrovna nic kloudného nenapadá. Dvojí otvírání jednoho souboru bude asi zbytečně zatěžovat server. Na stránce http://cz2.php.net/manual/en/function.fopen.php určitě najdeš něco vhodnějšího. Pokud chceš původní obsah prostě přepsat, použij $filename = FOpen ($jmeno_souboru, "w"); A ještě k původnímu dotazu: Neošetřil jsi uvozovky uvnitř řetězce $text. Musí to vypadat nějak takto: $text = "<head> <meta http-equiv=\"Content-Language\" content=\"cs\"> <title>$titulek</title> ... "; Nezapomeň na $titulek, je to žrádlo pro Googla. Také je dobré ošetřit obsah proměnné $a_text před vložením skriptů. Asi nechceš hacknutý web, že?

← Zpět na všechna témata