AJAX + textarea

Programovacie jazyky, rady, poradňa...
xolau
Light Expert
Light Expert
Príspevky: 63
Registrovaný: 31 dec 2009, 17:47

AJAX + textarea

Príspevok od používateľa xolau »

Dobrý večer, mám menší problém ktorý mi robí nervy už dlhšie a neviem ho vyriešiť. Skúšal som už všetko možné no nič nepomohlo, tak sa obraciam na Vás, možno niekto vie ako na to.
Takže v skratke, mám v html <textarea id="htmlvalidate"> do ktorej vpíšem dáta z PHP ktoré potom upravujem a následne chcem cez ajax uložiť do txt súboru. Teda vlastne niečo ako simple texteditor. Ajax vyzerá takto:

Kód: Vybrať všetko

<script type="text/javascript">
     function save(){
     var content = $("#htmlvalidate").val();

     $.ajax({
         type: "POST",
         url: "save_links.php?links='.$getLINKS.'",
         data: "changes=" + content,
         success: function(e){
             $("#s").html(e);
         }
     });
}
</script>
Mám input button ktorým volám funkciu save. V php mám tento script na spracovanie údajov ako potrebujem:

Kód: Vybrať všetko

$c = $_POST["changes"];
$fileTOREPLACE = $_GET ['links'];
$openEXISTFILE = fopen($fileTOREPLACE, "w+");
$writeTOFILE = fwrite($openEXISTFILE, $c);
Celkovo všetko funguje tak ako má, lenže mi neuloží všetko. V textarey mám html kódy, teda linky. po editácií mi však neuloží všetko ale len pár riadkov, a záhadne pridá toto na začiatok a0000609" a potom pokračuje časť.

Fakt už neviem kde by bola chyba. Dúfam že som to vysvetlil pre pochopenie. Za každú pomoc ďakujem :)
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: AJAX + textarea

Príspevok od používateľa audiotrack »

to odseknutie časti obsahu bude na 99% spôsobene tým, že tam pcháš nijako neošetrený vstup. Potom ti zoberie len časť po prvý & a zvyšok odignoruje, lebo to bude ako druhá premenná v POST požiadavku. Premenné a ich hodnoty sa v POST totiž oddelujú cez & rovnako ako pre GET (a teda ak tam posielaš odkazy, tak s vysokou pravdepodobnosťou nejaký obsahuje v svojej url nejaké get parametre). Vyriešiť to môžeš buď tak, že ten vstup ošetríš (serialize, escape...) alebo to nepošleš ako string ale json objekt:

Kód: Vybrať všetko

<script type="text/javascript">
     function save(){
     var content = {changes: $("#htmlvalidate").val() };

     $.ajax({
         type: "POST",
         url: "save_links.php?links='.$getLINKS.'",
         data: content,
         success: function(e){
             $("#s").html(e);
         }
     });
}
</script>
ak vyriešiš toto, a bude tú sekvenciu na začiatok súboru dávať stále, tak budeme rozmýšlať čo to je :) Možno nejaká forma BOM, ale google mi nič rozumné nevyhodil
xolau
Light Expert
Light Expert
Príspevky: 63
Registrovaný: 31 dec 2009, 17:47

Re: AJAX + textarea

Príspevok od používateľa xolau »

:shock: Funguje super :) Cez serialize som to skúšal no haprovalo to tiež. Takto 100% Fakt vďaka, pol dňa gúglenia nepomohla a pár minút tu.. :wink: Ďakujem, k+
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: AJAX + textarea

Príspevok od používateľa audiotrack »

inak ten kod dúfam že je iba ukážkový a nemáš to tak naozaj, lebo ak ti prídem na url save_links.php?links=index.php a do changes ti napíšem časť php kodu na zmazanie napríklad celého obsahu adresáru tak skús hádať čo sa stane :) Nikdy by si nemal takto ľahostajne pristupovať k súborom a meniť ich, hlavne ak súbor ktorý ideš meniť aj jeho obsah pochádza od užívatela
xolau
Light Expert
Light Expert
Príspevky: 63
Registrovaný: 31 dec 2009, 17:47

Re: AJAX + textarea

Príspevok od používateľa xolau »

Takto to mám reálne, pretože toto mi bude fungovať len na localhoste (len pre mňa) takže som neošetroval takéto veci lebo som to považoval za bezpredmetné :P
Napísať odpoveď