Basit PHP Sessions Hata

3 Cevap php

Ben aslında benim problem keşfettim ama gerçekten bu bir sorun olduğunu neden bilmek istiyorum duyuyorum. Ben o sayfada bir oturumu başladı ve göndermek vurdu form1.php iki sayfa vardı. Sonra o oturumu başladı session2.php bir bağlantı vardı ve form1.php gelen bilgiyi çekmeyi başardı. Ben sadece oturumları hakkında öğrenme yaşıyorum ve bu bir oturum neler yapabileceğini öğrenmek için çok basit bir egzersiz oldu.

Burada sorun yatıyor, kafamda bir stil bağlantı vardı ve o href = "#" idi de boş bir href vardı ve orada iken session2.php form1.php gelen oturumu başlatmak ve gelen bilgi kapmak olmaz formu. Stil etiketinde bu href = "#" olmadan iyi çalıştı, ve sahte bir styletag href = "something.css" href ama eğer o da iyi çalıştı = "" ya da çalışmıyor.

Neden bu? Ben bir iş akışı için yapılmış olan bir şablon, belki de ben artık benim şablonu css bağlantı eklemek edemez çünkü ben sadece gelecekteki sorunları önlemek için bu var.

You can see this site working here, kendimi izah varsa.

form1.php

<?php
session_start();
$_SESSION['name'] = $username;
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>

<head>
<title></title>
<!--//CSS STYLESHEETS//-->
<link rel="stylesheet" href="#" type="text/css">
</head>

<body>
<a href="sessions2.php">Go to session 2</a>
<!--form stuff is in here-->
</body

session2.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>

<head>
<title></title>
</head>

<body>
   <?php
 session_start();
  $username = $_SESSION['name'];
  echo $username;


  ?>
  </body>
</html>

3 Cevap

Sizin ikinci sayfası bu gibi bakmak gerekiyor:

<?php
    session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
    <head>
       <title></title>
    </head>
    <body>
    <?php
        $username = $_SESSION['name'];
        echo $username;
    ?>
    </body>
</html>

Herhangi bir içerik ekrana yazdırılır önce session_start() görünmesi gerektiğini unutmayın.

session_start PHP kılavuzu sayfa not başına:

Not: çerez tabanlı oturumlar kullanmak için, session_start () tarayıcıya şey çıktılamak önce çağrılması gerekir.

Bunu istediğiniz gibi çalışmak için, ilk oturumu başladı gerekir. O çünkü, basit geliyor. Eğer session_start derken, php sonra içeriği işlemek için ilk kabul edilen bir oturum çerezi arar.

Dan http://php.net/manual/en/function.session-start.php

Not: çerez tabanlı oturumlar kullanmak için, session_start () tarayıcıya şey çıktılamak önce çağrılması gerekir.

Eğer başlıklarını göndermeden önce sayfaya çıktı şeyler için çalışıyorsunuz? Session_start () çağrısı sonra stil koyarsanız ne olur?