Viedumu Vietne ar Sandi

2007-02-23

Formas Tutoriālis

Filed under: Tech — Sandis @ 15:09

Man vakar viens draugs ieprasījās un es teicu ka uzrakstīšu. Visi advancētie ūberhakeri var nelasīt, šī ir ļoti elementāra pamācība kā iztaisīt web formu ar datu saglabāšanu. (Vai arī tieši otrādi lasīt un iemest savus komentārus) Izmantotās valodas – HTML un PHP.

Vispirms mazi teorētiskie pamati. Esmu jau dabūjis jautājumus “nu bet kā saglabājas”, “es gribu, lai viss notiek un neko vairāk” šajā sakarā. HTML ir domāts tikai skatīšanai, tā ir elementu struktūra, kas izveido skatāmo daļu visiem lietotājiem. PHP darbojas servera pusē “apakšā” zem HTML un padara visu netīro saglabāšanas darbu. Nav iespējams saglabāt datus tikai ar HTML.

Forma ir HTML elements. Tā izskatās šādi.
<form method="post" action="http://saits.lv/lapa.php"></form>
Viss kas atrodas formas iekšienē, jeb ir starp <form></form> elementiem, tiks nosūtīts uz nākamo lapu.
Formai ir divi atribūti – method un action. Method ir metode kādā veidā dati tiks nosūtīti. Vienkāršā valodā runājot – eksistē GET un POST metodes. GET metode ir domāta, lai saņemtu datus, šādā veidā tiek pieprasīta ikkatra web lapa. Tāpēc saglabātā informācija tiks nodota ar lapas adreses palīdzību. POST ir domāts, lai nosūtītu datus. Tie nebūs redzami adreses laukā, bet tiks nosūtīti atsevišķā atmiņā.
Action atribūts norāda adresi uz kuru nosūtīs. Nav obligāti norādīt pilnu adresi, ja otra lapa atrodas tajā pašā mapē kur formas fails, var norādīt tikai “lapa.php”. Ja formas un saņēmēja fails ir viens un tas pats, var iztikt ar “#” adreses vietā.

Formas iekšienē var brīvi rakstīt citu HTML kodu, tas neiespaidos datus.
Formā visvienkāršāk datus var nosūtīt ar teksta lauku. Tam tiek rakstīts input elements: <input type="text" name="teksts" value="" />
Tīkla pārlūkā tas attēlo vienas līnijas ievadrindu, kur var ievadīt simbolus. Elementa atribūts type norāda ka tas ir teksta lauks, name norāda kā sauks to teksta lauku, value norāda kāda vērtība sākotnēji būs laukā. Piemēram, var uzrakstīt value=”raksti te”. Name atribūtu ieteicams veidot no viena vārda (var arī diviem_vaardiem) un bez garumzīmēm. Tāpat arī nevar diviem ievadelementiem vienlaicīgi dot vienu un to pašu vārdu, kas nozīmēs, ka pēc kārtas otrais elements vienmēr izdzēsīs pirmo.

Lai nosūtītu datus vajag apstiprināšanas ievadu, jeb pogu “Sūtīt”. Tāpēc ir jātaisa atbilstošs input elements: <input type="submit" name="ok" value="Sūtīt" />
Šoreiz type ir “submit”, kas nozīmē, ka attēlosies poga, kura apzīmēsies ar “ok” un uz tās būs rakstīts “Sūtīt”. Ar šo ievadelementu forma sapratīs, ka tai ir nepieciešams nosūtīt datus.

Kopā HTML kods izskatās šādi un to var saglabāt kā lapa.html datni:
<html>
<head><title>Formas piemērs</title></head>
<body>
<form action="lapa.php" method="post">
<input type="text" name="teksts" value="Raksti!" />
<br/>
<input type="submit" name="ok" value="Sūtīt" />
</form>
</body>
</html>

Formas puse ir iztaisīta, tagad PHP piemērs. Piezīme par bezmaksas lapu novietnēm (hostingiem) – pārbaudiet, vai tie atbalsta PHP! Savādāk, ja tas nav atļauts, tad nekas nesanāks.

PHP lapa saņem informāciju no formas un pirmais, kas ir jādara, ir šī informācija jānolasa. Piemēram, metodes POST parametrus nolasa šādi:
$teksts=$_POST["teksts"];
Ar šo te kodu mainīgajā $teksts tiek ielasīts lauks “teksts” no iepriekšējās formas. (Ar $apstiprinajums=$_POST["ok"]; var nolasīt uz pogas ievadīto tekstu).
Tālākais ko var darīt ir apstrādāt šo informāciju, šajā gadījumā vienkārši izvadot to lapā.
print "Ieguvu tekstu: ".$teksts;

Saglabāšana. Vienkāršākais veids ir saglabāt parastā teksta failā.
$datne = fopen("teksti.txt","a+");
fwrite($datne,$teksts."\r\n");
fclose($datne);

fopen atver kā $datne teksta failu “teksti.txt” veicot ierakstīšanu pašās beigās (“a”), bet ja datne neeksistē, tad “+” norāda, ka tāds fails ir jāiztaisa.
fwrite ieraksta datnē $datne tekstu $teksts un beigās pieliek rindas beigas “\r\n”, lai nākamais ieraksts sāktos nākamās rindas sākumā.
Pēc tam ar fclose tiek aizvērta datne $datne.

Kopā tas viss izskatās šādi:
<?php
$teksts=$_POST["teksts"];
print "Ieguvu tekstu: ".$teksts;

$datne = fopen("teksti.txt","a+");
fwrite($datne,$teksts."\r\n");
fclose($datne);
?>

un to var saglabāt kā lapa.php datni.

Tas tā kā būtu viss ļoti vienkāršam piemēram kā nosūtīt un saglabāt datus ar formas palīdzību.

Advertisements

Atstāt komentāru »

Vēl nav komentāru.

RSS feed for comments on this post. TrackBack URI

Komentēt

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Mainīt )

Twitter picture

You are commenting using your Twitter account. Log Out / Mainīt )

Facebook photo

You are commenting using your Facebook account. Log Out / Mainīt )

Google+ photo

You are commenting using your Google+ account. Log Out / Mainīt )

Connecting to %s

WordPress.com blogs.

%d bloggers like this: