Ano ang pakiramdam ng isang lalaki memberlist php form. Form ng feedback sa PHP na may pagpapadala sa pamamagitan ng e-mail. Form ng feedback sa PHP

Naka-block ang JavaScript sa iyong browser. Mangyaring paganahin ang JavaScript para gumana ang site!

Paggawa gamit ang Forms

Ang mga HTML form ay ginagamit upang maglipat ng data mula sa gumagamit ng isang Web page patungo sa server. Nagbibigay ang PHP ng ilang espesyal na tool para sa pagtatrabaho sa mga form.

Mga Paunang Natukoy na Variable

Ang PHP ay may ilang paunang natukoy na mga variable na hindi nagbabago sa lahat ng application na tumatakbo sa isang partikular na kapaligiran. Tinatawag din silang mga variable ng kapaligiran o mga variable ng kapaligiran. Sinasalamin nila ang mga setting ng kapaligiran ng server ng Apache Web, pati na rin ang humiling ng impormasyon para sa browser na iyon. Posibleng makuha ang mga halaga ng URL, string ng query, at iba pang elemento ng kahilingan sa HTTP.

Ang lahat ng paunang-natukoy na mga variable ay nasa associative array na $GLOBALS. Bilang karagdagan sa mga variable ng kapaligiran, naglalaman din ang array na ito ng mga global variable na tinukoy sa programa.

Halimbawa 1

Pagtingin sa $GLOBALS Array $value) echo "\$GLOBALS[\"$key\"] == $value
"; ?>

Bilang resulta, lalabas sa screen ang isang listahan ng lahat ng global variable, kabilang ang environment variable. Ang pinakakaraniwang ginagamit ay:

VariablePaglalarawanMga nilalaman
$_SERVER["HTTP_USER_AGENT"]Pangalan at bersyon ng kliyenteMozilla/5.0 (tugma; Googlebot/2.1; +http://www.google.com/bot.html)
$_SERVER["REMOTE_ADDR"]IP address144.76.78.3
getenv("HTTP_X_FORWARDED_FOR")Panloob na IP address ng kliyente
$_SERVER["REQUEST_METHOD"]Paraan ng kahilingan (GET o POST)GET
$_SERVER["QUERY_STRING"]Sa isang kahilingan sa GET, ipinadala ang naka-encode na data kasama ng URL
$_SERVER["REQUEST_URL"]Buong address ng customer kasama ang string ng query
$_SERVER["HTTP_REFERER"]URL ng page kung saan ginawa ang kahilingan
$_SERVER["PHP_SELF"]Path sa programang isinasagawa/index.php
$_SERVER["SERVER_NAME"]Domainwebsite
$_SERVER["REQUEST_URI"]Daan/php/php_form.php

Pangangasiwa sa input ng user

Ang PHP input processing program ay maaaring ihiwalay mula sa HTML text na naglalaman ng mga input form, o maaari itong ilagay sa isang pahina.

Halimbawa 2

Halimbawa ng pagpoproseso ng input

" method="post">

Numero ng card:



Walang data transfer button dito, dahil... isang form na binubuo ng isang field ay awtomatikong isinumite kapag pinindot ang isang key .

Kapag nagpoproseso ng isang elemento na may maraming halaga na seleksyon, kailangan mong magdagdag ng isang pares ng mga square bracket sa pangalan ng elemento upang ma-access ang lahat ng napiling halaga. Upang pumili ng maraming item, pindutin nang matagal ang Ctrl key.

Halimbawa 3.1

Listahan



RESULTA NG HALIMBAWA 3.1:

Halimbawa 3.2

Pagproseso ng listahan mula sa ex1.htm file

    "; foreach ($Item bilang $value) echo "
  • $value"; echo "
"; ?>

Halimbawa 4. Pagtanggap ng mga halaga mula sa mga checkbox

$v) ( if($v) echo "Alam mo ang programming language $k!
"; else echo "Hindi mo alam ang $k programming language.
"; } } ?>
" method="post"> Anong mga programming language ang alam mo?
PHP
Perl

RESULTA NG HALIMBAWA 4:

Halimbawa 5

"; ?>
" method="post">

Maaari mong iproseso ang mga form nang hindi nababahala tungkol sa aktwal na mga pangalan ng field.

Upang gawin ito, maaari mong gamitin (depende sa paraan ng paglipat) ang associative array $HTTP_GET_VARS o $HTTP_POST_VARS . Ang mga array na ito ay naglalaman ng mga pares ng pangalan/halaga para sa bawat elemento ng isinumiteng form. Kung wala kang pakialam, maaari mong gamitin ang associative array $_REQUEST .

Halimbawa 6

Pangasiwaan ang arbitrary na input anuman ang paraan ng paghahatid $value) echo "$key == $value
"; ?>

Halimbawa 7: Pangangasiwa sa isang pag-click sa button gamit ang operator na "@".

">

Gamit ang header() function, pagpapadala sa browser ng header na "Lokasyon", maaari mong i-redirect ang user sa isang bagong page.

Halimbawa:

Paglilipat ng file sa server. I-upload ang file. Mag-Upload

Hinahayaan ka ng PHP na maglipat ng mga file sa server. Ang isang HTML form na nilalayong magsumite ng isang file ay dapat na naglalaman ng argumento na enctype="multipart/form-data".

Bilang karagdagan, sa form, bago ang field para sa pagkopya ng isang file, dapat mayroong isang nakatagong field na pinangalanang max_file_size. Ang maximum na laki ng inilipat na file ay dapat na nakasulat sa nakatagong field na ito (karaniwang hindi hihigit sa 2 MB).

Ang mismong field ng paglilipat ng file ay isang regular na elemento ng INPUT na may argumentong type="file".

Halimbawa:

" method="post">

Pagkatapos mailipat ang file sa server, bibigyan ito ng natatanging pangalan at iimbak sa direktoryo ng pansamantalang mga file. Ang buong path sa file ay nakasulat sa isang global variable na ang pangalan ay tumutugma sa pangalan ng field para sa paglilipat ng file na ito. Bilang karagdagan, ang PHP ay nag-iimbak ng ilang karagdagang impormasyon tungkol sa inilipat na file sa iba pang mga pandaigdigang variable:

Halimbawa 8

Pinoproseso ang inilipat na file "; echo "pangalan: ".$_FILES["userfile"]["pangalan"]."
"; echo "size: ".$_FILES["userfile"]["size"]."
"; echo "type: ".$_FILES["userfile"]["type"]."
"; } ?>
" method="post">



Mga halimbawa ng pag-upload ng mga file sa server

Kung lumitaw ang mga problema sa pag-transcode ng server sa na-download na file, ang simbolo na may code 0x00 pinalitan ng puwang (character na may code 0x20), idagdag sa file httpd.conf mula sa direktoryo ng Apache (/usr/local/apache) ang mga sumusunod na linya.

CharsetRecodeMultipartForms Off

Isa sa mga magagandang bagay tungkol sa PHP ay ang paraan ng paggana nito sa mga HTML form.

Ang pangunahing bagay dito ay ang bawat elemento ng form ay awtomatikong magagamit sa iyong mga programa sa PHP. Para sa detalyadong impormasyon tungkol sa paggamit ng mga form sa PHP, basahin ang seksyon. Narito ang isang halimbawang HTML form:

Halimbawa #1 Pinakasimpleng HTML Form

pangalan mo:

Ang iyong edad:

Walang espesyal sa form na ito. Ito ay isang regular na HTML form na walang anumang mga espesyal na tag. Kapag pinunan ng user ang form at na-click ang submit button, tatawagin ang action.php page. Maaaring may katulad ang file na ito:

Halimbawa #2 Pagpapakita ng data ng form .
hello,sa iyo

taon.

Halimbawang output ng program na ito:

Kamusta, Sergey. Ikaw ay 30 taong gulang. Kung hindi mo isinasaalang-alang ang mga piraso ng code na may htmlspecialchars() At(int) Kung hindi mo isinasaalang-alang ang mga piraso ng code na may, ang prinsipyo ng pagpapatakbo ng code na ito ay dapat na simple at naiintindihan. tinitiyak na ang mga "espesyal" na HTML na character ay tama na naka-encode upang hindi maipasok ang nakakahamak na HTML o Javascript sa iyong pahina. Ang field ng edad, na alam nating dapat ay isang numero, maaari lang nating i-convert integer , na awtomatikong mag-aalis ng mga hindi gustong character. Magagawa rin ito ng PHP nang awtomatiko gamit ang extension ng filter. Ang mga variable na $_POST["pangalan"] at $_POST["edad"] ay awtomatikong itinatakda para sa iyo ng PHP. Dati ginamit namin ang $_SERVER superglobal variable, ngunit dito ginagamit din namin ang $_POST superglobal variable, na naglalaman ng lahat ng POST data. Tandaan na paraan ng pagpapadala GET(pamamaraan) ng aming form ay POST. Kung ginamit natin ang pamamaraan

, kung gayon ang aming impormasyon sa form ay nasa superglobal variable na $_GET .

Bilang kahalili, maaari mong gamitin ang $_REQUEST variable kung hindi mahalaga ang data source. Ang variable na ito ay naglalaman ng pinaghalong GET, POST, COOKIE data.

Dapat mong gamitin ang paraan ng GET kapag ang iyong form ay, well, nakakakuha ng isang bagay mula sa server at hindi aktwal na nagbabago ng anuman. Halimbawa, ang form para sa isang search engine ay dapat gumamit ng GET, dahil ang paghahanap sa isang Web site ay hindi dapat magbago ng anumang bagay na maaaring mahalaga sa kliyente, at ang pag-bookmark o pag-cache ng mga resulta ng isang search-engine na query ay kapaki-pakinabang tulad ng pag-bookmark o pag-cache. isang static na HTML page.

2 taon na ang nakalipas

Nararapat linawin:

Ang POST ay hindi mas secure kaysa sa GET.

Ang mga dahilan sa pagpili ng GET vs POST ay kinabibilangan ng iba't ibang salik gaya ng layunin ng kahilingan ("nagsusumite" ka ba ng impormasyon?), ang laki ng kahilingan (may mga limitasyon sa kung gaano katagal ang isang URL, at ang mga parameter ng GET ay ipinadala sa ang URL), at kung gaano mo kadaling gustong maibahagi ang Pagkilos -- Halimbawa, GET ang Mga Paghahanap sa Google dahil pinapadali nitong kopyahin at ibahagi ang query sa paghahanap sa ibang tao sa pamamagitan lamang ng pagbabahagi ng URL.

Ang seguridad ay isang pagsasaalang-alang lamang dito dahil sa katotohanan na ang isang GET ay mas madaling ibahagi kaysa sa isang POST. Halimbawa: hindi mo gustong magpadala ng password ng GET, dahil maaaring ibahagi ng user ang resultang URL at hindi sinasadyang ilantad ang kanilang password.

Gayunpaman, ang isang GET at isang POST ay pantay na madaling ma-intercept ng isang malisyosong tao kung hindi mo ilalagay ang TLS/SSL upang protektahan ang mismong koneksyon sa network.

Ang lahat ng mga Form na ipinadala sa HTTP (karaniwang port 80) ay hindi secure, at ngayon (2017), walang maraming magandang dahilan para sa isang pampublikong website na hindi gumagamit ng HTTPS (na karaniwang HTTP + Transport Layer Security).

Bilang isang bonus, kung gagamit ka ng TLS, mababawasan mo ang panganib ng iyong mga user na makakuha ng code (mga AD) na na-inject sa iyong trapiko na hindi mo inilagay doon.

Sa araling ito ay malalaman natin ang tungkol sa function mail(), gamit ang halimbawa ng paglikha Mga form ng feedback sa PHP sinusundan ng pagpapadala ng natanggap na data sa pamamagitan ng email.

Upang gawin ito, gagawa kami ng dalawang file - format.php At mail.php. Ang unang file ay maglalaman lamang ng isang form na may mga field para sa input ng user. Sa loob ng isang tag anyo- pindutan "Ipadala" at katangian aksyon na tumutukoy sa handler - mail.php, ito ay naa-access ang data mula sa form kapag pinindot ang pindutan "Ipadala". Sa aming halimbawa, ang data ng form ay ipinadala sa isang web page na tinatawag "/mail.php". Ang pahinang ito ay naglalaman ng script para sa PHP na nagpoproseso ng data ng form:


Ang data ng form ay ipinadala gamit ang POST(naproseso bilang $_POST). $_POST ay isang hanay ng mga variable na ipinasa sa kasalukuyang script sa pamamagitan ng pamamaraan POST.

Sa ibaba makikita mo ang mga nilalaman ng file format.php, ang mga field na kung saan ay pinunan ng user mismo sa ilang website. Lahat ng field ng data entry ay dapat may attribute pangalan, inireseta namin ang mga halaga sa aming sarili, batay sa lohika.




Ang form ng feedback sa PHP ay ipinadala sa pamamagitan ng email


Form ng feedback sa PHP







Mag-iwan ng mensahe:
pangalan mo:



Email:

Numero ng telepono:

Mensahe:

Ang lugar ng teksto ay maaaring maglaman ng walang limitasyong bilang ng mga character-->









Ganito ang hitsura ng form sa browser.

Susunod na isusulat namin ang code para sa file mail.php. Nakabuo kami ng aming sariling mga pangalan para sa mga variable. SA PHP variable ay nagsisimula sa sign $ sinusundan ng variable na pangalan. Ang halaga ng teksto ng variable ay nakapaloob sa mga panipi. Gamit ang mga variable, ipinapadala ang mga nilalaman ng form sa email ng administrator sa pamamagitan lamang ng paglalagay ng pangalan ng elemento ng form sa mga square bracket - ang halaga pangalan.

$to = " [email protected]"; // email ng tatanggap ng data mula sa form
$tema = "Form ng feedback sa PHP"; // paksa ng natanggap na email
$message = "Ang iyong pangalan: ".$_POST["pangalan"]."
";//italaga ang variable ang halagang nakuha mula sa form name=name
$message .= "Email: ".$_POST["email"]."
"; //nakuha mula sa form name=email
$message .= "Numero ng telepono: ".$_POST["telepono"]."
"; //nakuha mula sa form name=phone
$message .= "Mensahe: ".$_POST["mensahe"]."
"; //nakuha mula sa form name=message
$headers = "MIME-Bersyon: 1.0" . "\r\n"; // tumutugma ang header sa format kasama ang character na bagong linya
$headers .= "Uri ng nilalaman: text/html; charset=utf-8" . "\r\n"; // ay nagpapahiwatig ng uri ng nilalaman na ipinapadala
mail($to, $tema, $message, $headers); //nagpapadala ng mga variable na halaga sa tatanggap sa pamamagitan ng email
?>

Kaya ang data mula sa array $_POST ipapasa sa kaukulang mga variable at ipapadala sa pamamagitan ng email gamit ang function mail. Punan natin ang aming form at i-click ang button na isumite. Huwag kalimutang isama ang iyong email. Dumating kaagad ang sulat.