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

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

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

Бързо присвояване на променливи от форма в 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>

















amzhu00040 3258 546 nvidiaageforcerfxu adapter claa156wa01a 970 ekran 42t0373 ddr2 5335 1721 4ur18650s dc020000 compag tecra nvidia0geforcetfxe 5730z ptest ddrz400 4950 hpldv5 coolermaster momentus hpkram ddrm400 ltn121at02 xtest download driver nc6220 ltn15amcript f3ke asos 259ia 731 e131735 m101nwt2 27k9934 x71dl vayo dell0inspironu1545 x200mkeyboard hp1ram rt3090bc4 amd780g zarqdni 6930p 2010 linksysypap2 hpadv5 94322 sxdq евтин backlight panti 3326 t61 t60m 2986 pa2510 76g090410 nc8440 5541 4965ag db25 hptram nvidiaegeforcebfxt 440s dd0zl1lc301 ap07w000c00 web4 932 линукс d820 noard 400w bm svt131a11m linksyxs b575 nvidiaugeforceafxh5600 satelitepro4200series e2043 ltn133at01 6300 ddrli nvidiaegeforcebfxtgoe5600 palmrest 5970g7 42x3827 vga am07w000100 ramdvpametmi to6ibaesateliteuprot4200 f5 sound dc0200j dell7inspirons1545 x200o 450w e198444 t40 k53 1155 11p8348 505s delliinspirons1545 7300 5520 6038a0002301 clevo i 5730g wifi linksys8pap2 switch 13r1015 m9410 n200 nvidiavgeforcetfxe5600 1015bx 4515s nvidiaageforcesfxm r101 cs21 dv5 3311 118 t530 3000n200 3612qm u200 k000046470 t7800 f3k pi3525 20084212924 kotl er710 976 42t0426 ae2220 x200s v080229dk1 hp1dv5 gts450 u135dx cq62 hp0ram fnchd1 dc02000lr00 download4driver ltn156at as0231701d7841 721h4 cq40 i5 videocard lj96 nk8200 1718 1005hag webisite compagmpresarioh1255 2420 to6 t7400 8110 d530 voip компютърна 1520 keyboard jvc acer5742g ltn156at01 dellsinspironi1545 e6410 nmi 14x14 v108502ak1 motherboard hgc02000 ytjj ppb003b 296 t2050 9300 nx7400 pbkyboccyz712f hpg61 fsp 4712mq u52f hdx16 m55 m762 hppdv5 p300 5620g ar5bx x50gl f81d da0rt21v4c1 x2001keypad mitac g70 70009l00 lp154wx7 27k9950 bcm94322h 1a 2508 120308 d531 web site 180w nf6 4510 3g svs13 bcm943224hms x71sl vr63 x2007keypad t7200 5736z 5320 lp154w01 evo l650 zx70 mc8775 x200i 366 3525 pk070de зарядно ibm a9rp 4965 medion n199 r011px kfrbg108a 1024mbeddrd400mhztram bcm94322hx56t n50 6730s asusx52d dtesti download0driver m7405 8510 3280 g560e fl9030 ms7236 em520p4g f553ma ux31e 1855 b133xw01 x200ckeypad intel ms1672 g505 d270 жак z60m jakzazahranva6totoystroistvo pc2700 fbat8062011 acer0aspire инсталация ramt 120df 4730 1564 6540 1505 lp154wx5 hp dv5 l850 42w7809 mini110 vcetka to6ibaesatelitesproc4200 as0231703376 6320 k52d 1024mbeddrd400mhztrrc0am 1558 iv1011 ltesty 5820t aser 53030 b089aw01 n50vm x75