{"id":334,"date":"2023-03-29T11:06:57","date_gmt":"2023-03-29T11:06:57","guid":{"rendered":"https:\/\/tarkvara.thkit.ee\/veeb\/?page_id=334"},"modified":"2023-04-04T18:51:59","modified_gmt":"2023-04-04T18:51:59","slug":"ulesanded-4","status":"publish","type":"page","link":"https:\/\/tarkvara.thkit.ee\/veeb\/ulesanded-4\/","title":{"rendered":"Veebilehtede loomine\u00a0"},"content":{"rendered":"\n<p>P\u00e4rast selliste eelt\u00f6\u00f6de l\u00e4bi viimist on valmivast rakendusest juba m\u00f5nev\u00f5rra l\u00e4hem ettekujutus olemas ning v\u00f5ib loota, et kokkupandav rakendus ka kasutatav on. Ehkki juhtub k\u00fcllalt sageli, et p\u00e4rast esialgse versiooni t\u00f6\u00f6le panekut tuleb ta veel mitme koha pealt \u00fcmber teha enne, kui kasutajad tulemusega rahul on. Kasutajalugude, skeemide ja esialgsete SQL-lausete kohendamine on aga algul tunduvalt lihtsam kui valmiskujundusega lahenduse pidev \u00fcmberm\u00e4ngimine. Samuti eriti suuremate lahenduste puhul ei pruugi kogu kavand sugugi kohe korraga p\u00e4he mahtuda. \u00dcksikuid vaateid ja l\u00f5ike aga julgeb ikka eraldi katsetada ning nende pealt j\u00f5uab vaikselt ka suurema lahenduse kokku panna.&nbsp;&nbsp;<\/p>\n\n\n\n<p><strong>konf.php&nbsp;<\/strong><\/p>\n\n\n\n<p>Suurema lahenduse puhul on seaded hea panna eraldi konfiguratsioonifaili. Praegusel juhul tulevad siia andmebaasi\u00fchenduse andmed. Kuid hea on olemasolu korral ka k\u00f5iksugu muud lisandused \u00fchte koondada. Nagu ka l\u00f5pus kommentaar \u00fctleb, siis juhul, kui PHP-fail midagi otse ekraanile v\u00e4ljastama ei pea, siis on lubatud ja soovitatav PHP l\u00f5pum\u00e4rk ?&gt; \u00e4ra j\u00e4tta.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\n&lt;?php \n $baasiaadress=&quot;localhost&quot;; \n $baasikasutaja=&quot;juku&quot;; \n $baasiparool=&quot;kala&quot;; \n $baasinimi=&quot;jukubaas&quot;; \n $yhendus=new mysqli($baasiaadress, $baasikasutaja, $baasiparool, $baasinimi);  \/\/PHP l\u00f5pum\u00e4rki pole vaja, et kogemata midagi v\u00e4lja ei tr\u00fckitaks \n<\/pre><\/div>\n\n\n<p><strong>registreerimine.php&nbsp;<\/strong><\/p>\n\n\n\n<p>Edasi v\u00f5ib vaikselt hakata vaadetele vastavaid lehti tegema. M\u00f5nikord sobib \u00fchte faili kokku mitu vaadet. V\u00f5i m\u00f5nel korral on mugav \u00fcks vaade ehitada mitmest failist. Kuid alustuseks v\u00f5ib enamasti \u00fcks-\u00fchele seotus sobida. Kuni lehed on suhteliselt iseseisvad ning neid seob andmete poolest andmebaas, siis saab samale andmestikule mugavasti lehti eraldi k\u00fclge ehitada ning need ei hakka \u00fcksteist segama.&nbsp;&nbsp;<\/p>\n\n\n\n<p>Eksami k\u00e4igu poolest esimene tarvilik leht on registreerimisvorm. Andmed sisestatakse veebilehel, talletatakse baasi INSERT-lause abil. \u00c4ram\u00e4rkimist v\u00e4\u00e4rib nime lisamise teate kuvamine veebilehel. Uuesti lehte avama kutsuva header-k\u00e4skluse aadressirea parameetrina antakse vajalik teade, mis siis lehe avamisel v\u00e4lja kuvatakse.&nbsp;<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\nheader(&quot;Location: $_SERVER&#x5B;PHP_SELF]?lisatudeesnimi=$_REQUEST&#x5B;eesnimi]&quot;); \n<\/pre><\/div>\n\n\n<p><strong>registreerimine.php<\/strong><\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\n&lt;?php  \n require_once(&quot;konf.php&quot;); \n if(isSet($_REQUEST&#x5B;&quot;sisestusnupp&quot;])){ \n $kask=$yhendus-&gt;prepare( \n &quot;INSERT INTO jalgrattaeksam(eesnimi, perekonnanimi) VALUES (?, ?)&quot;); $kask-&gt;bind_param(&quot;ss&quot;, $_REQUEST&#x5B;&quot;eesnimi&quot;], $_REQUEST&#x5B;&quot;perekonnanimi&quot;]); $kask-&gt;execute(); \n$yhendus-&gt;close(); \nheader(&quot;Location: $_SERVER&#x5B;PHP_SELF]?lisatudeesnimi=$_REQUEST&#x5B;eesnimi]&quot;); exit(); \n } \n?&gt; \n&lt;!doctype html&gt; \n&lt;html&gt; \n &lt;head&gt; \n &lt;title&gt;Kasutaja registreerimine&lt;\/title&gt; \n &lt;\/head&gt; \n &lt;body&gt; \n &lt;h1&gt;Registreerimine&lt;\/h1&gt; \n &lt;?php \n if(isSet($_REQUEST&#x5B;&quot;lisatudeesnimi&quot;])){ \n echo &quot;Lisati $_REQUEST&#x5B;lisatudeesnimi]&quot;; \n } \n ?&gt; \n&lt;form action=&quot;?&quot;&gt; \n &lt;dl&gt; \n &lt;dt&gt;Eesnimi:&lt;\/dt&gt; \n&lt;dd&gt;&lt;input type=&quot;text&quot; name=&quot;eesnimi&quot; \/&gt;&lt;\/dd&gt; \n &lt;dt&gt;Perekonnanimi:&lt;\/dt&gt; \n&lt;dd&gt;&lt;input type=&quot;text&quot; name=&quot;perekonnanimi&quot; \/&gt;&lt;\/dd&gt; \n &lt;dt&gt;&lt;input type=&quot;submit&quot; name=&quot;sisestusnupp&quot; value=&quot;sisesta&quot; \/&gt;&lt;\/dt&gt;  &lt;\/dl&gt; \n&lt;\/form&gt; \n &lt;\/body&gt; \n&lt;\/html&gt; \n\n<\/pre><\/div>\n\n\n<p>Tulemusena koht, kus nimi sisse kirjutada ning p\u00e4rast sisestusnupule vajutamist j\u00f5uab see andmebaasitabelisse.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"296\" height=\"214\" src=\"https:\/\/tarkvara.thkit.ee\/veeb\/wp-content\/uploads\/2023\/04\/image-1.png\" alt=\"\" class=\"wp-image-389\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"281\" height=\"243\" src=\"https:\/\/tarkvara.thkit.ee\/veeb\/wp-content\/uploads\/2023\/04\/image-2.png\" alt=\"\" class=\"wp-image-391\"\/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>P\u00e4rast selliste eelt\u00f6\u00f6de l\u00e4bi viimist on valmivast rakendusest juba m\u00f5nev\u00f5rra l\u00e4hem ettekujutus olemas ning v\u00f5ib loota, et kokkupandav rakendus ka kasutatav on. Ehkki juhtub k\u00fcllalt sageli, et p\u00e4rast esialgse versiooni t\u00f6\u00f6le panekut tuleb ta veel mitme koha pealt \u00fcmber teha enne, kui kasutajad tulemusega rahul on. Kasutajalugude, skeemide ja esialgsete SQL-lausete kohendamine on aga algul &hellip; <a href=\"https:\/\/tarkvara.thkit.ee\/veeb\/ulesanded-4\/\" class=\"more-link\">Loe edasi <span class=\"screen-reader-text\">Veebilehtede loomine\u00a0<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-334","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/tarkvara.thkit.ee\/veeb\/wp-json\/wp\/v2\/pages\/334","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tarkvara.thkit.ee\/veeb\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/tarkvara.thkit.ee\/veeb\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/tarkvara.thkit.ee\/veeb\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tarkvara.thkit.ee\/veeb\/wp-json\/wp\/v2\/comments?post=334"}],"version-history":[{"count":9,"href":"https:\/\/tarkvara.thkit.ee\/veeb\/wp-json\/wp\/v2\/pages\/334\/revisions"}],"predecessor-version":[{"id":392,"href":"https:\/\/tarkvara.thkit.ee\/veeb\/wp-json\/wp\/v2\/pages\/334\/revisions\/392"}],"wp:attachment":[{"href":"https:\/\/tarkvara.thkit.ee\/veeb\/wp-json\/wp\/v2\/media?parent=334"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}