php
  • session
  • variables
  • 2011-03-16 47 views 0 likes 
    0

    我有代碼以下兩個片段做工精細..簡單的會話變量超級難倒

    <?php session_start(); 
    $query = '23'; 
    $_SESSION['testing'] = $query; 
    echo $_SESSION['testing'] . "<html><br></html>"; 
    
    echo "<html><a href='http://www.nhl-statistics.com/scripts/test2.php'>click</a></html>" 
    ?> 
    

    這個環節太..

    <?php session_start(); 
    
    echo $_SESSION['testing'] . "<html><br></html>"; 
    echo "<html><a href='http://www.nhl-statistics.com/scripts/test2.php'>click</a></html>" 
    session_destroy(); 
    ?> 
    

    但是..我將在後兩頁這同樣的方法不工作,並希望你們可以告訴我爲什麼

    <?php session_start(); 
    
    ?> 
    
    
    <script type="text/javascript"> 
    function destroyit() 
    { 
    <?php session_destroy(); ?> 
    } 
    </script> 
    
    
    
    </head> 
    <body> 
        <div id="page" align="center"> 
         <div id="header"> 
          <div id="companyname" align="left"></div> 
          <div align="right" class="links_menu" id="menu"><a href="/index2.php">Home</a> | <a href="logged.php">Log In</a> | <a href="#">Products</a> | <a href="#">Our Services</a> | <a href="#">Contact Us</a> </div> 
         </div> 
         <br /> 
         <div id="content"> 
          <div id="leftpanel"> 
           <div class="table_top"> 
            <div align="center"><span class="title_panel">News</span> </div> 
           </div> 
         <div class="table_content"> 
            <div class="table_text"> 
             <p class="news_date">blah.com<br /> 
              blah.<br /> 
             </p> 
          </div> 
          </div> 
           <div class="table_bottom"> 
            <img src="images/table_bottom.jpg" width="204" height="23" border="0" alt="" /><br /> 
           </div> 
           <div class="table_top"></div> 
           <div class="table_content"> 
            <div class="table_text"> 
    
    
    <html><form action="?" method="post"> 
    Username: <input type="text" name="uname" /><br /> 
    Password: <input type="text" name="pword" /><br /> 
    <input type="submit" /> 
    </form> </html> 
    
    
    
    </div> 
           </div> 
           <div class="table_bottom"> 
            <img src="images/table_bottom.jpg" width="204" height="23" border="0" alt="" /> 
           </div> 
           <div class="footer"> 
    
           <p><br /> 
            <a href="#">Home</a> | <a href="#">About Us</a> | <a href="#">Products</a> | <a href="#">Our Services</a> | <a href="#">Contact Us</a> | blah.com</a>. 
          </p> 
          </div> 
          </div> 
          <div id='contenttext' class='contenttext'> 
          <?php $username="a75sdadmin"; 
    $password="1dBasdns2"; 
    $database="a75asdesting"; 
    $pword = $_REQUEST['pword']; 
    $uname = $_REQUEST['uname']; 
    mysql_connect('myssd.com',$username,$password); 
    @mysql_select_db($database) or die("Unable to select database"); 
    $query = mysql_query("SELECT * FROM `username` WHERE `password` = '$pword' AND `username` = '$uname'"); 
    $exsists = 0; 
    
         WHILE($rows = mysql_fetch_array($query)){ 
         $exsists = 1; 
         break; 
         } 
          if ($exsists){ 
          $_SESSION['usern23']=$uname; 
          $_SESSION['logged']=1; 
          header('Location: logged2.php'); 
    
    
            } 
    
    
    
    mysql_close(); 
    
    ?> 
         </div> 
    </body> 
    </html> 
    

    會話變量不會發布到此pa GE出於某種原因..(logged2)

    <?php session_start(); 
    echo 'welcome, ' . $_SESSION['usern23']; 
    ?> 
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
    <head> 
    
        <meta name="author" content="Wink Hosting (www.winkhosting.com)" /> 
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
        <link rel="stylesheet" href="style.css" type="text/css" /> 
        <title>Aqua</title> 
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
    <script type="text/javascript" src="/classarray.js"></script> 
    
    <script type="text/javascript"> 
    function doit() 
    { 
    var x=document.getElementById("multi2"); 
    var xindex = x.selectedIndex; 
    var y=document.getElementById("multi3"); 
    var yindex = y.selectedIndex; 
    
    var class4 = x.options[xindex].text; 
    var class5 = y.options[yindex].text; 
    
    var link = "index3.php?rav=" + class4 + "&pun=" + class5 
    window.open(link, '_self'); 
    } 
    </script> 
    
    <script type="text/javascript"> 
    function destroyit() 
    { 
    <?php session_destroy(); ?> 
    } 
    </script> 
    
    <script type="text/javascript"> 
    
    $(document).ready(function(){ 
        $("button.yo1").click(function rock(){ 
        $("div.class1").html("<h1>&nbsp;</h1><h1><br /><select id='multi2' style='width:100px;'></select><br /></h1><button id='yo8' class='yo8'>Pick Class</button>") 
        childless(); 
        $("button.yo8").click(function rock2(){ 
        $("div.class3").html("<h1>&nbsp;</h1><h1><br /><select id='multi3'><option>random teacher</option></select><br /></h1><button id='yo9' class='yo9'>Pick Teacher</button>") 
        $("button.yo9").click(function rock3(){ 
        $("div.golow").html("<button onClick='doit();'>click for notes</button>") 
        $("button.yo10").click(function rock3(){ 
        $("div.contenttext").html("<div id='yi'></div>") 
        }); 
        }); 
        }); 
        }); 
    }); 
    
    </script> 
    
    </head> 
    <body> 
        <div id="page" align="center"> 
         <div id="header"> 
          <div id="companyname" align="left"></div> 
          <div align="right" class="links_menu" id="menu"><a href="index2.php">Home</a> | <a href="/logged.php">Log In</a> | <a href="#">Products</a> | <a href="#">Our Services</a> | <a href="#">Contact Us</a> </div> 
         </div> 
         <br /> 
         <div id="content"> 
          <div id="leftpanel"> 
           <div class="table_top"> 
            <div align="center"><span class="title_panel">News</span> </div> 
           </div> 
         <div class="table_content"> 
            <div class="table_text"> 
             <p class="news_date">sdfgass.com<br /> 
              dsf<br /> 
             </p> 
          </div> 
          </div> 
           <div class="table_bottom"> 
            <img src="images/table_bottom.jpg" width="204" height="23" border="0" alt="" /><br /> 
           </div> 
           <div class="table_top"></div> 
           <div class="table_content"> 
            <div class="table_text"> 
             <?php 
            error_reporting(E_ALL); 
            echo $usern . '<html><br></html>'; 
            echo '<html><a href="logged.php" onclick="destroyit();" >logout</a></html>'; 
    ?> 
    
    </div> 
           </div> 
           <div class="table_bottom"> 
            <img src="images/table_bottom.jpg" width="204" height="23" border="0" alt="" /> 
           </div> 
           <div class="footer"> 
    
           <p><br /> 
            <a href="#">Home</a> | <a href="#">About Us</a> | <a href="#">Products</a> | <a href="#">Our Services</a> | <a href="#">Contact Us</a> | Sasd.com</a>. 
          </p> 
          </div> 
          </div> 
          <div id='contenttext' class='contenttext'> 
    
    you are now logged in 
         </div> 
    </body> 
    </html> 
    
    +0

    你的javascript函數函數destroyit()是什麼點?當頁面被渲染時,它將只是一個空的函數... PHP代碼不是簡單地通過調用一個javascript函數來執行,如果這就是你想要做的事情......你需要調用一個PHP腳本網絡服務器做到這一點 – 2011-03-16 16:53:28

    回答

    1
    <script type="text/javascript"> 
    function destroyit() 
    { 
    <?php session_destroy(); ?> 
    } 
    </script> 
    

    這不會有任何效果。很久以前,瀏覽器在生成的頁面上執行PHP之前,PHP立即在服務器上執行。如果你看一下網頁的源代碼,你會看到上面的代碼產生了:

    <script type="text/javascript"> 
    function destroyit() 
    { 
    
    } 
    </script> 
    

    基本上你正在開始一個會話,然後立即摧毀它。如果你想從客戶端JavaScript中銷燬一個會話,你必須做一個AJAX調用(或者提交一個表單,點擊一個鏈接等)來調用一個銷燬的PHP腳本。

    +0

    上面的評論是正確的,不要以爲你可以從你嘗試的JavaScript塊中調用PHP函數,它不會這樣工作:) – Furicane 2011-03-16 16:58:45

    +0

    謝謝,但我怎麼如何摧毀它立即?會不會被該退出鏈接調用我的功能? – Shawn 2011-03-16 17:08:43

    +0

    請記住,在塊內的任何內容都會被服務器解析,因爲它正在生成頁面。這是在任何輸出發送到瀏覽器之前。 – 2011-03-16 17:17:46

    相關問題