Mine lehekülje lõppu

Prinditav versioon  
Autor: Pealkiri: Formi unikaalsed andmed üheseks tekstifailiks
Kermit
Veterantoru
*****

Avatar

Rate: *****

Registreerunud: 21.7.2009
Asukoht: #filmiveeb
Kasutaja on eemal

Tuju: krooks tuju on...

question.gif postitati 7.2.2011 08:21
Formi unikaalsed andmed üheseks tekstifailiks
Selgitan lühidalt enda ideed. Kuna asi on seotud oluliselt PHP-rakendusel, siis kusagil mul jääb ideesse lünk.
Kui kasutaja läheb aadressile, siis avaneb temale form, kus on väljad(näidis): Nimi; Aasta; Linn. Kinnituskood ka, kuid see pole hetkel primaarse tähtsusega. Igatahes, need kolm välja peaks salvestama automaatselt kuhugi online tekstifaili, lisandina kuupäev ja seerianumber. Umbes miskit säärast:
-------
Sissekanne nr. 24 [15:26 16. jaanuar 2011 - Peeter | 2006 | Rakvere ]
-------

Ja nii see siis peaks salvestuma .txt või muusse tekstifaili.
Ma oskan luua vastavat formi, koos väljadega jne, kuid seda saata vaid meilile. Et põhimõtteliselt contact form tüüpi liides, kuid andmed tuleks avalikule "seinale".
Pakkuge ideid ja viiteid :)
Vaata kasutaja profiili
0
nitramfx
Toru
***



Registreerunud: 17.7.2009
Kasutaja on eemal

Tuju: hungry

[*] postitati 7.2.2011 09:21
Ise olen kasutanud sellist süsteemi - kui seda natuke mudida, peaks asja ära ajama
register.php
Kood:
<form name="form1" method="post" action="signup.php"> Username: <input type="text" name="user"><br>Email: <input type="text" name="mail"><br>Experience: <select name="exp"> <option value="beginner">Beginner</option> <option value="intermediate">Intermediate</option> <option value="advanced">Advanced</option> </select><br> <input type="submit" name="Submit" value="Sign Up"> </form

signup.php
Kood:
<?php $username = $_POST['user']; $email = $_POST['mail']; $experience = $_POST['exp']; $data = "$username | $email | $experience\n"; $fh = fopen("users.txt", "a"); fwrite($fh, $data); fclose($fh); print "User Submitted"; ?>

Ja lisaks tühi users.txt fail kirjutamise õigusega.

[Muudetud: 7.2.2011 nitramfx]
Vaata kasutaja profiili
0
Kermit
Veterantoru
*****

Avatar

Rate: *****

Registreerunud: 21.7.2009
Asukoht: #filmiveeb
Kasutaja on eemal

Tuju: krooks tuju on...

[*] postitati 7.2.2011 09:40
Oh, väga kenasti salvestab väljad tekstifaili :) Lisandite ja mudimisega peaksin toime tulema. Tänud!

--e--
Kui veel saaks nõu, oleks äge :)
Nimelt jQuery on vist vajalik kasutusele võtta, et oleks võimalik seadistada väljadele teatud kriteeriumis(valideerimine).
http://designresourcebox.com/snippet/in-field-labels-jquery-plugin/ - kuidas see form saada salvestama väljasid txt-faili?

[Muudetud: 7.2.2011 Kermit]
Vaata kasutaja profiili
0
KMI
Noor toru
**

Avatar


Registreerunud: 15.7.2009
Kasutaja on eemal

Tuju: Moody

[*] postitati 7.2.2011 10:46
Kui submit nuppu vajutatakse siis saata ajax-ga .php failile andmed mida salvestada vaja on(tekstifaili.).
Näiteks kui formi submititakse siis:

Kood:
$(document).ready(function(){ $(function(){ $("#Form_ID").submit(function(){ dataString = $('#Form_ID').serialize(); //siin võtekase kõik väljad ja valmistatakse saatmiseks ette $.ajax({ type: "POST", url: "salvesta.php", //php fail mis andmetega manipuleerima hakkab data: dataString, //kõik väljad saadetakse .php faili dataType: "json", success: function(data) { alert("Valmis"); } } }); return false; }); }); });

Seega see eelmine .php fail mis tekstaili salvestab tuleb väheke umbes teha
Andmed saad kätte: $_POST['Form_field_ID']

Siin samas saaksid ka väljad kontrollida. Kõige algelisem: võtad kõik väljad ID järgi ja kontrollid nende vastavust.

edit:lisasin tagid

[Muudetud: 7.2.2011 KMI]
Vaata kasutaja profiili Külasta kasutaja kodulehte
0
Kermit
Veterantoru
*****

Avatar

Rate: *****

Registreerunud: 21.7.2009
Asukoht: #filmiveeb
Kasutaja on eemal

Tuju: krooks tuju on...

[*] postitati 7.2.2011 11:02
Okei, ma võtan aluseks selle ajax formi http://www.tutorialswitch.com/web-development/quick-and-simple-ajax...

Püüan siis probleemide tekkimisel siia postitada. Olen põhirõhult kujundaja(html/css on põhilised), mistõttu sügavam süsteem on mul algaja tasemel, kuid oman suurt soovi asjast aru saama hakata :)
Vaata kasutaja profiili
0
andrusny
Noor toru
**

Avatar


Registreerunud: 20.11.2009
Kasutaja on eemal


[*] postitati 7.2.2011 21:11
Soovitan fail salvestamisel alati lukku lükata, muidu juhtub see, et mitu kasutajat salvestab üheaegselt ja ükskord avastad, et sul on tühi fail.
Muide faili users.txt pole vaja teha, fopen("users.txt", "a") tekitab selle ise, kui fail puudub.

$fh = fopen("users.txt", "a");
flock($fh, LOCK_EX);
fwrite($fh, $data);

fclose($fh);

Üldiselt kui failidega tegelda on suht kaval sisu ennem massiivi salvestada ja iga masiiv eraldi reale, tekkib nagu tilluke andmebaas.
Omal palju lihtsam sisu töödelda hiljem.
Siin mul ühest tööst võetud näide:


Kood:
$fk=fopen('teemad.php',"a"); flock($fk, LOCK_EX);// fail lukku $mm=array("pealkiri"=>$Pealkiri, "sisu"=>$sisu); $savN=serialize($mm)."\n"; f[b]****[/b]($fk,$savN); fclose($fk);



Kood:
$fk=fopen('teemad.php',"r"); flock($fk, LOCK_EX);// fail lukku while(!feof($fk)){ $ajutine=unserialize(fgets($fk)); echo $ajutine['pealkiri'].'<br>'.$ajutine['sisu'].'<br><br>'; } fclose($fk);


Edit: foorum keelab f p u t s kirjutada pange see õigele kohale

[Muudetud: 7.2.2011 andrusny]

[Muudetud: 7.2.2011 andrusny]
Vaata kasutaja profiili
0
Kermit
Veterantoru
*****

Avatar

Rate: *****

Registreerunud: 21.7.2009
Asukoht: #filmiveeb
Kasutaja on eemal

Tuju: krooks tuju on...

[*] postitati 10.2.2011 13:01
Asja kujunduslikuma poolega tegelemiseks tuli valida txt faili asemel html. Kuid siin tekkib küsimus, kuidas määrata users.html jõudvate sisestuste grupi kujunduslik pool? Hetkel on nii, et iga sissekanne jookseb järgmisele sappa. Kaob loogiline järg ja tekkib koletu segadus :P

Kood:
<body> <div class="raam"> <form name="form" method="post" action="submit.php"> <li>Filmi nimi: <input type="text" name="nimi"></li> <li>Aasta: <input type="text" name="aasta"></li> <li>IMDb: <input type="text" name="IMDb"></li> <li>Filmi plakat: <input type="text" name="pilt">(jpg)</li> <br /> <input type="submit" name="Submit" value="Lisa film"> </form> </li> </div> </body>


submit.php
Kood:
<meta http-equiv="refresh" content="2; xxx/users.html"> <meta name="keywords" content="automatic redirection"> <?php $filmi_nimi = $_POST['nimi']; $aasta = $_POST['aasta']; $IMDb = $_POST['IMDb']; $Filmi_plakat = $_POST['pilt']; $data = "$filmi_nimi | $aasta | $IMDb | $pilt"; $fh = fopen("users.html", "a"); fwrite($fh, $data); fclose($fh); print "Olete andmed edukalt sisestanud, kohe toimub automaatne edasisuunamine."; ?>
Vaata kasutaja profiili
0
Karlsson
Teenekas toru
****



Registreerunud: 17.7.2009
Kasutaja on eemal


[*] postitati 10.2.2011 13:35
Kahtlane meetod..
Tee üks fail header.html mis lõppeb nt <body><ul>
Siis andmete fail kuhu salvestad <li></li> tagide vahele oma andmed.
ja lõppu footer fail mis algab </ul></body>
Väljastamisel liidad need 3 faili kokku include käsuga.

Õigem oleks need andmed siiski txt failist importida massiivi ja siis väljastada rida rea haaval.
Vaja läheb käske:
file http://php.net/manual/en/function.file.php
explode http://ee.php.net/manual/en/function.explode.php

Kood:
<?php # Siit header include 'header.htm'; #headerfaili aadress // Get a file into an array. In this example we'll go through HTTP to get // the HTML source of a URL. $lines = file('anded.txt'); #andmefaili aadress // Loop through our array, show HTML source as HTML source; and line numbers too. foreach ($lines as $line) { $pieces = explode("|", $line); echo '<li>Nimi:'.$pieces[0].' Email '.$pieces[1].' Kogemus '.$pieces[2].'</li>' ; } #Siit footer include 'footer.htm'; #footerfaili aadress ?>

Kiiruga tehtud asi ja vajab sinu enda kätt et tööle hakkaks.


[Muudetud: 10.2.2011 Karlsson]
Vaata kasutaja profiili
0

  Mine lehekülje algusse

Ainus õige foorum!
XMB Forum Software © 2001-2009 XMB Meeskond