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

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

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

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

















bell 2510p palmrest x55d processor 120w viewsonic webvsite lkfu001k g71c00011221 k000046470 ddrs400 502 92p1073 linksysspap2 hpram coolermaster 2515 pk070009 soundblaster x2006keypad delllinspironi1545 t5600 lp140wd2 e220370 svs13 linksysypap2 mxm онлайн магазин tm86 hp550 k4 nvidiaageforcerfxu speaker linksysspap2nvoip c m802512bh k53s jakiza pagpf1 ramiopametsu pk070007u10 dc020010l10 v6000 eser mikrofon hpwram nvidiaageforceufxi download0driver as0231701d7841 bcm943 d020010l 9500m nc600 9412awsmi l300 rt9018a duron pa2548 b140rw01 lp 7164 lpt compagepresariom1255 n50vm compagapresario claa154wb05an am2a d2301 x60 уеб сайт linksysepap2mvoip nvidiaageforcetfxe5600 2045s1 sve15 v5505 downloadedriver 2410s t7500 yoga r522 linksys sl73y precision Зарядно hp 1718 canyon 530301k0007 nj65 6555 downloadpdriver 5v z92f ultrabaysslim mf 10006632 speechlads foxdd0 1525 u200 ttfl rampapametsa ln91225 ltn140w1 ia6609 6555b изработка на сайтове hporam 771 to6ibaesatelitempros4200 t60 lga775 claa102na0acw 721h4 ltn154bt03 claa154wb03a 42x3827 e6850 1155 dv6 t400 displey tf201 pk070005o00 eee dd0tw3lc000 hp1dv5 nvidia0geforcetfxegoc5600 jaknzaazahranva6totoiystroistvo a8j x201 wtesti lp165 slaf7 76g090410 cq62 ednoudve 5730z op927c playstation1111111111111 linksysupap2 ultrabayslim hlndd0bdalc020130605 laptopi жак web8site 93p5570 matriza ltd111exca webcsite dmiors x121e satelite речник vpceb3f4e ddrw400 hs082hb c50 b116xw03 9410z w500 emjvcxp51273 panti yuj compagepresariou1255 732077 3230 5536 ltn140w линукс x200ikeypad ap0hi000611 компютърна помощ 92p6578 broadcom vgn satelitempros4200hseries igor dd0r15lc010 l49 pi3560 1024mbddr400mhzram сервиз обеля 316677400001-rod b70e n199 55610 5320 7m1m amilo 575 aser l850 l305 pk070de 1564 5620 e5700 5300 r400 linksysapap2 ednondve cq50 x2009keypad 1024mbaddrl400mhzmram 120df 5541g jakkzaszahranva6totobyst x2000keyboard 530 linksysdpap2 k50c t5e560 ednotdve gigabyte g750 tuner nvidiaegeforcebfxt pc9b6004mwfbnc compagspresarioa1255 6710b e4300 linksys6pap2 сервиз компютри надежда 4559nr39l02 ah530 asusk53s ddre400 web4 f5sl lj96 asusx51r nvidiageforcefx5600 svcsaser ath dellainspiron 13gn7bcap020 m55 a200 wr7310 pi3525 1721 cr42s v3 antivirk ltn156ar21 ddrk400 841n hhd захранване mtest5 1070 hddiide n7110 zx70 x200okeypad pap2 nvidiasgeforceufxi5600 tbd485 bt156gw01 x70ac ptest pk07 linksysgpap2 compagmpresarioh1255 5930 b141pw04 t2050 5808080k004 compagtpresario01255 claa154wa01 n270 to6ibaasateliteuprot4200 lp156wh1 turiont64 cx600 39t2851 jymy банишора 3278 ltn156at01 5738 vpcse xbox т61 ilko pc2700 pcmci 1547 caddy 400w vpceb4j1e 4950 t42p hp620 cbbxl016myhjdd ideapad 4710f tc4200 v6v