PHP හි නැවත හරවා යැවීමක් කරන්නේ කෙසේද?


1288

PHP භාවිතයෙන් පරිශීලකයෙකු වෙනත් පිටුවකට හරවා යැවිය හැකිද?

පරිශීලකයා වෙත ගොස් www.example.com/page.phpමට ඔවුන්ව හරවා යැවීමට අවශ්‍ය යැයි කියන්න, www.example.com/index.phpමෙටා නැවුම්බවක් භාවිතා නොකර මම එය කරන්නේ කෙසේද? එය කළ හැකි ද?

මෙය මගේ පිටු අනවසර පරිශීලකයින්ගෙන් පවා ආරක්ෂා කළ හැකිය.


ඔබට ශීර්ෂකය PHP හි යාවත්කාලීන කළ හැකිය: ශීර්ෂකය
සැක් මාරපේස්

11
Am සෑම්: පැති නෝඩ් සේම, යළි-යොමුවීම් හරහා කිසිදු ආකාරයක ක්‍රියාත්මක නොකරන්නprotection from unauthorized users ; දේවල් කළ යුතු ආකාරය මෙය නොවේ;)
ස්ට්රේ

7
@Strae යළි-යොමුවීම් සමඟ පිටු ආරක්ෂා කිරීමේ වරද කුමක්ද? එවිට හොඳම ක්‍රමය කුමක්ද?

6
@ ප්‍රවින්ද අමරතුංග යළි-යොමුවීම එක් අංගයක් වන නමුත් එය පමණක් නොවේ. අනවසර පරිශීලකයින් සඳහා ආරක්ෂිත මූලද්‍රව්‍ය කිසිසේත් ප්‍රතිදානය නොකරන බවට වග බලා ගන්න; බ්‍රවුසරයේ යළි-යොමුවීම අක්‍රීය කළ හැකිය, උදාහරණයක් ලෙස: බ්‍රව්සරය යළි-යොමුවීම සිදු නොකළේ නම් සහ මුල් පිටුව සාමාන්‍ය පරිදි ප්‍රතිදානය කරනු ලැබේ නම්, පරිශීලකයා දකින්නේ කුමක්ද? CMS සාමාන්යයෙන් යළි-යොමුවීම් කරන්න සහ අනුග්රහයක් පණිවිඩය සමග සාමාන්ය නිමැවුම වෙනුවට, ආරක්ෂා භාණ්ඩ පිටතට doesnt මුද්රිත.
ස්ට්රේ

Ra ප්‍රවින්ද අමරතුංග මාකස්ගේ පිළිතුරෙන් සබැඳිය පරීක්ෂා කරන්න: thedailywtf.com/Articles/WellIntentioned-Destruction.aspx
Strae

Answers:


1714

පවතින පිළිතුරු වල සාරාංශය සහ මගේම ශත දෙක:

1. මූලික පිළිතුර

ඔබට header()නව HTTP ශීර්ෂයක් යැවීමට ශ්‍රිතය භාවිතා කළ හැකිය , නමුත් මෙය ඕනෑම HTML හෝ පෙළකට පෙර බ්‍රව්සරයට යැවිය යුතුය (එබැවින් <!DOCTYPE ...>ප්‍රකාශයට පෙර , උදාහරණයක් ලෙස).

header('Location: '.$newURL);

2. වැදගත් විස්තර

මිය යන්න () හෝ පිටවීම ()

header("Location: http://example.com/myOtherPage.php");
die();

ඔබ භාවිතා කළ යුත්තේ ඇයි die()හෝ exit(): ඩේලි ඩබ්ලිව්ටීඑෆ්

නිරපේක්ෂ හෝ සාපේක්ෂ URL

2014 ජුනි මාසයේ සිට නිරපේක්ෂ හා සාපේක්ෂ URL භාවිතා කළ හැකිය. පරණ RFC 2616 වෙනුවට ආදේශ කළ RFC 7231 බලන්න , එහිදී නිරපේක්ෂ URL පමණක් අවසර දී ඇත.

තත්ව කේත

PHP හි "පිහිටීම" - ශීර්ෂකය තවමත් HTTP 302- සෘජු කේතය භාවිතා කරයි , නමුත් ඔබ භාවිතා කළ යුත්තේ මෙය නොවේ. ඔබ 301 (ස්ථිර යළි-යොමුවීම්) හෝ 303 (වෙනත්) සලකා බැලිය යුතුය .

සටහන: W3C සඳහන් කරන්නේ 303-ශීර්ෂය "බොහෝ පෙර HTTP / 1.1 පරිශීලක නියෝජිතයන් සමඟ නොගැලපෙන බවයි. දැනට භාවිතා කරන බ්‍රව්සර් සියල්ලම HTTP / 1.1 පරිශීලක නියෝජිතයන් වේ. මකුළුවන් සහ රොබෝවරු වැනි බොහෝ පරිශීලක නියෝජිතයින් සඳහා මෙය සත්‍ය නොවේ.

3. ප්‍රලේඛනය

HTTP ශීර්ෂයන් සහ header()PHP හි ක්‍රියාකාරිත්වය

4. විකල්ප

PECL පැකේජය ස්ථාපනය කිරීමට http_redirect($url);අවශ්‍ය විකල්ප ක්‍රමය ඔබට භාවිතා කළ හැකිය.

5. උපකාරක කාර්යයන්

මෙම ශ්‍රිතය 303 තත්ව කේතය ඇතුළත් නොකරයි:

function Redirect($url, $permanent = false)
{
    header('Location: ' . $url, true, $permanent ? 301 : 302);

    exit();
}

Redirect('http://example.com/', false);

මෙය වඩාත් නම්‍යශීලී වේ:

function redirect($url, $statusCode = 303)
{
   header('Location: ' . $url, true, $statusCode);
   die();
}

6. වර්කරවුන්ඩ්

සඳහන් කළ පරිදි header()යළි-යොමුවීම් ක්‍රියාත්මක වන්නේ කිසිවක් ලිවීමට පෙර පමණි. සාමාන්‍යයෙන් HTML ප්‍රතිදානය ඉල්ලුවහොත් ඒවා අසමත් වේ. එවිට ඔබට HTML ශීර්ෂක ක්‍රියාමාර්ගයක් භාවිතා කළ හැකිය (ඉතා වෘත්තීය නොවේ!):

 <meta http-equiv="refresh" content="0;url=finalpage.html">

හෝ ජාවාස්ක්‍රිප්ට් යළි-යොමුවීමක් පවා.

window.location.replace("http://example.com/");

5
මෙම පිළිතුර සමඟ ඇති සමහර ගැටලු: 303 “නිවැරදි” තත්ව කේතය නොවිය හැකිය. උදාහරණයක් ලෙස ගූගල් සඳහා 301 ක් අවශ්‍ය විය හැකිය. දෙවනුව, header('Location: '.$newURL);ඕනෑම HTML (හෝ පෙළ) බ්‍රව්සරයට ලබා දීමට පෙර විය යුතුය, නැතහොත් එය නිවැරදිව ක්‍රියා නොකරනු ඇත.
චක් ලෙ බට්

7
දෛනික ඩබ්ලිව්ටීඑෆ් කතාව පොදු එකක් වීම කනගාටුවට කරුණකි. කෙසේ වෙතත්, එය අතුරුදහන් වූ ඩයි නොව ගැටළුවට හේතුව නරක නිර්මාණයකි. 99.9% ක් තුළ ක්‍රියාවලිය ප්‍රචණ්ඩ ලෙස වසා දැමීම වැරදිය. පොදු, පිරිසිදු විසඳුමක් (කෙසේ වෙතත් මගේ ප්‍රියතම නොවේ) යළි-යොමුකිරීමේ එක්සෙප්ෂන් එකක් විසි කර එය ඔබගේ යෙදුම් ප්‍රවේශ ස්ථානයට අල්ලා ගැනීමයි. ඊට පසු ඔබට ඔබගේ "පසු *" ඇමතුම් ලබා ගත හැකිය (ලොග් / සමීප සම්බන්ධතා / කවදා හෝ)
robertodecurnex

4
මෙම http-equiv="Location"සියලු බ්රව්සර් විසින් පහසුකම් සපයන්නේ නැත. refreshඒ වෙනුවට ඔබ භාවිතා කළ යුතුය ! <meta http-equiv="refresh" content="0;url=http://example.com/">
Timo002

73
ඔබ අදහස් කරන්නේ නම් මිස 301 නිකුත් නොකරන්න . 301 යන්නෙන් අදහස් වන්නේ ස්ථිර සහ ස්ථිර යන්න ස්ථිරයි , එයින් අදහස් වන්නේ එය පරිශීලක නියෝජිතයන් විසින් හැඹිලිගත කරනු ඇති බවයි, එහි අර්ථය වන්නේ දිගු, කැෆේන් පිරවූ රාත්‍රීන් යෙදුම් ලොග් දෙස බලා සිටීමයි. දෙවියන් වහන්සේට එය ඔබගේ යන්ත්‍රය මත ක්‍රියාත්මක වන නමුත් සේවාදායකයාගේ නොවේ. ඔබ අනිවාර්යයෙන්ම 301 අමතන්න නම්, සම්පත මත හැඹිලි පාලක උපරිම වයස යොදන්න. ඔබට අසීමිත ප්‍ර wisdom ාවක් නොමැති අතර ඔබ මෙන් ක්‍රියා නොකළ යුතුය.
මඩුම්ලාවෝ

2
නමුත් පිටවීම ඉක්මවා ඩයි භාවිතා කිරීමට හේතුවක් තිබේද? පිටවීම පිරිසිදු හා වඩා සුදුසු බව පෙනේ.
ars265

125

HTTP ශීර්ෂයක් යැවීමට header()ශ්‍රිතය භාවිතා කරන්න :Location

header('Location: '.$newURL);

සමහරු සිතන දෙයට පටහැනිව, die()යළි හරවා යැවීම සමග කිසිදු සම්බන්ධයක් නැත. සාමාන්‍ය ක්‍රියාත්මක කිරීම වෙනුවට නැවත හරවා යැවීමට අවශ්‍ය නම් පමණක් එය භාවිතා කරන්න .

ගොනුව example.php :

<?php
    header('Location: static.html');
    $fh = fopen('/tmp/track.txt', 'a');
    fwrite($fh, $_SERVER['REMOTE_ADDR'] . ' ' . date('c') . "\n");
    fclose($fh);
?>

මරණ තුනක ප්‍රති ult ල:

bart@hal9k:~> cat /tmp/track.txt
127.0.0.1 2009-04-21T09:50:02+02:00
127.0.0.1 2009-04-21T09:50:05+02:00
127.0.0.1 2009-04-21T09:50:08+02:00

නැවත ආරම්භ කිරීම - අනිවාර්ය die()/ exit()යනු සැබෑ PHP සමඟ කිසිදු සම්බන්ධයක් නැති සමහර නාගරික පුරාවෘත්තයකි. සේවාදායකයා Location:ශීර්ෂයට "ගරු කිරීම" සමඟ කිසිදු සම්බන්ධයක් නැත . සේවාදායකයා භාවිතා කළද, ශීර්ෂයක් යැවීමෙන් PHP ක්‍රියාත්මක කිරීම නතර නොවේ.


8
die () හෝ පිටවීම () යනු "පිහිටීම: ..." ශීර්ෂයට ගරු නොකරන සේවාදායකයින් සඳහා ය
headw

13
la ක්ලවර්: නැත, exit()ඉතිරි අන්තර්ගතය පිටුව පෙන්වීම වැළැක්වීමයි (සීමිත පිටු සිතන්න). vartec හරි, එයට HTTP ස්ථාන ශීර්ෂය සමඟ කිසිදු සම්බන්ධයක් නැති අතර ඔබට අවශ්‍ය නැත exit. මම එය මගේ පිළිතුරට ඇතුළත් කිරීමට තෝරා ගත්තෙමි, මන්ද, සරල යළි-යොමුවීමක් කරන්නේ කෙසේදැයි නොදන්නා කෙනෙකුට, සරල හා තීරණාත්මක පියවරක් ක්‍රියාත්මක නොකිරීමට වඩා ආරක්ෂිතව ක්‍රීඩා කළ හැකි නිසා උසස් ක්‍රියාවලියෙන් ප්‍රයෝජන ගැනීමට ඔහුට හැකි වේ. පාලනය.
ඇලික්ස් ඇක්සෙල්

1
නමුත් ශීර්ෂයට ගරු කරන බ්‍රව්සර් පිටුවෙන් ඉවත්ව ඔබගේ ස්ක්‍රිප්ට් ක්‍රියාත්මක වන අතරතුර සම්බන්ධතාවය වසා දමයි. මෙය මුළුමනින්ම නරක ය. PHP යම් කාලයක් සඳහා ස්ක්‍රිප්ට් සමඟ ඉදිරියට යනු ඇත (ඔබේ කේතය ක්‍රියාත්මක වන්නේ එබැවිනි) නමුත් ක්‍රියාත්මක කිරීමේදී අහඹු ලෙස එය නවතා දැමිය හැකිය. Ignore_user_abort () ඇමතීමෙන් මෙය වලක්වනු ඇත, නමුත් අවංකවම මම එය වටින්නේ නැත. ඔබේ HTML ලිවීමේ දේවල් සමඟ ඉදිරියට යන්න (බොහෝ විට නිෂ් less ල වුවත්) නමුත් ශීර්ෂයකට පසු තැටියේ හෝ දත්ත ගබඩාවේ ලියන දේවල් නොකරන්න ('ස්ථානය:'); හැකි නම් යළි-යොමුවීමට පෙර තැටියට ලියන්න. [එසේම: url නිරපේක්ෂ විය යුතුය.]
ෆ්‍රැන්චෙස්කෝ

බ්‍රව්සරය HTTP ප්‍රොටෝකෝලය හඳුනා ගැනීමට පෙර නැවත හරවා යැවීමට ක්‍රමයක් තිබේද? මට නැවත හරවා යැවීමට හේතුව මගේ සියලු වසම් සඳහා ප්‍රමාණවත් SSL සහතික ලබා ගැනීමට නොහැකි වීමයි. මම .htaccessනැවත හරවා යැවීමට භාවිතා කරමි , නමුත් අවසාන වසමට හරවා යැවූ කුමන වසමකට කෙසේ හෝ සමත් වීමට මට ක්‍රමයක් අවශ්‍යද?
oldboy

109
function Redirect($url, $permanent = false)
{
    if (headers_sent() === false)
    {
        header('Location: ' . $url, true, ($permanent === true) ? 301 : 302);
    }

    exit();
}

Redirect('http://www.google.com/', false);

මැරෙන්න අමතක කරන්න එපා () / පිටවීම ()!


6
ප්‍රතිදාන බෆරින් කිරීම අමතක නොකරන්න, නැතහොත් ඔබ 'දැනටමත් යවා ඇති ශීර්ෂයන්' සමඟ අවසන් වේ.
කුරොකි කේස්

8
... තත්පර කිහිපයකින් ඔබව p නෙපේජ් වෙත හරවා යවනු ලැබේ, යළි-යොමුවීමක් සිදු නොවන්නේ නම් මෙහි සබැඳිය ක්ලික් කරන්න "වැනි සොම්ටින් මුද්‍රණය කිරීම අමතක නොකරන්න. සමහර බ්‍රව්සරය සහ සමහර බ්‍රව්සරයේ සැකසුම් එම යළි-යොමුවීම අසාර්ථක විය හැකිය.
ස්ට්රේ

3
A ඩැනියෙල්: මෙම ආකාරයේ යළි-යොමුවීම් "තත්පර n" ගත නොවේ. එය කිසිසේත් සිදු නොවන්නේ නම් එය ක්ෂණික වනු ඇති අතර ඕනෑම අනුකූල බ්‍රව්සරයක් එය හැසිරවිය යුතුය. මම හිතන්නේ ඔබ සිතන්නේ වඩා හොඳ දැනුමක් නොමැති විට මිනිසුන් භාවිතා කරන "මෙටා නැවුම්බව" යළි-යොමුවීම් ගැන ය.
rmeador

1
mermeador ... පැරණි බ්‍රව්සර් සහ විශේෂිත බ්‍රව්සර් සඳහා. මෙටා-යළි-යොමුවීම් අසමත් වුවහොත් "ඔබ තත්පර x කින් පිටුවට හරවා යවනු ලැබේ" යන සබැඳිය සමඟ මෙටා-යළි-යොමුවීමක් අසමත් වුවහොත් ඔබ පළමුව ඔබේ ස්ථාන ශීර්ෂය කළ යුතුය. යළි-යොමුවීමක් කිරීමේ නිසි හා අසාර්ථක-ආරක්ෂිත ක්‍රමය එයයි.
මුවර්

3
ඇන්ඩ rew: HTTP බ්‍රව්සරය ස්ථානයට ගරු නොකරන්නේ කෙසේද :?
vartec

102

ප්‍රතිරාවය භාවිතා කරමින් PHP වෙතින් ජාවාස්ක්‍රිප්ට් ප්‍රතිදානය කරන්න.

echo '<script type="text/javascript">
           window.location = "http://www.google.com/"
      </script>';

ඔබ පිටු ප්‍රතිදානය බෆර් කර පසුව යළි-යොමුවීම් තත්ත්වය පරීක්ෂා නොකරන්නේ නම් ඔබට එය PHP වලින් කළ නොහැක. එය බොහෝ කරදරයක් විය හැකිය. පිටුවෙන් යවන පළමු දෙය ශීර්ෂයන් බව මතක තබා ගන්න. බොහෝ යළි-යොමුවීම් සාමාන්‍යයෙන් පසුව පිටුවෙහි අවශ්‍ය වේ. ඒ සඳහා ඔබ පිටුවේ සියලුම ප්‍රතිදානයන් බෆර් කර නැවත හරවා යැවීමේ තත්වය පරීක්ෂා කළ යුතුය. එම අවස්ථාවේදී ඔබට පිටු පරිශීලක ශීර්ෂය () නැවත හරවා යැවීමට හෝ ස්වාරක්ෂක ප්‍රතිදානය ප්‍රතිරාවය කිරීමට හැකිය.

බෆරින් පිළිබඳ වැඩි විස්තර සඳහා (වාසි)

ප්‍රතිදාන බෆරින් යනු කුමක්ද?


2
සරල හා වැදගත් පිළිතුර! සරල පිටු යළි හරවා යැවීම සඳහා විශිෂ්ටයි!
ස්ටැටිස් ඇන්ඩ්‍රොනිකොස්

ඒ ආකාරයෙන් ඔබ පොදු Cannot modify header information - headers already sent byදෝෂයට හසු නොවේ .
කයි නොක්

1
mhmd, ජාවාස්ක්‍රිප්ට් අක්‍රිය කර ඇත්නම් කුමක් කළ යුතුද?
ඉස්තියැක් අහමඩ්

StIstiaqueAhmed javascript මේ දිනවල සෑම විටම පාහේ සක්‍රීය කර ඇති නමුත් එය අක්‍රිය කර ඇත්නම් ඔබට PHP බෆරය භාවිතා කළ හැකිය. මෙම SO ප්‍රශ්නය එයට පිළිතුරු සපයයි. ඔබ PHP බෆරින් භාවිතා කරන්නේ නම් ඔබට මෙම ක්‍රමය අවශ්‍ය නොවේ.
හමඩ් ඛාන්

අසත්‍යය, ඔබට එය බෆරයකින් තොරව PHP තුළ කළ හැකිය (සහ කළ යුතුය): හොඳින් සැලසුම් කරන ලද පිටුවක ඕනෑම HTML අන්තර්ගතයක් පරිශීලකයා වෙත යැවීමට පෙර අදාළ සියලු PHP සැකසුම් සිදුවිය යුතුය. එමගින් PHP යළි-යොමුවීම් හොඳින් ක්‍රියාත්මක වේ.
MestreLion

91

1. සමඟ ශීර්ෂ ශ්‍රිතය භාවිතා කිරීම exit()

<?php 
     header('Location: target-page.php');
     exit();
?>

නමුත් ඔබ ශීර්ෂ ශ්‍රිතය භාවිතා කරන්නේ නම්, සමහර විට ඔබට ශීර්ෂ යැවීමට පෙර දෝංකාරය හෝ මුද්‍රණය නොකෙරෙන හෝ ඔබට ශීර්ෂක ශ්‍රිතය භාවිතා කිරීමෙන් පසුව die()හෝ exit()පසුව විසඳා ගැනීමට “දැනටමත් යවන ශීර්ෂකය වැනි අනතුරු ඇඟවීමක්” ලැබෙනු ඇත .

2. ශීර්ෂයක් නොමැතිව

<?php 
    echo "<script>location.href='target-page.php';</script>";
?>

මෙහිදී ඔබට කිසිදු ගැටලුවකට මුහුණ නොදෙනු ඇත

3. ob_start()සහ සමඟ ශීර්ෂ ශ්‍රිතය භාවිතා කිරීමob_end_flush()

<?php
ob_start(); //this should be first line of your page
header('Location: target-page.php');
ob_end_flush(); //this should be last line of your page
?>

චාම් එකක් වගේ වැඩ කරන්න. මම <? Php echo "<script> location.href = ' google.fr/ ' ; </script>" භාවිතා කරමි ; ?> එය පරීක්ෂා කිරීම සඳහා, එය මට අවශ්‍ය දේ කළා
DoctorDroid Haiti

55

මෙම පිළිතුරු බොහොමයක් ඉතා වැදගත් පියවරක් අමතක කිරීමකි !

header("Location: myOtherPage.php");
die();

එම වැදගත් දෙවන පේළියෙන් ඉවත්වීමෙන් ඔබ ඩේලි ඩබ්ලිව්ටීඑෆ් හි අවසානය දැකිය හැකිය . ප්රශ්නය බ්රව්සර වන්නේ නැත ඇති නිසා ශීර්ෂ නොසලකා කරමින්, පිටුව ඉතිරි යළි-යොමුවීම් තොරව ක්රියාත්මක කරනු ලබන ඔබගේ පිටුව හිලව් වශයෙන්, ශීර්ෂ ගරු කිරීමට.


1
ස්ක්‍රිප්ට් විනාශ කිරීමට පෙර පරිශීලකයාට යම් ප්‍රතිදානයක් ලබා දීම ගැන කුමක් කිව හැකිද? ඔබ දන්නවා, සිදුවන්නේ කුමක්ද යන්න දැන ගැනීමට මිනිසුන් කැමතියි ...
ස්ට්රේ

3
ඔබ උපකල්පනය කරන්නේ තිර රචනය නැවත හරවා යැවීම හැර වෙන කිසිවක් කළ නොහැකි බවයි. එය කිසිසේත්ම සත්‍ය නොවිය හැකිය.
vartec

14
A ඩැනියෙල්: එය මියයෑමට වෙනස් කරන්න ("මගේ ශීර්ෂ නොසලකා හැරීම නවත්වන්න!")
nickf

3
die();ඔබ ලබා දුන් එම සරල පැහැදිලි කිරීමට මම කැමතියි - ඔබ එය නොකරන්නේ නම්, ඔබ එය භාවිතා කරන්නේ නම් පරිශීලකයාට සම්පූර්ණ පිටුව මොහොතකට දැක ගත හැකිය; පරිශීලකයා හරවා යවනු ලබන අතර තාවකාලික අන්තර්ගත
දෝෂයක්

ශීර්ෂකය යැවීමෙන් පසුව, බ්‍රව්සරයට කිසිවක් නොයවන ක්‍රියාකාරකම්, නමුත් ක්‍රියාකාරකම් ලොග් කිරීම හෝ පටිගත කිරීමේ ගනුදෙනු අවසන් කිරීමෙන් පසුව ප්‍රයෝජනවත් ක්‍රියාකාරකම් සිදුවිය හැකිය. මෙම හේතුව නිසා, මියයාමේ / පිටවීමේ අවශ්‍යතාවය පිටපත මත රඳා පවතී.
ඩෑන්ඇලන්

29

භාවිත:

<?php header('Location: another-php-file.php'); exit(); ?>

නැතහොත් ඔබ දැනටමත් PHP ටැග් විවෘත කර ඇත්නම්, මෙය භාවිතා කරන්න:

header('Location: another-php-file.php'); exit();

ඔබට බාහිර පිටු වෙත හරවා යැවිය හැකිය, උදා:

header('Location: https://www.google.com'); exit();

ඔබ ඇතුළත් කිරීමට exit()හෝ ඇතුළත් කිරීමට වග බලා ගන්න die().


25

පිටු වලට ප්‍රවේශය පාලනය කිරීමට සහ වලංගු පරිශීලකයින්ට බලය පැවරීමට ඔබට සැසි විචල්‍යයන් භාවිතා කළ හැකිය:

<?php
    session_start();

    if (!isset( $_SESSION["valid_user"]))
    {
        header("location:../");
        exit();
    }

    // Page goes here
?>

http://php.net/manual/en/reserved.variables.session.php .

මෑතකදී, මම සයිබර් ප්‍රහාර ලබාගෙන තීරණය කළෙමි, පරිපාලක පැනලයට පිවිසීමට උත්සාහ කරන පරිශීලකයින් හෝ වෙබ් යෙදුමේ වෙන් කර ඇති කොටසක් දැන ගැනීමට මට අවශ්‍ය විය.

එබැවින්, මගේ දත්ත ගබඩාවට කරදර වීමට අවශ්‍ය නැති නිසා, මම IP ලිපිනය සහ පරිශීලක සැසි සඳහා පෙළ ගොනුවක ලොග් ප්‍රවේශයක් එක් කළෙමි.


19

මෙම පිළිතුරු බොහොමයක් නිවැරදි ය, නමුත් ඔවුන් ඔබට නිරපේක්ෂ URL එකක් ඇතැයි උපකල්පනය කරයි, එය එසේ නොවිය හැකිය. ඔබට සාපේක්ෂ URL එකක් භාවිතා කර ඉතිරිය ජනනය කිරීමට අවශ්‍ය නම් ඔබට මේ වගේ දෙයක් කළ හැකිය ...

$url = 'http://' . $_SERVER['HTTP_HOST'];            // Get the server
$url .= rtrim(dirname($_SERVER['PHP_SELF']), '/\\'); // Get the current directory
$url .= '/your-relative/path-goes/here/';            // <-- Your relative path
header('Location: ' . $url, true, 302);              // Use either 301 or 302

16

header( 'Location: http://www.yoursite.com/new_page.html' );


බ්‍රව්සරය HTTP ප්‍රොටෝකෝලය හඳුනා ගැනීමට පෙර නැවත හරවා යැවීමට ක්‍රමයක් තිබේද? මට නැවත හරවා යැවීමට හේතුව මගේ සියලු වසම් සඳහා ප්‍රමාණවත් SSL සහතික ලබා ගැනීමට නොහැකි වීමයි. මම .htaccessනැවත හරවා යැවීමට භාවිතා කරමි , නමුත් අවසාන වසමට හරවා යැවූ කුමන වසමකට කෙසේ හෝ සමත් වීමට මට ක්‍රමයක් අවශ්‍යද?
oldboy

16

පහත කේතය භාවිතා කරන්න:

header("Location: /index.php");
exit(0);   

14

මම දැනටමත් මෙම ප්‍රශ්නයට පිළිතුරු දී ඇත, නමුත් මේ අතර මම CLI හි ධාවනය කරන්නේ නම් විශේෂ අවස්ථා ඇති බව මම දැනගත්තෙමි (යළි-යොමුවීම් සිදුවිය නොහැකි අතර එසේ නොවිය යුතුය exit()) හෝ ඔබේ වෙබ් සේවාදායකය නම් (F) CGI ලෙස PHP ධාවනය කිරීම ( Statusනිසි ලෙස හරවා යැවීමට කලින් සකසා ඇති ශීර්ෂයක් අවශ්‍ය වේ).

function Redirect($url, $code = 302)
{
    if (strncmp('cli', PHP_SAPI, 3) !== 0)
    {
        if (headers_sent() !== true)
        {
            if (strlen(session_id()) > 0) // If using sessions
            {
                session_regenerate_id(true); // Avoids session fixation attacks
                session_write_close(); // Avoids having sessions lock other requests
            }

            if (strncmp('cgi', PHP_SAPI, 3) === 0)
            {
                header(sprintf('Status: %03u', $code), true, $code);
            }

            header('Location: ' . $url, true, (preg_match('~^30[1237]$~', $code) > 0) ? $code : 302);
        }

        exit();
    }
}

මම ද විවිධ HTTP හරවා යැවීමේ කේත සහාය ප්රශ්නය (කටයුතු කරනවා 301, 302, 303හා 307එය මීට කලින් මගේ පිළිතුර අදහස් අමතන ලදී ලෙස,). විස්තර මෙහි දැක්වේ:

  • 301 - ස්ථිරවම ගෙන යන ලදී
  • 302 - හමු විය
  • 303 - වෙනත් බලන්න
  • 307 - තාවකාලික යළි-යොමුවීම (HTTP / 1.1)

12

නරඹන්නා වෙනත් පිටුවකට හරවා යැවීමට (කොන්දේසි සහිත පුඩුවක් තුළ විශේෂයෙන් ප්‍රයෝජනවත් වේ), පහත කේතය භාවිතා කරන්න:

<?php
    header('Location: mypage.php');
?>

මෙම අවස්ථාවේදී, mypage.phpඔබ අමුත්තන් හරවා යැවීමට කැමති පිටුවේ ලිපිනය වේ. මෙම ලිපිනය නිරපේක්ෂ විය හැකි අතර මෙම ආකෘතියේ පරාමිතීන් ද ඇතුළත් විය හැකිය:mypage.php?param1=val1&m2=val2)

සාපේක්ෂ / නිරපේක්ෂ මාවත

සාපේක්ෂ හෝ නිරපේක්ෂ මාර්ග සමඟ කටයුතු කරන විට, සේවාදායකයේ මූලයෙන් (DOCUMENT_ROOT) නිරපේක්ෂ මාර්ගයක් තෝරා ගැනීම වඩාත් සුදුසුය. පහත ආකෘතිය භාවිතා කරන්න:

<?php
    header('Location: /directory/mypage.php');
?>

ඉලක්ක පිටුව වෙනත් සේවාදායකයක තිබේ නම්, ඔබ සම්පූර්ණ URL එක ඇතුළත් කරයි:

<?php
    header('Location: http://www.ccm.net/forum/');
?>

HTTP ශීර්ෂයන්

HTTP ප්‍රොටෝකෝලය අනුව, HTTP ශීර්ෂයන් beforeඕනෑම ආකාරයක අන්තර්ගතයක් යැවිය යුතුය . මෙයින් අදහස් කරන්නේ ශීර්ෂයට පෙර කිසිඳු අක්ෂර යැවිය යුතු නැති බවයි - හිස් ඉඩක්වත් නැත!

තාවකාලික / ස්ථිර යළි-යොමුවීම්

පෙරනිමියෙන්, ඉහත ඉදිරිපත් කර ඇති යළි-යොමුවීම් වර්ගය තාවකාලික එකකි. මෙයින් අදහස් කරන්නේ ගූගල් සෙවුම් වැනි සෙවුම් යන්ත්‍ර සුචිගත කිරීමේදී නැවත හරවා යැවීම සැලකිල්ලට නොගන්නා බවයි.

පිටුවක් ස්ථිරවම වෙනත් ස්ථානයකට ගෙන ගොස් ඇති බව සෙවුම් යන්ත්‍ර වෙත දැනුම් දීමට ඔබ කැමති නම්, පහත කේතය භාවිතා කරන්න:

<?
    header('Status: 301 Moved Permanently', false, 301);
    header('Location: new_address');
?>

උදාහරණයක් ලෙස, මෙම පිටුවට පහත කේතය ඇත:

<?
    header('Status: 301 Moved Permanently', false, 301);
    header('Location: /pc/imprimante.php3');
    exit();
?>

ඔබ ඉහත සබැඳිය ක්ලික් කළ විට, ඔබ ස්වයංක්‍රීයව මෙම පිටුවට හරවා යවනු ලැබේ. එපමණක් නොව, එය ස්ථිර යළි හරවා යැවීමකි (තත්වය: 301 ස්ථිරවම ගෙන යනු ලැබේ). එබැවින්, ඔබ පළමු URL එක ගූගල් වෙත ටයිප් කළහොත්, ඔබ ස්වයංක්‍රීයව දෙවන, යළි හරවා යැවූ සබැඳිය වෙත හරවා යවනු ලැබේ.

PHP කේතය අර්ථ නිරූපණය කිරීම

() හි ශීර්ෂයට පසුව පිහිටා ඇති PHP කේතය සේවාදායකයා විසින් අර්ථ නිරූපණය කරනු ඇත, ආගන්තුකයා යළි-යොමුකිරීමේ නිශ්චිතව දක්වා ඇති ලිපිනයට මාරු වුවද. බොහෝ අවස්ථාවන්හීදී, මෙයින් අදහස් කරන්නේ සේවාදායකයේ බර අඩු කිරීම සඳහා header()ශ්‍රිතයේ ක්‍රියාකාරිත්වය අනුගමනය කිරීමට ඔබට ක්‍රමයක් අවශ්‍ය බවයි exit():

<?
    header('Status: 301 Moved Permanently', false, 301);
    header('Location: address');
    exit();
?>

ඇයි (දෙවන ඡේදයේ අවසානයේ)? ඔබ &paraඒ වෙනුවට අදහස් කළේ (ඉතින් මුළු කියවීමම mypage.php?param1=val1&param2=val2))? (HTML වස්තු පරාසය ) "¶" - සමහර විට සමහර බාහිර වැඩසටහන් පරිවර්තනයක් කර තිබේද?).
පීටර් මෝර්ටෙන්සන්

9

භාවිත:

<?php
    header('Location: redirectpage.php');
    header('Location: redirectpage.php');
    exit();
    echo "<script>location.href='redirectpage.php';</script>";
?>

මෙය සාමාන්‍ය සහ සාමාන්‍ය PHP යළි-යොමුවීමක් වන නමුත් ඔබට පහත කේතය මඟින් තත්පර කිහිපයක් රැඳී සිට නැවත හරවා යැවීමේ පිටුවක් කළ හැකිය:

<?php
    header('refresh:5;url=redirectpage.php '); // Note: here 5 means 5 seconds wait for redirect.
?>

7

අර්ථකථන වෙබ් අඩවිය ආසන්නයේ දී, නිවැරදි බව සලකා බැලිය යුතු දෙයකි. අවාසනාවකට මෙන්, PHP හි "පිහිටීම" - ශීර්ෂකය තවමත් HTTP 302 - සෘජු කේතය භාවිතා කරයි , එය හරවා යැවීම සඳහා හොඳම එක නොවේ. ඒ වෙනුවට එය භාවිතා කළ යුත්තේ 303 ය .

303-ශීර්ෂය "බොහෝ පෙර HTTP / 1.1 පරිශීලක නියෝජිතයන්" සමඟ නොගැලපෙන බව සඳහන් කිරීමට W3C කාරුණික වන අතර එය වර්තමාන භාවිතයේ කිසිදු බ්‍රව්සරයකට සමාන නොවේ. ඉතින්, 302 ධාතූන් වහන්සේ ය, එය භාවිතා නොකළ යුතුය.

... නැත්නම් ඔබට එය නොසලකා හැරිය හැකිය, අනෙක් සියල්ලන් මෙන් ...


7

ඔබට පහත වැනි ජාවාස්ක්‍රිප්ට් ක්‍රම කිහිපයක් භාවිතා කළ හැකිය

  1. self.location="http://www.example.com/index.php";

  2. window.location.href="http://www.example.com/index.php";

  3. document.location.href = 'http://www.example.com/index.php';

  4. window.location.replace("http://www.example.com/index.php");


ඔබ සොයන දේ හෝ නොවිය හැකි සේවාදායකයා මත ජාවාස්ක්‍රිප්ට් ක්‍රියාත්මක වේ.
චාර්වි

7

ඔව්, ඔබට ශීර්ෂක () ශ්‍රිතය භාවිතා කළ හැකිය ,

header("Location: http://www.yourwebsite.com/user.php"); /* Redirect browser */
exit();

පහත දැක්වෙන කේත ක්‍රියාත්මක කිරීම වළක්වා ගැනීම සඳහා ශ්‍රිතයෙන් පසු පිටවීමේ () ශ්‍රිතය ඇමතීමද හොඳම ක්‍රියාවයි header().

ප්‍රලේඛනයට අනුව, header()ඕනෑම සත්‍ය ප්‍රතිදානයක් යැවීමට පෙර ඇමතිය යුතුය.


6

මෙහි සිටින අනෙක් අය කීවාක් මෙන්, ස්ථාන ශීර්ෂය සමඟ යවන්නේ:

header( "Location: http://www.mywebsite.com/otherpage.php" );

නමුත් ඔබ වෙනත් ප්‍රතිදානයක් බ්‍රව්සරයට යැවීමට පෙර එය කළ යුතුය.

තවද, ඔබ සඳහන් කළ පරිදි, සත්‍යාපනය නොකළ පරිශීලකයින් සමහර පිටුවලින් අවහිර කිරීමට ඔබ මෙය භාවිතා කිරීමට යන්නේ නම්, සමහර පරිශීලක නියෝජිතයන් මෙය නොසලකා හැර වර්තමාන පිටුවෙහි කෙසේ හෝ ඉදිරියට යනු ඇති බව මතක තබා ගන්න , එවිට ඔබ මිය යා යුතුය ( ) ඔබ එය යැවූ පසු.


but you need to do it before you've sent any other output to the browser. නියමයි !! දැනටමත් යවන ලද ශීර්ෂයන් මට ලැබුණේ ඇයිද යන්න පිළිබඳව මිනිත්තු ගණනක් සෙව්වා. +1 !!
ජොෂ්

වඩාත් පොදුවේ, ඔබේ ස්ක්‍රිප්ට් එක සම්පූර්ණයෙන්ම / නතර කර ඇත. die()එය කිරීමට එක් ක්‍රමයක් පමණි.
මෝගන්රා

6

මෙන්න මගේ සිතුවිලි:

IMHO, පැමිණෙන ඉල්ලීමක් හරවා යැවීමට හොඳම ක්‍රමය වනුයේ ස්ථාන ශීර්ෂ භාවිතා කිරීමයි

<?php
    header("Location: /index.php");
?>

මෙම ප්‍රකාශය ක්‍රියාත්මක කර ප්‍රතිදානය යැවූ පසු බ්‍රව්සරය පරිශීලකයා නැවත යොමු කිරීමට පටන් ගනී. කෙසේ වෙතත්, ශීර්ෂ යැවීමට පෙර කිසිදු ප්‍රතිදානයක් (කිසිදු echo / var_dump) නොතිබූ බවට වග බලා ගන්න, එසේ නොවුවහොත් එය දෝෂ වලට තුඩු දෙනු ඇත.

මුලින් ඉල්ලා සිටි දෙය සාක්ෂාත් කර ගැනීම සඳහා මෙය ඉක්මන් හා අපිරිසිදු ක්‍රමයක් වුවද, අවසානයේදී එය එස්.ඊ.ඕ ව්‍යසනයක් බවට පත්වනු ඇත, මේ ආකාරයේ යළි-යොමුවීම් සෑම විටම 301/302 යළි-යොමුවීමක් ලෙස අර්ථකථනය කරනු ලැබේ, එබැවින් සෙවුම් යන්ත්‍ර නිතරම ඔබේ දකිනු ඇත දර්ශක පිටුව නැවත යොමු කරන ලද පිටුවක් ලෙස මිස ගොඩබෑමේ පිටුවක / ප්‍රධාන පිටුවක දෙයක් නොවේ.

එබැවින් එය වෙබ් අඩවියේ SEO සැකසුම් වලට බලපානු ඇත.


1
පිටවීම () ශීර්ෂය ()
EKanadily

@docesam .. එකඟයි .. පිටවීම () ශීර්ෂක () ඇමතුමෙන් පසු වහාම ඇමතිය යුතුය. කෙසේ වෙතත් මට හැඟෙන්නේ, මෙම ශීර්ෂක () ප්‍රකාශයෙන් පසුව බ්‍රව්සරයට වැඩි ප්‍රතිදානයක් නොමැති නම්, පිටවීම () අවශ්‍ය නොවනු ඇත - මගේ මතය පමණි
භාස්කර් ප්‍රමානික්

ඔව්, නමුත් ඔබ එය පැහැදිලි කළ යුත්තේ යමෙකුට ඔබේ කේත රේඛාව ඔහුගේ පිටපතට පිටපත් කළ හැකි නිසාත්, වැරැද්ද කුමක්දැයි හදුනා ගැනීම සඳහා තමා වටා බොහෝ වේලාවක් රවුම් වීමටත් ඉඩ ඇති බැවිනි.
EKanadily

1
H භස්කර්ප්‍රමානික් සිතන්නේ ඔබට ඉක්මනින් දොරක් අගුළු දැමිය යුතු බවයි, නමුත් එය දැනටමත් අගුලු දමා තිබේද නැද්ද යන්න තහවුරු කර ගැනීම සඳහා ඔබ ඒවා නැවත අදින්න / තල්ලු කරන්න / බිඳ දැමිය යුතුයි ..
aswzen

5

PHP සමඟ හරවා යැවීමට හොඳම ක්‍රමය පහත කේතයයි ...

 header("Location: /index.php");

කිසිදු කේතයක් පසුව ක්‍රියා නොකරන බවට වග බලා ගන්න

header("Location: /index.php");

සියලුම කේත ඉහත පේළියට පෙර ක්‍රියාත්මක කළ යුතුය.

සිතමු,

නඩු අංක 1:

echo "I am a web developer";
header("Location: /index.php");

එය නිසි පරිදි ස්ථානයට හරවා යවනු ලැබේ (index.php).

නඩුව 2:

return $something;
header("Location: /index.php");

ඉහත කේතය ස්ථානයට හරවා නොයනු ඇත (index.php).


ඔබ සපයන තොරතුරු සහ තවත් බොහෝ දේ අඩංගු 1085 ක පිළිතුරක් දැනටමත් තිබේ.
පැට්‍රික් හුන්ඩ්

5

ඔව්, PHP භාවිතා කළ හැකිය. අපි වෙනත් පිටුවකට හරවා යවමු.

පහත කේතය උත්සාහ කරන්න:

<?php
    header("Location:./"); // Redirect to index file
    header("Location:index.php"); // Redirect to index file
    header("Location:example.php");
?>

4

1. භාවිතා කිරීම header, සාදන ලද PHP ශ්‍රිතයක්

අ) පරාමිතීන් නොමැතිව සරල යළි-යොමුවීමක්

<?php
   header('Location: index.php');
?>

b) GET පරාමිතීන් සමඟ යළි හරවා යැවීම

<?php
      $id = 2;
      header("Location: index.php?id=$id&msg=succesfully redirect");
  ?>

2. PHP හි JavaScript සමඟ යළි හරවා යැවීම

අ) පරාමිතීන් නොමැතිව සරල යළි-යොමුවීමක්

<?php
     echo "<script>location.href='index.php';</script>";
 ?>

b) GET පරාමිතීන් සමඟ යළි හරවා යැවීම

<?php
     $id = 2;
     echo "<script>location.href='index.php?id=$id&msg=succesfully redirect';</script>";
   ?>

වෙබ් අඩවියේ අවසාන සත්කාරකයේ වැඩ කරන එකම දෙය ජාවාස්ක්‍රිප්ට් බිට් ය; මම විශ්වාස කරන්නේ එය හැඹිලිගත කිරීමේ කාරණයක් බවයි, නමුත් ඒ සමඟම මම එය වහාම විසඳා ගත්තෙමි.
cdsaenz

3

අපට එය ආකාර දෙකකින් කළ හැකිය:

  1. පරිශීලක මත පැමිණෙන විට https://bskud.com/PINCODE/BIHAR/index.php පසුව යළි https://bskud.com/PINCODE/BIHAR.php

    පහත PHP කේතය අනුව

    <?php
        header("Location: https://bskud.com/PINCODE/BIHAR.php");
        exit;
    ?>

    ඉහත කේතය https://bskud.com/PINCODE/BIHAR/index.php හි සුරකින්න

  2. කිසියම් කොන්දේසියක් සත්‍ය වූ විට වෙනත් පිටුවකට හරවා යවන්න:

    <?php
        $myVar = "bskud";
        if ($myVar == "bskud") {
    ?>
    
    <script> window.location.href="https://bskud.com";  </script>
    
    <?php
        }
        else {
            echo "<b>Check the website name again</b>";
        }
    ?>

මේ කුමක් ද? කරුණාකර ඔබේ වෙබ් අඩවියට සබැඳි භාවිතා නොකරන්න. දෙවන උදාහරණය භාවිතා කරන්නේ ජාවාස්ක්‍රිප්ට් යළි-යොමුවීම් මිස PHP header()ක්‍රියාකාරීත්වය නොවේ.
ස්ක්‍රිප්ට්මන්

2

භාවිත:

<?php
    $url = "targetpage"
    function redirect$url(){
        if (headers_sent()) == false{
            echo '<script>window.location.href="' . $url . '";</script>';
        }
    }
?>

1
ඔබේ කේතයේ ක්‍රියාකාරිත්වය ඔබට පැහැදිලි කළ හැකිද? ඔබගේ පිළිතුර එහි දිග සහ අන්තර්ගතය නිසා සලකුණු කරන ලදි.
www139

2

මෙය කිරීමට විවිධ ක්‍රම තිබේ, නමුත් ඔබ කැමති නම් php, header()ශ්‍රිතය භාවිතා කිරීම නිර්දේශ කරමි .

මූලික වශයෙන්

$your_target_url = www.example.com/index.php”;
header(“Location : $your_target_url”);
exit();

ඔබට එය ඉහළ මට්ටමකට ගෙන ඒමට අවශ්‍ය නම්, එය කාර්යයන් වලදී භාවිතා කිරීම වඩාත් සුදුසුය. එමගින්, ඔබට එහි සත්‍යාපනය සහ වෙනත් පිරික්සුම් අංග එකතු කිරීමට හැකිය.

පරිශීලකයාගේ මට්ටම පරීක්ෂා කිරීමෙන් අපි උත්සාහ කරමු.

එබැවින්, ඔබ පරිශීලකයාගේ අධිකාරිය මට්ටම හැඳින්වූ සැසියක ගබඩා කර ඇතැයි සිතමු u_auth.

තුළ function.php

<?php
    function authRedirect($get_auth_level,
                          $required_level,
                          $if_fail_link = www.example.com/index.php”){
        if ($get_auth_level != $required_level){
            header(location : $if_fail_link);
            return false;
            exit();
        }
        else{
            return true;
        }
     }

     . . .

එවිට ඔබට සත්‍යාපනය කිරීමට අවශ්‍ය සෑම පිටුවක් සඳහාම ශ්‍රිතය අමතනු ඇත.

වගේ page.phpහෝ වෙනත් ඕනෑම පිටුව.

<?php

    // page.php

    require function.php

    // Redirects to www.example.com/index.php if the
    // user isn’t authentication level 5
    authRedirect($_SESSION[‘u_auth’], 5);

    // Redirects to www.example.com/index.php if the
    // user isn’t authentication level 4
    authRedirect($_SESSION[‘u_auth’], 4);

    // Redirects to www.someotherplace.com/somepage.php if the
    // user isn’t authentication level 2
    authRedirect($_SESSION[‘u_auth’], 2, www.someotherplace.com/somepage.php”);

    . . .

යොමුව;


2

මාර්ගගත කිරීම සඳහා ශීර්ෂ ශ්‍රිතය භාවිතා කිරීම

<?php
     header('Location: B.php');
     exit();
?>

අපට මාර්ගය කිරීමට අවශ්ය සිතන්න A.php ගොනුවට B.php අපි උදව් කර ගත යුතුය වඩා <button>හෝ <a>. උදාහරණයක් බලමු

<?php
if(isset($_GET['go_to_page_b'])) {
    header('Location: B.php');
    exit();

}
?>

<p>I am page A</p>
<button name='go_to_page_b'>Page B</button>

B.php

<p> I am Page B</p>

දැනටමත් විසඳුම් ඕනෑ තරම් තිබේ. ඔබේ විසඳුමට PHP ටැග් නොමැතිව HTML සහ PHP මිශ්‍ර වී ඇත. දෙවනුව ඔබ html කේතය මුද්‍රණය කිරීමෙන් පසු ශීර්ෂකය යවන බැවින් එය ක්‍රියා නොකරනු ඇත. උදාහරණ ලිපිගොනු වල නම නරකයි. ඔබ ඒවා A.php සහ B.php ලෙස නම් නොකළ යුතුය. එය උදාහරණයක් පමණක් බව මම දනිමි, නමුත් තවමත් ඔබ සම්මුතිය නම් කිරීම ගැන සැලකිලිමත් විය යුතුය.
ටජ්නි

2

තත්පර ගණන් කිරීමෙන් පසු නැවත හරවා යැවීමට මම කැමතියි

<?php

header("Refresh: 3;url=https://niteroi.info/índex.php");

1

ඔබ Apache මත ධාවනය කරන්නේ නම් ඔබට යළි-යොමුවීම සඳහා .htaccess භාවිතා කළ හැකිය.

Redirect 301 / http://new-site.com/

1

headerයළි-යොමුවීම සඳහා ඔබට PHP ශ්‍රිතය භාවිතා කිරීමට උත්සාහ කළ හැකිය . ප්‍රතිදාන බෆරය සැකසීමට ඔබට අවශ්‍ය වනු ඇත, එවිට ඔබගේ බ්‍රව්සරය නැවත හරවා යැවීමේ අනතුරු ඇඟවීමක් තිරයට විසි නොකරයි.

ob_start();
header("Location: " . $website);
ob_end_flush();

1
පිටවීම () ශීර්ෂකය () පසු වහාම භාවිතා කළ යුතුය. යම් කාලයක් තිස්සේ පෙරනිමියෙන් බෆරින් ස්වයංක්‍රීයව ක්‍රියාත්මක වේ.
EKanadily

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.