በኢሜል በመላክ በ PHP ውስጥ የግብረመልስ ቅጽ። በPHP ውስጥ የግብረመልስ ቅጽ በኢሜል ከመላክ ጋር አንድ ሰው የአባልነት php ቅጽ እንዴት እንደሚሰማው

በዚህ ትምህርት ውስጥ ስለ ተግባሩ እንማራለን ደብዳቤ(), የመፍጠር ምሳሌን በመጠቀም በ PHP ውስጥ የግብረመልስ ቅጾችየተቀበለውን መረጃ በኢሜል በመላክ ተከትሎ.

ይህንን ለማድረግ ሁለት ፋይሎችን እንፈጥራለን- ቅርጸት.phpእና mail.php. የመጀመሪያው ፋይል ተጠቃሚው ውሂብ ለማስገባት መስኮች ያለው ቅጽ ብቻ ይይዛል። መለያ ውስጥ ቅጽ- አዝራር "ላክ"እና ባህሪ ድርጊትተቆጣጣሪውን የሚያመለክተው - mail.php, አዝራሩ ሲጫን ከቅጹ ላይ ያለው መረጃ የሚደርሰው ይህ ነው "ላክ". በእኛ ምሳሌ፣ የቅጹ መረጃ ወደ ሚጠራው ድረ-ገጽ ይላካል "/mail.php". ይህ ገጽ ለ ስክሪፕት ይዟል ፒኤችፒየቅጹን ውሂብ የሚያስኬድ፡-


የቅጽ ውሂብ በመጠቀም ይላካል POST(እንደ ተሰራ $_POST). $_POSTበስልቱ በኩል ወደ የአሁኑ ስክሪፕት የተላለፉ የተለዋዋጮች ድርድር ነው። POST.

ከዚህ በታች የፋይሉን ይዘት ማየት ይችላሉ። ቅርጸት.php, በአንዳንድ ድረ-ገጾች ላይ በራሱ በተጠቃሚው የተሞሉ መስኮች. ሁሉም የውሂብ ማስገቢያ መስኮች ባህሪው ሊኖራቸው ይገባል ስምበሎጂክ ላይ ተመስርተን እራሳችንን እሴቶቹን እናዝዛለን።




በ PHP ውስጥ የግብረመልስ ቅጽ በኢሜል ተልኳል።


የግብረመልስ ቅጽ በ PHP ውስጥ







መልዕክትዎን ይተዉ፥
የአንተ ስም፥



ኢሜይል፡-

ስልክ ቁጥር፥

መልእክት፡-

የጽሑፍ ቦታው ያልተገደበ የቁምፊዎች ብዛት ሊይዝ ይችላል-->







ቅጹ በአሳሹ ውስጥ በምስላዊ መልኩ እንደዚህ ይመስላል።

በመቀጠል የፋይሉን ኮድ እንጽፋለን mail.php. ለተለዋዋጮች የራሳችንን ስም እናወጣለን። ውስጥ ፒኤችፒተለዋዋጭ በምልክት ይጀምራል $ በተለዋዋጭ ስም ይከተላል. የተለዋዋጭ የጽሑፍ እሴት በትዕምርተ ጥቅስ ውስጥ ተካትቷል። ተለዋዋጮችን በመጠቀም የቅጹ ይዘቶች የአስተዳዳሪው ኢሜል ይላካሉ የቅጹን አካል ስም በቀላሉ በካሬ ቅንፎች ውስጥ በማስቀመጥ - እሴቱ ስም.

$ ወደ = " [ኢሜል የተጠበቀ]"; // ከቅጹ ላይ የውሂብ ተቀባይ ኢሜይል
$tema = "የመልስ ቅጽ በ PHP"; // የተቀበለው ኢሜይል ርዕሰ ጉዳይ
$message = "ስምህ: ".$_POST["ስም"]"
";// ከቅጹ ስም=ስም የተገኘውን ዋጋ ለተለዋዋጭ ይመድቡ
$message .= "ኢሜል: ".$_POST["ኢሜል"]"
"; // ከቅጹ ስም = ኢሜል የተገኘ
$message .= "ስልክ ቁጥር: ".$_POST["ስልክ"]"
"; // ከቅጹ ስም=ስልክ የተገኘ
$message .= "መልእክት: ".$_POST["መልዕክት"]"
"; // ከቅጹ ስም = መልእክት የተገኘ
$headers = "MIME-ስሪት: 1.0" "\r\n"; // የራስጌ ግጥሚያ ቅርጸት እና አዲስ መስመር ቁምፊ
$headers = "የይዘት አይነት፡ ጽሑፍ/html፤ charset=utf-8" "\r\n"; // የሚላኩትን የይዘት አይነት ያመለክታል
ደብዳቤ($to, $tema, $መልእክት, $ራስጌዎች); // ተለዋዋጭ እሴቶችን በኢሜል ለተቀባዩ ይልካል
?>

ስለዚህ ከድርድር የተገኘው መረጃ $_POSTወደ ተጓዳኝ ተለዋዋጮች ይተላለፋል እና ተግባሩን በመጠቀም በኢሜል ይላካል ደብዳቤ. ቅጻችንን ሞልተን አስገባ የሚለውን ቁልፍ ተጫን። ኢሜልዎን ማካተትዎን አይርሱ. ደብዳቤው ወዲያውኑ ደረሰ።

ስለ ፒኤችፒ ካሉት ጥሩ ነገሮች አንዱ ከኤችቲኤምኤል ቅጾች ጋር ​​የሚሰራበት መንገድ ነው። እዚህ ያለው ዋናው ነገር እያንዳንዱ የቅጽ አካል በራስ-ሰር ለ PHP ፕሮግራሞችዎ የሚገኝ መሆኑ ነው። በ PHP ውስጥ ቅጾችን ስለመጠቀም ዝርዝር መረጃ ለማግኘት ክፍሉን ያንብቡ። የኤችቲኤምኤል ቅጽ ምሳሌ ይኸውልዎ።

ምሳሌ #1 ቀላሉ HTML ቅጽ

የአንተ ስም፥

እድሜህ፥

በዚህ ቅጽ ውስጥ ምንም ልዩ ነገር የለም. ይህ ምንም ልዩ መለያዎች የሌሉበት መደበኛ የኤችቲኤምኤል ቅጽ ነው። ተጠቃሚው ቅጹን ሲሞላ እና የማስረከቢያ አዝራሩን ጠቅ ሲያደርግ, የ action.php ገጽ ይጠራል. ይህ ፋይል እንደዚህ ያለ ነገር ሊኖረው ይችላል

ምሳሌ #2 የቅጽ ውሂብን በማሳየት ላይ

ሀሎ፣ .
ለ አንተ፣ ለ አንቺዓመታት.

የዚህ ፕሮግራም ውፅዓት ምሳሌ፡-

ሰላም ሰርጌይ ዕድሜህ 30 ነው።

ከ ጋር የኮድ ቁርጥራጮችን ከግምት ካላስገባ html ልዩ ቻርልስ()እና (int), የዚህ ኮድ አሠራር መርህ ቀላል እና ሊረዳ የሚችል መሆን አለበት. html ልዩ ቻርልስ()ተንኮል አዘል ኤችቲኤምኤል ወይም ጃቫስክሪፕት ወደ ገጽዎ እንዳይገባ "ልዩ" HTML ቁምፊዎች በትክክል መያዛቸውን ያረጋግጣል። ቁጥር መሆን እንዳለበት የምናውቀው የዕድሜ መስክ፣ በቀላሉ ወደ መለወጥ እንችላለን ኢንቲጀር, ይህም በራስ-ሰር የማይፈለጉ ቁምፊዎችን ያስወግዳል. እንዲሁም ፒኤችፒ የማጣሪያ ቅጥያውን በመጠቀም በራስ-ሰር ማድረግ ይችላል። የ$_POST["ስም"] እና $_POST["ዕድሜ"] ተለዋዋጮች በራስ ሰር በPHP ተቀናብረዋል። ከዚህ በፊት የ$_SERVER ሱፐርግሎባል ተለዋዋጭ እንጠቀማለን፣ እዚህ ግን ሁሉንም የPOST ውሂብ የያዘውን $_POST ሱፐርግሎባል ተለዋዋጭ እንጠቀማለን። ያስተውሉ, ያንን የመላክ ዘዴ(ዘዴ) የእኛ ቅፅ POST ነው። ዘዴውን ከተጠቀምን አግኝ፣ ከዚያ የእኛ ቅጽ መረጃ በሱፐርግሎባል ተለዋዋጭ $_GET ይሆናል። በአማራጭ፣ የውሂብ ምንጩ ምንም ካልሆነ የ$_REQUEST ተለዋዋጭ መጠቀም ይችላሉ። ይህ ተለዋዋጭ የGET፣ POST፣ COOKIE ውሂብ ድብልቅ ይዟል።

ከ 15 ዓመታት በፊት

በኤችቲቲፒ ስፔስፊኬሽን መሰረት ቅጹን በምትጠቀምበት ጊዜ የPOST ዘዴን መጠቀም አለብህ በአገልጋዩ መጨረሻ ላይ ያለውን የአንድ ነገር ሁኔታ ለመቀየር ለምሳሌ አንድ ገጽ ተጠቃሚዎች የራሳቸውን አስተያየት እንዲያክሉ የሚያስችል ቅጽ ካለው ልክ እንደዚህ ነው። እዚህ ገጽ ላይ ቅጹ POSTን መጠቀም ይኖርበታል። ለዚህም ነው እነዚህ ገፆች ዕልባት ያልተደረገባቸው ወይም ያልተሸጎጡ።

ቅፅዎ ከአገልጋዩ ላይ የሆነ ነገር ሲያገኝ እና ምንም ነገር በማይቀይርበት ጊዜ የGET ዘዴን መጠቀም አለብዎት። ለምሳሌ፣ የፍለጋ ሞተር ፎርም GET ን መጠቀም ይኖርበታል፣ ምክንያቱም ድረ-ገጽ መፈለግ ደንበኛው ሊያስበው የሚችለውን ማንኛውንም ነገር መለወጥ የለበትም፣ እና የፍለጋ ሞተር መጠይቅን ዕልባት ማድረግ ወይም መሸጎጥ ልክ እንደ ዕልባት ወይም መሸጎጫ ጠቃሚ ነው። የማይንቀሳቀስ HTML ገጽ።

ከ 2 አመት በፊት

ሊብራራ የሚገባው፡-

POST ከGET የበለጠ ደህንነቱ የተጠበቀ አይደለም።

GET vs POSTን የመምረጥ ምክንያቶች እንደ የጥያቄው ዓላማ (መረጃ እያስገቡ ነው?)፣ የጥያቄው መጠን (ዩአርኤል ለምን ያህል ጊዜ ሊቆይ እንደሚችል እና የGET መለኪያዎች ወደ ውስጥ ይላካሉ) ያሉ የተለያዩ ሁኔታዎችን ያካትታሉ። ዩአርኤል)፣ እና ድርጊቱ በቀላሉ ሊጋራ የሚችል እንዲሆን ይፈልጋሉ -- ለምሳሌ፣ Google ፍለጋዎች GET ናቸው ምክንያቱም በቀላሉ ዩአርኤሉን በማጋራት የፍለጋ መጠይቁን ለሌላ ሰው መቅዳት እና ማጋራት ቀላል ያደርገዋል።

GET ከPOST ይልቅ ለማጋራት ቀላል በመሆኑ ደህንነት እዚህ ላይ ትኩረት ሊሰጠው የሚገባ ጉዳይ ነው። ምሳሌ፡ በGET የይለፍ ቃል እንዲላክ አትፈልግም፣ ምክንያቱም ተጠቃሚው የተገኘውን URL ሊያጋራ እና ሳያውቅ የይለፍ ቃላቸውን ሊያጋልጥ ይችላል።

ነገር ግን፣ GET እና POST የኔትወርክ ግንኙነቱን እራሱን ለመጠበቅ TLS/SSL ካላሰማሩ በደንብ በተቀመጠ ተንኮል አዘል ሰው ለመጥለፍ ቀላል ናቸው።

በኤችቲቲፒ (በተለምዶ ወደብ 80) የሚላኩ ሁሉም ቅጾች ደህንነታቸው ያልተጠበቀ ነው፣ እና ዛሬ (2017)፣ የህዝብ ድረ-ገጽ HTTPS እንዳይጠቀም ብዙ ጥሩ ምክንያቶች የሉም (ይህም በመሠረቱ HTTP + Transport Layer Security ነው)።

እንደ ጉርሻ፣ TLS ን ከተጠቀሙ ተጠቃሚዎችዎ በእርስዎ ትራፊክ ውስጥ ያልገቡ ኮድ (ADs) የመግባት አደጋን ይቀንሳሉ።

ጃቫ ስክሪፕት በአሳሽዎ ውስጥ ታግዷል። ጣቢያው እንዲሰራ እባክዎ ጃቫ ስክሪፕትን ያንቁ!

በቅጾች መስራት

የኤችቲኤምኤል ቅጾች መረጃን ከድረ-ገጽ ተጠቃሚ ወደ አገልጋዩ ለማስተላለፍ ያገለግላሉ። ፒኤችፒ ከቅጾች ጋር ​​ለመስራት ብዙ ልዩ መሳሪያዎችን ያቀርባል።

አስቀድሞ የተገለጹ ተለዋዋጮች

ፒኤችፒ በአንድ የተወሰነ አካባቢ ውስጥ በሚሰሩ ሁሉም መተግበሪያዎች ላይ የማይለወጡ በርካታ አስቀድሞ የተገለጹ ተለዋዋጮች አሉት። የአካባቢ ተለዋዋጮች ወይም የአካባቢ ተለዋዋጮች ተብለውም ይጠራሉ. እነሱ የ Apache ድር አገልጋይ አካባቢ ቅንብሮችን ያንፀባርቃሉ፣ እንዲሁም ለዚያ አሳሽ መረጃ ይጠይቃሉ። የኤችቲቲፒ ጥያቄን የዩአርኤል ፣ የመጠይቅ ሕብረቁምፊ እና ሌሎች አካላት እሴቶችን ማግኘት ይቻላል።

ሁሉም አስቀድሞ የተገለጹ ተለዋዋጮች በ$GLOBALS ተባባሪ ድርድር ውስጥ ይገኛሉ። ከአካባቢ ተለዋዋጮች በተጨማሪ፣ ይህ ድርድር በፕሮግራሙ ውስጥ የተገለጹ አለምአቀፍ ተለዋዋጮችን ይዟል።

ምሳሌ 1

የ$GLOBALS አደራደርን በመመልከት ላይ $value) "\$GLOBALS[\"$key\"] == $ እሴትን አስተጋባ
"; ?>

በዚህ ምክንያት የአካባቢ ተለዋዋጮችን ጨምሮ የሁሉም ዓለም አቀፍ ተለዋዋጮች ዝርዝር በስክሪኑ ላይ ይታያል። በብዛት ጥቅም ላይ የዋሉት የሚከተሉት ናቸው-

ተለዋዋጭመግለጫይዘቶች
$_SERVER["HTTP_USER_AGENT"]የደንበኛ ስም እና ስሪትሞዚላ/5.0 (ተኳሃኝ፤ Googlebot/2.1፤ +http://www.google.com/bot.html)
$_SERVER["REMOTE_ADDR"]የአይፒ አድራሻ144.76.78.3
getenv("HTTP_X_FORWARDED_FOR")የደንበኛ የውስጥ አይፒ አድራሻ
$_SERVER["REQUEST_METHOD"]የጥያቄ ዘዴ (GET ወይም POST)አግኝ
$_SERVER["QUERY_STRING"]በGET ጥያቄ፣ ኮድ የተደረገው ውሂብ ከዩአርኤል ጋር ተልኳል።
$_SERVER["REQUEST_URL"]የጥያቄ ሕብረቁምፊን ጨምሮ ሙሉ የደንበኛ አድራሻ
$_SERVER["HTTP_REFERER"]ጥያቄው የቀረበበት ገጽ URL
$_SERVER["PHP_SELF"]ወደ ፕሮግራሙ የሚወስደው መንገድ/index.php
$_SERVER["SERVER_NAME"]ጎራድህረገፅ
$_SERVER["REQUEST_URI"]መንገድ/php/php_form.php

የተጠቃሚ ግብዓት አያያዝ

የPHP ግብአት ማቀናበሪያ ፕሮግራም የግቤት ቅጾችን ከያዘው የኤችቲኤምኤል ጽሁፍ መለየት ወይም በአንድ ገጽ ላይ ሊቀመጥ ይችላል።

ምሳሌ 2

የግቤት ሂደት ምሳሌ

" method="post">

የካርታ ቁጥር፥

እዚህ ምንም የውሂብ ማስተላለፊያ አዝራር የለም፣ ምክንያቱም... አንድ መስክ የያዘ ቅጽ አንድ ቁልፍ ሲጫን በራስ-ሰር ገቢ ይሆናል። .

አንድን አካል ባለ ብዙ ዋጋ ያለው ምርጫ ሲያካሂዱ ሁሉንም የተመረጡ እሴቶችን ለመድረስ በኤለመንት ስም ላይ ጥንድ ካሬ ቅንፎችን ማከል ያስፈልግዎታል። ብዙ ንጥሎችን ለመምረጥ የCtrl ቁልፉን ተጭነው ይያዙ።

ምሳሌ 3.1

ዝርዝር

የምሳሌ 3.1 ውጤት፡-

ምሳሌ 3.2

ዝርዝርን ከ ex1.htm ፋይል በማስኬድ ላይ

    "፤ foreach ($እሴት እንደ $ እሴት) አስተጋባ"
  • $value"፤ አስተጋባ"
"; ?>

ምሳሌ 4. ከአመልካች ሳጥኖች ዋጋዎችን መቀበል

$v) (($v) ከሆነ "የፕሮግራም አወጣጥ ቋንቋ $k ታውቃለህ!
"፤ ሌላ አስተጋባ "የ$k ፕሮግራሚንግ ቋንቋን አታውቀውም።
"; } } ?>
" method="post"> ምን ዓይነት የፕሮግራሚንግ ቋንቋዎችን ታውቃለህ?
ፒኤችፒ
ፐርል

የምሳሌ 4 ውጤት፡-

ምሳሌ 5

"; ?>
" method="post">

ስለ ትክክለኛ የመስክ ስሞች ሳይጨነቁ ቅጾችን ማካሄድ ይችላሉ።

ይህንን ለማድረግ (በማስተላለፊያ ዘዴው ላይ በመመስረት) ተጓዳኝ ድርድር $HTTP_GET_VARS ወይም $HTTP_POST_VARS መጠቀም ይችላሉ። እነዚህ ድርድሮች ለቀረበው ቅጽ ለእያንዳንዱ አካል ስም/እሴት ጥንድ ይይዛሉ። ደንታ ከሌለህ፣ተዛማጅ ድርድር መጠቀም ትችላለህ $_REQUEST .

ምሳሌ 6

የማስተላለፊያ ዘዴ ምንም ይሁን ምን የዘፈቀደ ግቤትን ይያዙ $value) አስተጋባ"$key == $እሴት
"; ?>

ምሳሌ 7፡ የ«@» ኦፕሬተርን በመጠቀም የአዝራር ጠቅታ መያዝ።

">

የራስጌ() ተግባርን በመጠቀም አሳሹን “አካባቢ” የሚል ርዕስ በመላክ ተጠቃሚውን ወደ አዲስ ገጽ ማዞር ይችላሉ።

ለምሳሌ፥

ፋይል ወደ አገልጋዩ በማስተላለፍ ላይ። ፋይሉን ይስቀሉ. ጫን

ፒኤችፒ ፋይሎችን ወደ አገልጋዩ እንዲያስተላልፉ ይፈቅድልዎታል. ፋይል ለማስገባት የታሰበ የኤችቲኤምኤል ቅጽ የ enctype="multipart/form-data" ነጋሪ እሴት መያዝ አለበት።

በተጨማሪም፣ በቅጹ፣ ፋይልን ለመቅዳት ከመስኩ በፊት፣ max_file_size የሚባል የተደበቀ መስክ መኖር አለበት። ከፍተኛው የተላለፈው ፋይል መጠን ወደዚህ የተደበቀ መስክ መፃፍ አለበት (ብዙውን ጊዜ ከ 2 ሜባ ያልበለጠ)።

የፋይል ማስተላለፊያ መስክ ራሱ ከአይነት = "ፋይል" ክርክር ጋር መደበኛ የ INPUT አካል ነው።

ለምሳሌ፥

" method="post">

ፋይሉ ወደ አገልጋዩ ከተላለፈ በኋላ ልዩ ስም ተሰጥቶት በጊዜያዊ የፋይል ማውጫ ውስጥ ይከማቻል። የፋይሉ ሙሉ ዱካ የተጻፈው ይህን ፋይል ለማስተላለፍ ስሙ ከመስክ ስም ጋር ለሚመሳሰል ዓለም አቀፍ ተለዋዋጭ ነው። በተጨማሪም፣ ፒኤችፒ ስለ ተላለፈው ፋይል አንዳንድ ተጨማሪ መረጃዎችን በሌሎች ዓለም አቀፍ ተለዋዋጮች ውስጥ ያከማቻል፡

ምሳሌ 8

የተላለፈውን ፋይል በሂደት ላይ "፤ አስተጋባ" ስም፡ ".$_FILES["userfile"]["ስም"]።"
"; አስተጋባ "መጠን: ".$_FILES["userfile"]["መጠን"]"
"; አስተጋባ" አይነት: ".$_FILES["userfile"]["አይነት"]"
"; } ?>
" method="post">

ፋይሎችን ወደ አገልጋዩ የመስቀል ምሳሌዎች

አገልጋዩ የወረደውን ፋይል በመቀየር ላይ ችግሮች ከተከሰቱ ፣ ምልክቱ ከኮዱ ጋር 0x00በቦታ ተተክቷል (ቁምፊ በኮድ 0x20), ወደ ፋይል ያክሉ httpd.confከ Apache ማውጫ (/ usr/local/apache) የሚከተሉት መስመሮች።

CharsetRecodeMultipartForms ጠፍቷል