СервизСервиз за компютри, лаптопи, поддръжка

ПродаваЧасти и компоненти, лаптопи и компютри

СтатииПолезни статии на компютърна тематика

Бързо присвояване на променливи от форма в PHP

Основното приложение на HTML формите при уеб разрабоките е изпращането на информация от страна на потребителя към сървъра.

Тук няма да се спираме конкретно на самите HTML форми, които сами по себе си са безмислени, тъй като след като информацията бъде изпратена, нашият PHP скрипт трябва да я обработи по подходящия начин.

За да тестваме конкретния прост пример, в root-a на нашия уеб сървър създаваме директория test , a в нея файл index.php.

В примера, ще пропускаме html кода, който няма директно отношение към нашия php скрипт, като body, head и meta тагове.

Във файла index.php създаваме една проста html форма с 3 променливи, които ще бъдат изпратени - име, възраст и email, като използваме POST метода:

echo " <form action="$PHP_SELF" method="post"> <label>Име:</label><input type="text" name="name" /><br /> <label>Години:</label><input type="text" name="age" /><br /> <label>E-mail:</label><input type="text" name="mail" /><br /> <input type="submit" value="изпрати" /> </form>";

В началото на скрипта добавяме:

if(!empty($_POST)) { echo "Вие се казвате:".$_POST["name"]."<br />"; echo "Вашата възраст е:".$_POST["age"]."<br />"; echo "Вашият e-mail e:".$_POST["mail"]."<br />"; }

Така, след потвърждаването на формата, инфромацията, която сме въвели ще бъде изведена на екрана посредством $_POST променливата, която представлява асоциативен масив от променливи, изратени на скрипта посредством POST метода. Тъй като има проверка за потвърждаване на формата, ако няма такова, нищо няма да бъде изведено, освен самата форма.

До тук всичко е наред, но когато се налага да използваме на много места в скипта тези промелниви, се появява неудобството, свързано с изписването им. Например, когато трябва да използваме годините на потребителя в някакви изчисления, би било по-лесно да използваме, като промелива $age, отколкото всеки път да пишем $_POST["age"].

За целта променяме тази част на скрипта по следния начин:

if(!empty($_POST)) { $name=$_POST["name"]; $age=$_POST["age"]; $mail=$_POST["mail"]; echo "Вие се казвате: $name<br />"; echo "Вие се казвате: $age<br />"; echo "Вие се казвате: $mail<br />"; }

Така променливите се пишат по-лесно, но ако формата съдържа много полета ще си усложним ненужно живота с присвояването. За да се справим с този проблем, ще използваме удобния foreach цикъл, за да обходим $_POST масива. Променяме горната част по следния начин:

if(!empty($_POST)) { foreach($_POST as $key=>$value) { $$key=$value; } echo "Вие се казвате: $name<br />"; echo "Вие се казвате: $age<br />"; echo "Вие се казвате: $mail<br />";

След като заредим страницата index.php, с радост ще установим, че всичко работи. Какво направихме всъщност?

При обхождането на $_POST масива с помощта на foreach, променливите $key и $value взимат стойностите съответно на името и стойността, които сме изпратили с html формата. Чрез $$key създаваме променлива със същото име, като това изпратено от формата - $name, $age и $mail и им присвояваме автоматично съответните стойности.

По този начин, можем с 3 реда код да създадем голям брой променливи, изпратени от дълга форма.

Важно! Копирането на статията е разрешено само при добавяне на връзка(линк) към източника, в случая computri.net.

Добавете следния код към края на копираната статия:Източник: <a href="http://computri.net/полезно-поддръжка-компютри/статии-49/новини-55/статия-2430/" title="сервиз компютри">сервиз компютри</a>

















v5505 2535 n586 hp0ram l550 msi g62 x52j nvidiatgeforcetfxegoc5600 it8512 momentus c6c4 ef hp4710 xtestk a200 ramnlpametri edno9dve 4435 sve1513jcxw asusx51r t9300 nb300 as0231703376 amzi turiony64 3kama069113 button k56 5552g 310 z60 bga1168 toshia 1310 ednomdve test b154 icw50 v3000 packard k51 nr21j RAM as0232 asusx52d 4700mq 1024mb ddr 400mhz ram dv9700 ddr5400 hpnram x200 keyboard g71c00011221 n7110 tbd485nr pwi1704sp x52 3553 5536g to6ibaasateliteuprot4200 590 ar928 te11hc core a 2.5 hdd ide ptests e204356 771 h710 5741 ut5 x70ac b133xw01 t1400 6070b021 42w3769 4525 pa3154u 464 bsb0705hc arctic e220370 ppb003b linksysspap2tvoip x75 edno7dve 2100 n199 medion pasti r50 180w w476v 3850 41w1 630 atests ruteri ram00pametit r60e kmex 2037s5 ttfl nvidiaigeforceifxs5600 b156xw1 ohladitel ap0hi000611 5335 lenvo nvidiaegefor mini 7740g 20084212924 u135 f1d2wx26201g2 442 41w1121 x200tkeyboard 1535 aspire5600 r101 c30 fsnamilo emachenes 3810 2510p 5650 k50 dc02001pr00 fan онлайн магазин satelitempros4200hseries jaknzaazahranva6totoiystroistvo ltn140 ide as07aa31 r36lc050 web5site 4559nr39l02 apple ceni 5349 ctestg 256mb 3632qm jvc 8510w nb100 8510 c650d 5737z инсталация линукс pi2512 g780 21313 изработка pagpf014kwc3u1 ram pamet nvidia0geforcetfxe as07a73 2713 s510p laptquotomit 4710f 3521 t43 531 572g 4048 x551c сваляне 21076 g560e 57 6715 718 c855 j91866 dd3 vmv160sgr12gm linksysypap2dvoip mini110 stesti hp3ram chip 6735 3000 3197 claa154wb05an 1024mb1ddrb400mhzaram x56t dell4inspiront1545 5542 Почистване pk070014500 to6ibasatelitepro4200 kutia ltd111exca f50 t7800 v6v b570 claa154wa01 1000he e6410 xfan ddrm400 t5400 f3k 1201 heatsink bell ednokdve downloadrdriver g500s 2530 ednoudve cr620 d6000 wlan 296 pa2510 slaf7 alivenf6g webusite hpadv5 100 jakkzaszahranva6totobyst 2236 v104702ak3 svt bq24740 pci e540 ddr8400 to6ibassateliteiprou4200 nc6000 t40 e571 речник 970 1024mbsddri400mhzcram 08g23 c acer0aspire em520p4g ddr3400 dell0inspirons1545 sdram dv7 bcm94322hm8l 5755g zarqdni 6720 nc6320 91p7267 r61e evo pi2515 as023176876 t9500 1024mbuddrt400mhzhram uxga 479 jakzazahranva6totoystroistvo сеь vgp hpg61 ramtzpametra linksyskpap2mvoip matriza 526 opensuse 8400m as023216101 b154ewo8 turion164 vcetka z61t 6017b0050801 lp165 ednovdve to6ibaesateliteuprot4200 zx70 5630z 2570p k53 ptt50g82 webksite 6320 ddrr400 ar5bhb95 r3000 satelitebprod4200mseries pro61s t7700 k73s 6935g ab7005hx