Benim kurabiye ile ne yanlış?

4 Cevap php

Nedense Bu php script benim çerez değişken echo olmaz:

<?php
    require 'connection.php';
    require 'variables.php';

    $name = $_POST['name'];
    $pass = $_POST['pass'];

    if(($name == $admin_name) && ($pass == $admin_pass)){
        setcookie($forum_url."name",$name,time()+604800);
        setcookie($forum_url."pass",$pass,time()+604800);
    }

    else
        echo 'Failed';
?>

iste admin_login.php gönderilen alır html

<form method=post action=admin_login.php>
            <div id="formdiv">
                <div class="fieldtext1">Name</div>
                <div class="fieldtext1">Pass</div> 
                <input type="text" name=name size=25 /> 
                <input type="password" name=pass size=25 />
            </div>
            <input type=submit value="Submit" id="submitbutton">
        </form>

burada bilgi yankılandı istediğiniz endeksidir

<?php echo $_COOKIE[$forum_url."name"]; ?>

Ben yanlış ne yapıyorum?

4 Cevap

Eğer belirli bir çerezi değerini tükürmek için çalışıyoruz noktada var_dump($_COOKIE) denediniz mi? O ya çerez ayarı veya değeri echo çalıştığınız yere $forum_url noktada henüz tanımlanmış değil mümkün mü? $forum_url boş çünkü Belki çerez name ve pass olarak ayarlanmış.

Eğer çerez için yolunu ayarlamak emin olun.

Eğer bir yolu çerez ayarlanır, ancak farklı bir yoldan almak için çalışıyorsanız, o iş olmaz.

Beni indeksi ve nerede çerez ayarlamak için URL'sini bildirin miyim?

Ayrıca setcookie() çağrılırken başlıklar zaten iddia tarafından gönderilen henüz kontrol o headers_sent() returns false. Bir çerez ayarlama HTTP başlık içinde oluşur, bu nedenle herhangi bir çıkış üretilir önce bunu emin olun.

Örneğin:

<?php require 'connection.php'; require 'variables.php'; ?>
<h1>Hello world!</h1>
<?php setcookie($forum_url."name",$name,time()+604800); ?>

not çalışmaları, çıkış zaten zaman HTTP gövdeye geçirilmiş olduğu için setcookie() adlandırılır olacaktır.

Aslında, ben hızlı bir test kurmak ve bir çerez saklandığı zaman çizgi dönemlerinin yerini bulundu. Eğer www.test.comname gibi bir etki varsa o www_test_comname olur. Çerez başvururken Yani böyle bir şey yapmak gerekir:

<?php
    $forum_url = preg_replace('/\./','_',$forum_url);
    echo $_COOKIE[$forum_url."name"];
?>



Is it possible that PHP is having a problem concatenating the *$forum_url."name"* and *$forum_url."pass"* in time for setcookie to work properly?

Böyle bir şey deneyin:

<?php
    require 'connection.php';
    require 'variables.php';

    $name = $_POST['name'];
    $pass = $_POST['pass'];

    $tmp_name_path = $forum_url."name";
    $tmp_pass_path = $forum_url."pass"

    if(($name == $admin_name) && ($pass == $admin_pass)){
        setcookie($tmp_name_path,$name,time()+604800);
        setcookie($tmp_pass_path,$pass,time()+604800);
    }

    else
        echo 'Failed';
?>