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

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

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

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

















hpdram u410 2540 3042 dd0blilc020 504j518011 dell0inspironu1545 r011px hp ram download0driver t440 z53s e5520 vr63 vt6000 t1350 linksysypap2dvoip k7610w to6iba x552l x502 42w3769 ultrabaysslim t440p 5723 ove u52f m305d 7300 op8ensuse 41w1483 duno 788 4520s ssbs13 k56ca h5513b05hd s510p mini dc020010l10 d620 turionmt z70x dano claa154wb05an ppb003b a1418702 dc0200 2600 42t2515 atheros jakkzaszahranva6totosystroistvo n50vm 6017b0087401 g31m3 зваляне t8300 y530 hub x41 4710f 1505 6510b tally matriza 110 fingerprint 650 msi pata x550c ultrabayslim ultrabaypslim pew91 aspire6935g x200mkeyboard xbox360 vgp asus panda 1005hag pan b575 ddr1400 msata cq50 dellsinspirons1545 n134 ltd121ewud x2001keypad 8400m stikeri 0232 ao756 1024mbsddrp400mhziram delllinspironi1545 s710 am07w000100 a110 compagdpresariob1255 masaji podsvedka pk070008h00 mtestu 9436 acer5742g x50 ltn156at27 claa154wa05a x200keypad 71314l hp510 lq164m1ld4c compagepresariou1255 pci fujutsu 478 nvidiageforcefx5600 pk1301s0150 hp3dv5 mk1235gsl pk nw8240 x200u dell hpwram edno1dve tc4200 n156b3 turion064 y520 ednokdve np300e5z viewsonic 1558 m51vr x200mkeypad delloinspironm1545 1720 hp1ram ddr2400 sis 1024mb0ddrb400mhzaram nbt x200 клавиатура x200 gobi1000 ednoedve hpiram 2515 1510 7736 39t2723 asusk50ab 702 nx6125 realtek x200bkeypad iocean 1735 17015 732071 8510 zbook cq567 web4 ln91225 1310 hp8510p vayo 5749 antivirk 312 1555 hgc02000 296 6052 x51 ekra cosmo n5040 voip 8560w satelite pasta g560e e8110 wd p9600 li1818 r400 3473 g71c00011221 ms1719 t60m283 ddrr400 784 cq57 nvidiavgeforcetfxe s1 572 202 zx70 lp156wh4 1005ha downloadtdriver hstnn atlon ms7236 511g z460 z61t 479 6570 pk070009k0 evo x61 turionm64 b116xwh1 benq amzi linksysspap2mvoip f3ka r100 delluinspironr1545 b156x g575 hitachi bezel m9410 lp156whb seasonic nvidiaageforcetfxe5600 nvidia0geforcetfxegoc5600 b133xw ремонт buksa sateliteppron42005series dd0r15lc010 ctests u100 f81d гугъл m1437g w370et linksysypap2svoip lp140wd sl7el a6400 linksysgpap2cvoip 9500 1070 39t3679 np275 92p6661 agp ab7005hx 3test7 nvidiaegeforcebfxt b133xw01 15r turion464 router евтин сайт 3537 socet775 255 dd0tw3lc000 90w x2004keyboard ap0hi000611 d530 a53u uj8d2q 732068 gts450 mini0 1024mb klaviatura 5336 p7230 bcm943 foxddc7003csd315 41w1121 port t9800 pj105 zapisvachka m2n 41w1 svs1311p9eb 20798 travelmate2300 4540 b570e 4820 5740g 620 process 5770