PHP.EE FOORUM   
Nimi:   Pass:   Mäleta mind! 
   Teemad | php.ee esilehele | registreeri | Märgi kõik teemad loetuks | #php.ee Skype vestlus | RSS
UUS TEEMA  OTSI  Lehekülgi: 1
online texti muutmine ja salvestamine
Postitaja: Trollix 2018-01-13 13:21:53
Tere
Mure: tahaks muuta texti läbi interneti (tavaline tekst)
ja siis et see ka salvestataks

aga ei tea kuhu, kuidas salvestada.
see kood kasutab localStorage, (kuna olen täiesti võhik sellel alal) siis oletan see localStorage kasutab brauseri mälun nagu küpsised vms?


<!DOCTYPE html>
<html>
<head>
<title>Raamatud</title>
<style type="text/css">
#edit {background-color:#ffffff;}
</style>
<script type="text/javascript">
function saveEdits() {

//get the editable element
var editElem = document.getElementById("edit");

//get the edited element content
var userVersion = editElem.innerHTML;

//save the content to local storage
localStorage.userEdits = userVersion;

//write a confirmation to the user
document.getElementById("update").innerHTML="Salvestatud!";

}
function checkEdits() {

//find out if the user has previously saved edits
if(localStorage.userEdits!=null)
document.getElementById("edit").innerHTML=localStorage.userEdits;
}
</script>
</head>
<body onload="checkEdits()">


<div id="edit" contenteditable="true">
Here is the element's original content
</div>

<input type="button" value="Salvesta" onclick="saveEdits()"/>

<div id="update"> </div>

</body>
</html>
RE: online texti muutmine ja salvestamine
Postitaja: Trollix 2018-01-13 13:26:40
http://trollix.byethost7.com/
Kui seal texti muuta siis ta küll salvestab, aga kui lähen teise brauseriga või ntx moblaga sinna siis on kõik alg kujul tagasi.

sooviks abi, kuidas teha salvestamine nii, eta ka muudaks jäädavalt texti?

failile on antud luba 777
RE: online texti muutmine ja salvestamine
Postitaja: tulnukas_teiselt_planeedilt 2018-01-14 02:07:47

Vanamoodsete klient-server-veebirakenduste
üldskeem on, et serveril jooksev tarkvara,
sõltumata tarkvarast, saadab kliendi poolelel
ehk veebilehitseja poolele faile, millest
veebilehitseja poolt kuvatavat infot sisaldab
klassikalisel juhul HTML-fail, näiteks index.html,
CSS-fail, mis sisaldab HTML-faili "tekti värvi"
ja muud formmaatimis-infot, ning JavaScript'i
fail, mis sisaldab veebilehitsejas jooksutatavat
koodi. CSS ning JavaScript'i teksti, koodi, pole
ingtingimata vaja eraldi failidena saata,
sest neid võib lisada ka HTML-faili sisse.


Vanamoodsete klient-server-veebirakenduste
korral salvestatakse kasutajate poolt
veebilehitsejasse sisestatud andmed
tsentraalselt, veebisereri poolel.
Selleks saadetakse andmed, vanamoodsel juhul,
serverisse veebiserveri tarkvarast
täiesti sõltumatul viisil, HTML-blankettide
abil, mille kasutamiseks ei ole
JavaScript'i üldse tarvis.

https://www.w3schools.com/html/html_forms.asp

Ajaloolistel põhjustel tehakse vahet kahel
HTML blanketi andmete serverisse saatmise tüübil:
GET ja POST. Kui detailidesse laskuda, siis
neil kahel on erinevus küll, aga praktikas
kasutatakse vaid POST tüüpi andmete saatmise
tüüpi, sest sellel pole saadetavatele andmetele
seatud nii kitsast mahupiirangut kui see on GET-tüüpi
saatmisviisil. Niiöelda "AJAX",
tänapäeval ka "single page web applications",
seisneb selles, et HTML lehte andmete serverisse
saatmisel ei vahetata vaid andmed saadetakse
serverisse JavaScript'i koodi poolt, taustatööna.

https://www.w3schools.com/xml/xml_http.asp

Serveri poole peal pole eriti vahet, kas andmed
laekusid AJAX'i stiilis või JavaScript'i vaba
HTML blanketti kasutades.

http://php.net/manual/en/reserved.variables.post.php

Mida serveri poolel saabunud andmetega tehakse, on
juba puhtalt veebirakenduse serveri poole kirjutaja
oma suva. Üks võimalustest on andmed serveri kõvakettale
salvestada, näiteks tekstifailina. Teine variant
on salvestada andmed serveri poolel andmebaasi, kuid
andmebaaside kasutamine eeldab SQL'i teemade tundmist,
mistõttuma soovitan Teil esialgu, mil Teil veel nii
primitiivsete küsimustega probleeme on, andmebaaside
kasutamist vältida või kui, siis kasutage esialgu
vaid SQLite andmebaasi, sest SQLite andmebaasimootor
on täiel määral praktiliselt kõigi rakendusprogrammide
loomiseks mõeldud programmeerimiskeelte standard-teegi osa.
PHP kaasa arvatud.

http://php.net/manual/en/class.sqlite3.php

Põhjus, miks tavaliste tekstifailide kasutamisel võib
serveril probleeme tekkida, sesineb olukorras, kus
mitu veebilehitsejat korraga pöörduvad serveri poole
ja siis tekib olukord, kus ühe kasutaja saadetud
andmed lähevad kaotsi. Sündmuste käik:

samm_1)
serveri_protsess_1_avab_faili

samm_2)
serveri_protsess_2_avab_faili

samm_3)
serveri_protsess_1_kirjutab_kõvakettal_faili_uue_versiooniga_üle

samm_4)
serveri_protsess_2_kirjutab_kõvakettal_faili_uue_versiooniga_üle

samm_4 ajal kirjutatakse samm_3 ajal faili salvestatud
andmed üle ja serveri protssess nr 1 poolt
veebilehitsejalt saadud andmed lähevad kaotsi.
Andmebaasid, SQLite kaasa arvatud, kasutavad
lukke, et sellist andmete kaotsi-minekut vältida.
SQLite andmed salvestatakse küll faili, aga
SQLite kasutab operatsioonisüsteemi abi selleks,
et erinevate operatsioonisüsteemi protsesside
vahel oma tegevust koordineerida. Lukustamisega
toimub asi nii:

samm_1)
serveri_protsess_1_lukustab_faili_kõigi_teiste_protsesside_eest

samm_2)
serveri_protsess_2_ootab_kuni_fail_lahti_lukustatakse

samm_3)
serveri_protsess_1_avab_faili

samm_4)
serveri_protsess_1_kirjutab_kõvakettal_faili_uue_versiooniga_üle

samm_5)
serveri_protsess_1_vabastab_faili_lukustusest

samm_6)
serveri_protsess_2_lukustab_faili_kõigi_teiste_protsesside_eest

samm_7)
serveri_protsess_2_avab_faili

samm_8)
serveri_protsess_2_kirjutab_kõvakettal_faili_uue_versiooniga_üle

samm_9)
serveri_protsess_2_vabastab_faili_lukustusest


Praktikas on muidugi operatsioonisüsteemi protsesse
rohkem kui kaks, aga antud illustratsiooni kirjeldamiseks
piisab kahest protsessist.

Algajatel soovitan SQLite andmebaasi tabelid ja fail
spetsiaalse programmiga ennem valmis teha. Sedasi
saate PHP-koodi kirjutada vaid selle koodi, mis
suhtleb andmebaasiga, kus tabelid juba loodud on.

http://sqlitebrowser.org/

Ausalt öeldes, minu soovitus Teile on, et
kui Te ei saa hetkel veel aru isegi sellest,
et on olemas serveri pool ja veebilehitseja pool,
siis andmete veebilehitsejast serverisse saatmise
kood on Teile ilmselgelt liiga keeruline ülesanne.
Kui kavatsete HTML+JavaScript+CSS+PHP arendusega
tõsisemalt tegelda, siis soovitan Teil hankida
endale ka PHPstorm'i litsens:

https://www.jetbrains.com/phpstorm/

Tegu on IDE-ga (Integrated Development Environment),
mis annab vihjeid, kui midagi väga valesti läheb.
Tasuta variantidena soovitan Eclipse't, kuid
kumbki neist on tõsine profitööriist, mistõttu
alguses võib kuluga umbes 3 päeva, et neid üldse
kasutama õppida. Eriti soovitan kasutada nende
IDE-de koodi-formaatimisfunktsionaalsust: Teie
kirjutatud kood(HTML, JavaScript, CSS, PHP)
trepitakse automaatselt, nupuvajutuse peale, ära.

Ääri-veeri võite katsetada ka

https://www.activestate.com/komodo-edit


JetBrains'i toodanguga palun ärge otse oma serverisse
minge, sest see on Putin'i mõjusfääris, Peterburis,
Venemaal, loodav tarkvara. Väikeprojektidega
onlainis-katsetamisteks võite kasutada

https://www.planet.ee/

majutust, mis maksab 2018 seisuba umbes 15€/aasta.


Loodetavasti sain natukene abiks olla.
Tänan lugemast.

RE: online texti muutmine ja salvestamine
Postitaja: tulnukas_teiselt_planeedilt 2018-01-14 02:16:07

Unustasin mainida, et modernseim
tavaveeb ehk tsensuuriga veeb kasutab

https://webrtc.org/

ja sellel baseeruvat P2P ("Peer to Peer" ehk
kasutajalt-kasutajale) failijagamissüsteemi

https://webtorrent.io/

Eriti kõrge pilotaa¾, tarkvara-arendajate eliit,
kasutab PirateBay asutajate loodud ZeroNet'i:

https://zeronet.io/

ZeroNet ei serveeri veebilehti enam tsentraalsest
serverist, vaid igal tava-kasutajal on oma
isiklikus lokaalvõrgus oma enda server ning
"surfimise" käigus tõmmatakse veebileht koos
kõigi failidega lokaalvõrgu serverisse ning
serverritakse lokaalvõrgu serverist veebilehitsejasse.
ZeroNet'i foorumid ja wikid toimivad viisil, et
lokaalvõrgu serveris on täiskoopia failist,
mida ZeroNet'i kasutajad ühiselt muudavad ning
siis aeg-ajalt, näiteks kord 10 sekundi jooksul,
uuendatakse seda faili. Ühendused eri kasutajate
vahel toimivad otse, kasutajalt-kasutajale, P2P.
RE: online texti muutmine ja salvestamine
Postitaja: tulnukas_teiselt_planeedilt 2018-01-14 02:18:27
ZeroNet'i analoog jututubade maailmas on

https://matrix.org/

Sarnaselt toimib

https://tox.chat/
RE: online texti muutmine ja salvestamine
Postitaja: Trollix 2018-01-16 20:35:05
Tänud selle info eest.
paar päeva olen nüüd seedinud katsetanud sealseid asju.
sain asja php'ga nii kaugele, et php fail avab serveris oleva 123.txt[/] faili millel on lugemis ja ülekirjutamis luba jne.. (777)
leidsin õpetuse kuidas teha ka nn to do listi:
https://www.w3schools.com/howto/howto_js_todolist.asp, mis sobiks mulle hästi
aga ikkagi ei oska ma teha koodi kuidas ta selle listi salvestaks kuhugi.

ideaalis tahan teha nn nimekirja, ntx loetud raamatud:
*avan interneti lehekülje
*kirjutan sinna autori ja raamatu nime
*Vajutan nuppu salvesta, text salvestatakse
*järgmine kord avades on eelnev text seal olemas ja vajadusel lisan juurde.

mure ongi selles, et kuidas teha kood: kuhu text salvestatakse
RE: online texti muutmine ja salvestamine
Postitaja: qwer 2018-01-16 22:09:39
ehk oleks mõtet kasutada siiski andmebaasi võimalusi: teed php koodi + sql päring, mis otsib sinu varem salvestatud asju ja kui soovid uut lisada, siis lisab andmebaasi.

muidugi saab teha nii, et salvestad ka faili, kuid milleks...
RE: online texti muutmine ja salvestamine
Postitaja: blaa 2018-01-17 09:37:06
Head tüübid. Inimesel ilmselgelt on vähe kokkupuudet asjaga ja te soovitate igasugu asju, mis talle alguses nagunii üle jõu käivad.

Siin on miinimum töötav asi, millest saad edasi arendada.

PHP kood:
 
<?php

$failinimi 
'siia_salvestab_andmed.txt';

if (!
file_exists($failinimi)) //kas fail on olemas
{
    
file_put_contents($failinimi''); //tekitame uue faili
}
if (
$_POST['tekst'])
{
    
file_put_contents($failinimi$_POST['tekst']); //salvestame teksti
    
die;
}
?>
<!DOCTYPE html>
<html>
<head>
<title></title>
<style type="text/css">
#edit {background-color:#ddd;}
</style>
<script type="text/javascript">
function saveEdits() {
    var httpRequest = new XMLHttpRequest();
    var content = 'tekst='+encodeURIComponent(document.getElementById("edit").innerHTML);
    httpRequest.open('POST', '?', true);
    httpRequest.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
    httpRequest.send(content);

    document.getElementById("update").innerHTML="Salvestatud!";
}
</script>
</head>
<body>

<div id="edit" contenteditable="true"><?php echo (file_get_contents($failinimi));?></div>

<input type="button" value="Salvesta" onclick="saveEdits()"/>

<div id="update"> </div>

</body>
</html>
RE: online texti muutmine ja salvestamine
Postitaja: Trollix 2018-01-17 22:01:09
Tere.
Suur aitäh. Ehk vb oleks pidanud tõesti alustame, et teemast eriti ei jaga.
Aga iagasugu uusi asju sai õpitud proovitud.

Asi toimib nii nagu mulle vaja
RE: online texti muutmine ja salvestamine
Postitaja: ise php 2018-01-18 12:42:06
Siin just kirjutati, mis juhtub, kui mitu kasutajat korraga faili kirjutab. Tegin kunagi õppe eesmärgil text foorumi ja panen siia kirjutamis koodi.


PHP kood:
 
// **********   teemade salvestamine ***********************
            
if(!is_file('teemad.php')){fopen('teemad.php',"a");}
                            
$fk=fopen('teemad.php',"a");flock($fkLOCK_EX);// fail lukku
                                        
$mm=array("pealkiri"=>$Pealkiri"sisu"=>array("autor"=>array($autor),"sisu2"=>array($sisuT)));        
                                                    
$savN=serialize($mm)."n";
                                                                    
fputs($fk,$savN);
                                                                                        
fclose($fk);
                                                                                                    
header('Location: '.$_SERVER['PHP_SELF']);
                                                                                                                                                                                            }
//******************************************************************  **************************************   ************************************
RE: online texti muutmine ja salvestamine
Postitaja: blaa 2018-01-19 21:14:24
TSITEERITUD:
Tegin kunagi õppe eesmärgil text foorumi ja panen siia kirjutamis koodi.

Ära pane sellist jama algajatele. Hakkavadki kasutama.


Piisab sellest

PHP kood:
 
file_put_contents
($failinimi'tekst..'LOCK_EX);
RE: online texti muutmine ja salvestamine
Postitaja: tulnukas_teiselt_planeedilt 2018-01-28 06:09:17
TSITEERITUD:

Ära pane sellist jama algajatele. Hakkavadki kasutama.

Piisab sellest

PHP kood:
 
file_put_contents
($failinimi'tekst..'LOCK_EX);



Sellega ma tõesti nõustun, et see oht, et
algajad hakkavad jama tuimalt kopeerima-asetama, ilma, et
analüüsiks, mis juhtub, tõesti eksisteerib.
Aga, teisest küljest, siin foorumilõimes
toodud protsesside võidujooksu näite autorina
saan lisada, et kui failide asemel kasutada
PHP standardteegi osaks olevat SQLite teeki,
siis on võidujooksu küsimus lahendatud, sest
SQLite teegi tuumaks olev SQLite realisatsioon
suhtleb otse operatsioonisüsteemiga ja kasutab
lukke, ilma, et PHP tasemel sellele üldse
mõelda oleks tarvis.

http://php.net/manual/en/book.sqlite3.php

http://www.sqlite.org/docs.html

Lihtsuse huvides võib SQLite andmebaasifaili
ennem GUI-tööriistaga valmis teha ning siis
PHP koodis ei ole vaja andmebaasitabelite
loomise koodi enam kirjutada, vaid piisab,
kui toimub SQLite PHP standardteegi API
kaudu faili avamine, sinna kirjutamine,
sealt lugemine ja siis faili sulgemine.

http://sqlitebrowser.org/

SQLite on tegelikult nii võimas lahendus,
et see suudab andmeid hoida sõna otseses
mõttes gigabaitide viisi. Konkreetne näide
on, et SQLite peale on üles ehitatud
lausa koodihoidlasüsteem nimega Fossil

https://www.fossil-scm.org/

Ma algajatele Fossil'it ei soovita, kasutagu
parem Git'i ja mitte GUI abil, vaid konsoolilt,
et tegelikust Git'i lõppkasutaja vaatest aru saada.

https://try.github.io/

Kes vähegi progremisega tegeleb, peaks ikkagi
õppima mingit versioonihaldusvahendit kasutama.
Teine asi, mida kõik kindlasti ära peavad
õppima, on 10-sõrme-süsteem. Järgnev viide
kasutab küll vanamoodset Adobe Flash'i, aga
see on didaktiliselt üks parimatest, mis internetiavarustes
tasuta kättesaadav on:

http://www.doorwayonline.org.uk/typing/texttype2/

10-sõrme süsteem on praktikas ära õpitav 2 nädalaga,
tehes 2h päevas harjutusi. Tean seda isiklikust praktikast.



Leheküljed: 1

©2002-2013 Martin Rebane & PHP.ee kaasautorid
  0.4489569664