Benim formunda değerleri korumak için benim basit bir PHP işlevi çalışmıyor.

4 Cevap php

İşte benim kod:

<html>
<head>
    <?php
    function getValue($field){
        if(isset($_GET[$field])){
            return $_GET[$field];
        }
        else{
            return "";
        }
    }

    ?>
</head>

<body>
    <form action="class2.php" method="get">
        <dl>
            <dt>First Name:</dt>
            <dd><input type="text" value="<?php echo htmlspecialchars(getValue($_GET['name'])) ?>" name="name" />                    
            </dd>                

            <dt>Last Name:</dt>
            <dd><input type="text" value="<?php echo htmlspecialchars(getValue($_GET['lastname'])) ?>" name="lastname" />                    
            </dd>

            <br />                
            <dt>
                <input type="submit" value="enviar" />
            </dt>                
        </dl>
    </form>
</body>

Ben Adı ve Soyadı hiçbir şey bir değer yazarsanız, Adı değeri doğru, orada kal OLMALIDIR? Ben yanlış ne yapıyorum?

4 Cevap

Senin sorunun kullanıyor olmasıdır

getValue($_GET['name'])

yerine

getValue( 'name' )

Sen şu anda contents $_GET['name'] içinde olan getValue() çağırıyor

Also: Your getValue function doesn't make much sense right now. Why not build in htmlspecialchars() into it directly yerine applying it to its return value?

getValue('name') değildir getValue($_GET['name']);

Öncelikle, gerçekten sadece $_GET dizisinin bir elem almak için bir işlev gerekir?

Eğer bir GET isteği okuyorsunuz çünkü bu sayfayı yenileyin ve formu gönderin (ve sorgu dizesi temizleyin) yoksa, size $_GET verilerinizi kaybedersiniz.

Bu bilgilerin sıkı tutmak istiyorsanız, in the session ($ _SESSION) yerleştirebilirsiniz.

filter your input and escape your output unutmayın.

<dd><input... etiketleri içinde, o PHP okumalısınız:

<dd><input type="text" value="<?php echo htmlspecialchars(getValue( 'name' )) ?>" name="name" />

Yazdığın işlevi bu değeri name almak, ve GET dizi yapmak, bunu söylemek gerek içinde bunun için bakmak bilir onu çağırdığınızda.