PHP/HTML: Natijani bir xil veb-sahifada ko'rsatadi

2 ta PHP faylim bor. Ulardan bittasi "yuborish" tugmasi bilan shakllangan. Shunda men "Salom Dunyosi" ni ko'rsatadigan boshqa sahifaga yo'naltiraman. Men natija qayta yo'naltirilgandan ko'ra bir sahifada ko'rsatilishini xohlayman. Internetda berilgan hacklarni sinab ko'rdim, lekin hech narsa ishlamayapti.

Birinchi fayl:

<?php
if(isset($_GET['submit'])){
$query=$_GET['query'];
echo $query;
}
?>
<html>
<head>
<title>Hello World</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
    <form  method="GET" action="/display.php">
            <input type="submit" name="submit" value="Search" />
    </form>
</body>
</html>

Ikkinchi fayl:

<?php
echo "Hello World";
?>
1
Agar bu javob bo'lsa, nima uchun uni javob deb yozmasligim kerak?
qo'shib qo'ydi muallif Mawg, manba
Bir xil sahifada siz bir xil urlni nazarda tutasizmi?
qo'shib qo'ydi muallif niceman, manba
<? PHP <form method = "Get" action = "<? PHP echo htmlspecialchars ($ _ SERVER [" PHP_SELF "]);>"> if (isset ($ _ GET ["submit"])) {$ query = $ _GET ['so'rovlar']; echo $ query; "Salom Dunyo" ning echimi; }?>
qo'shib qo'ydi muallif JYoThI, manba
@niceman Ha o'sha URLda
qo'shib qo'ydi muallif Shruti Paliwal, manba
sahifani so'rash uchun ariza xatti-harakatini o'zgartirish.
qo'shib qo'ydi muallif P.Knowledge, manba

7 javoblar

Bu bilan boring:

index.php

<?php
  if(isset($_GET['query']) && !empty($_GET['query'])){
    $query = trim( $_GET['query'] );
    echo $query;
  }
?>
<html>
<head>
<title>Hello World</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
    <form  method="GET" action="./display.php">
            <input type="submit" name="submit" value="Search" />
    </form>
</body>
</html>

disp.php

<?php
  header("location:index.php?query=Hello World");
?>

NOTE Keep both files are in same folder.

3
qo'shib qo'ydi
OP faqatgina kodni index.php ga o'zgartirishni va display.php dan butunlay qutulolmaysizmi?
qo'shib qo'ydi muallif niceman, manba
@ShrutiPaliwal hozirda ishlaydi?
qo'shib qo'ydi muallif niceman, manba
Men nuqta qo'yishdan oldin nuqta qo'shishni unutgan edim, endi qo'shildi. Uning ishlashi va sinovdan o'tganligi.
qo'shib qo'ydi muallif SHAZ, manba
@niceman, do'stim u keyingi sahifada biror narsani tasdiqlashi mumkin, shuning uchun siz takliflaringiz yaxshi ishlaydigan narsalarni qilaman. :)
qo'shib qo'ydi muallif SHAZ, manba
@niceman Ishlayapti! Rahmat :)
qo'shib qo'ydi muallif Shruti Paliwal, manba
Hech narsa ko'rsatilmaydi :(
qo'shib qo'ydi muallif Shruti Paliwal, manba

Faqat kiritishni ishlatish haqida nima deyish mumkin?

if(isset($_GET['submit'])){
  include('second.php');
}
1
qo'shib qo'ydi
formadagi action atributini o'zgartirmasdan, unga qo'shilmaydi
qo'shib qo'ydi muallif niceman, manba
Buni amalga oshirishni o'ylamayman
qo'shib qo'ydi muallif niceman, manba
Buning sababini tushuntira olasizmi?
qo'shib qo'ydi muallif DrKey, manba
Albatta, ariza topshirgan faylga include dan foydalanish kerak.
qo'shib qo'ydi muallif DrKey, manba

Tugmasini bosing. Kundalik hodisaga ajaxli qo'ng'iroqni qo'shing, shunda u qayta yo'naltirmasdan salom dunyosini namoyish etadi

1
qo'shib qo'ydi
Men OPning nima istayotganiga amin emasman
qo'shib qo'ydi muallif niceman, manba
Xuddi shu sahifada qayta yo'naltirishsiz helloworld-ni namoyish qilishingiz kerak.
qo'shib qo'ydi muallif Aravinth, manba

Ushbu kodni sinab ko'ring

<?php
    if(isset($_GET['submit'])){
        echo 'Hello World';
    } 
?>

<html>
    <body>
         <form  method="GET" action="./display.php">
            <input type="submit" name="submit" value="Search" />
         </form>
     </body>
</html>
0
qo'shib qo'ydi

Nima uchun 2 ta faylni bitta qilishingiz mumkinligini tushunmayapman.

<?php
  if(isset($_GET['submit'])){
    $query=$_GET['submit'];
    echo $query;    //print "Hello World"
  }       
?>
<html>

  <body>
       <form  method="GET" action="<?= htmlspecialchars($_SERVER['PHP_SELF']); ?>">
            <input type="submit" name="submit" value="Hello World" />
       </form>
  </body>
</html>
0
qo'shib qo'ydi

Faoliyat xususiyatini bo'sh qoldiring va ariza joriy sahifaga yuboriladi.

<form action="" method="POST">
...
</form>

Formadan yuborilgan o'zgaruvchini ko'rsatish uchun isset() funktsiyasidan foydalaning.

<?php echo isset($_GET['foo']) ? $_GET['foo'] : ''; ?>

Sample Code:

<body>
    <form action="" method="GET">
        <input type="text" name="foo" value="bar">
        <button type="submit">Submit</button>
    </form>
    
foo = <?php echo isset($_GET['foo']) ? $_GET['foo'] : ''; ?>

</body>
0
qo'shib qo'ydi

Display.php-ga qanday qarash kerak? Agar faqat bitta sahifada "Salom Dunyo" ni ko'rsatish uchun yuborish tugmasini bosishni istasangiz, aksiya = "/ display.php" bilan action = "" ni o'zgartiring, shuning uchun tugmani bosganingizda, agar (isset ($ _ GET ['submit'])) bool 1-ni qaytaradi va display.php kodini kiritish uchun kodni ishlatadi, "Salom Dunyo". Osongina "display.php" ni qo'shish o'rniga, "Salom dunyo"

<div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false"> <div class="snippet-code">

<?php
if(isset($_GET['submit'])){
include 'display.php';
}
?>
<html>
<head>
<title>Hello World</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
    <form  method="GET" action="">
            <input type="submit" name="submit" value="Search" />
    </form>
</body>
</html>
</div> </div>
0
qo'shib qo'ydi
bu muammoni qanday hal qilish mumkinligi haqida biror narsani tushuntirishga harakat qiling.
qo'shib qo'ydi muallif Pengyy, manba
Ushbu kod snippetani savolni hal qilishi mumkin bo'lsa-da, izohni o'z ichiga oladigan , albatta, takomillashtirishga yordam beradi Sizning postingizning sifati. Kelajakda o'quvchilarga bo'lgan savolingizga javob berishni unutmang va ular sizning kod taklifingizni sabablarini bilmasligi mumkin.
qo'shib qo'ydi muallif DimaSan, manba
PhP |BotsUz
PhP |BotsUz
93 ishtirokchilar

Phpni o'rganishni Hohlasangiz https://t.me/joinchat/AAAAAE-KRc5dd5tPMmGmWA A'zo bo'lin