Basit Php Echo

3 Cevap php

Ben sadece bir gönderme düğmesi itti, hatta bir çapa etiketi sonra ben bir echo deyimi başlatmak nasıl, php öğrenmeye başladım.

İşte benim kod şimdiye kadar

form name="myform" method="get" actions="madlib01.php"

 Name: <input type="text" name="name" /> <br />


     <input type="submit" name="submit" />

form

<?php

$Name = $_GET['name'];

$hello .= "Hello $Name";

echo $hello  //I would prefer the echo to happen after the submit button is hit

?>

3 Cevap

Form etiketi için doğru değil, öznitelik "eylemleri", "eylem" dir

Form gönderildiğinde, yeni bir istek (GET kullanarak, sizin durumunuzda) sunucusuna gönderilir.

Yani bir sayfada hepsini yapmak için:

form.php:

<form action="form.php" method="GET">
<input type="text" name="name"/>
<input type="submit">
</form>

<?PHP
if (! empty($_GET['name'])){
   echo 'Hello, ' . $_GET['name'];
}
?>

merhaba $ echo

Sen sadece bir HTML-enjeksiyon güvenlik açığını elde ettik. : Birisi için kullanıcı gönderirse

http://www.example.com/madlib01.php?name=<script>stealYourCookies()</script>

sorunları var.

Evet, bu bir My First PHP Script. Bu güvenlik isteğe bağlı yapmaz. Bu, her öğretici kılan bir hatadır: isteğe bağlı ekstra olarak (doğruluğu bir alt kümesidir ve güvenlik) doğruluğu tedavi, baştan kötü uygulama öğretim.

Sonuç orada en PHP kodu deliklerle dolu olmasıdır. Ama seninki olması için gerek yok! Eğer çevreleyen HTML bağlam içine saf bir metin dizesi yer her zaman, düzgün kaçış:

echo htmlspecialchars($hello);

Ben tembelim gibi, benim için bunu yapmak için 'htmlspecialchars'dan' daha kısa bir adla bir işlev tanımlamak eğilimindedir.

<?php
    function h($text) {
        echo(htmlspecialchars($text, ENT_QUOTES));
    }
    $name= '';
    if (isset($_REQUEST['name']))
        $name= trim($_REQUEST['name']);
?>

...

<?php if ($name!=='') { ?>
    <p> Hello, <?php h($name); ?>! </p>
<?php } ?>

<form method="get" action="madlib01.php">
    <p>
        <label for="namefield">Name:</label>
        <input id="namefield" type="text" name="name" />
    </p>
    <p>
        <input type="submit" />
    </p>
</form>

Eğer adınız Mister