2016-06-29 107 views
0

你好編程的怪物。我只想問一個關於使用$_SESSION$_GET的問題。何時使用$_GET$_SESSION?什麼是最好的傳遞變量?我只是新的PHP和HTML,我不知道什麼是最佳做法。有人能幫助我理解他們兩個嗎?

這是我的代碼的例子。我用$_SESSION用於使所述可變$newsid;

這裏是edit.php

<?php 
      session_start(); 
      include_once('connection.php'); 
      $sql ="SELECT * FROM news ORDER BY news_id"; 
      $result = mysqli_query($con, $sql); 

      while($row = mysqli_fetch_array($result)){ 
        $newsid = $row['news_id']; 
        $title = $row['news_title']; 
        $date = $row['news_date']; 
        $content = $row['news_content']; 
        $newsimage = $row['news_image']; 

        ?> 
        <div class="fix single_news"> 
         <div class="single_image"> 
          <img src="<?php echo $newsimage; ?>" style="width:200px; height:140px; alt="court"> 
         </div> 
         <a href="#"><?php echo $title; ?></a> 
         <p><?php echo $date; ?></p> 
        <p><?php echo $content; ?></p> 
        </div> 
        <form action="" method="post"> 
         <input type='hidden' name="news_id" value="<?php echo $newsid;?>"> 
        <input type="submit" name="esubmit" value="edit" /> 
        </form> 
         <hr> 
        <?php 
        } 
        if(isset($_POST['esubmit'])){ 
        $_SESSION['news_id'] = $_POST['news_id']; 
         header('Location: edit2.php'); 
         } 
        ?> 

這裏是edit2.php

<?php 
session_start(); 

$id = $_SESSION['news_id']; 
include_once('connection.php'); 
$sql = "SELECT * FROM news WHERE news_id = '$id'"; 
$result = mysqli_query($con,$sql); 


         while($row = mysqli_fetch_array($result)){ 
         $title = $row['news_title']; 
         $date = $row['news_date']; 
         $content = $row['news_content']; 
         $newsimage = $row['news_image']; 
         } 

         ?> 
<!DOCTYPE HTML> 
<html> 
<head> 

</head> 
<body> 


    <form method="post" action ="" enctype="multipart/form-data"> 
    Title<input type ="text" name ="title" value="<?php echo $title;?>"/><br> 
     Date<input type ="text" name="date" value="<?php echo $date;?>" /><br> 
     Content<textarea name="content"><?php echo $content;?></textarea> 
     <input type="submit" name="submit" value="Update" /> 
     <input class="form-control" id="image" name="image" type="file" accept="image/*" onchange='AlertFilesize();'/> 
     <img id="blah" src="<?php echo $newsimage;?>" alt="your image" style="width:200px; height:140px;"/> 

    </form> 
    <hr> 


<script src="js/jquery-1.12.4.min.js"></script> 
<script src="js/bootstrap.min.js"></script> 
</body> 
</html> 
+0

'SESSION'幾乎總是比GET更好,我試圖想到GET會更好的情況,但只要所有東西都在同一個主機環境的同一個網站上服務器),那麼不,SESSION是每次都這樣做的方式。 – Martin

+0

然後使用$ _SESSION傳遞我的變量$ news_id是否可以? – nethken

+0

你能看看我的代碼先生嗎?如果沒關係。 – nethken

回答

2

$_GET爲被該特定請求過程中所需要的參數(或者可以容易地轉到其他頁面),例如:

  • 項ID
  • 當前頁面(分頁)
  • 用戶的配置文件名
  • ...

$_SESSION是一個需要跨越多個請求被保留的數據,例如:

  • 當前用戶ID
  • 購物車
  • li ST過濾
  • ...

您應該使用更符合一個您的使用案例。

這就是說,我會考慮在會話中存儲news_id壞事。如果我想編輯多個項目並打開多個瀏覽器選項卡,該怎麼辦?我最終會覆蓋我的數據。只因爲你可以使用會話並不意味着你應該

+0

然後,我只是使用$ _GET那位先生?當然是 – nethken

+0

。你甚至不需要做任何特殊的事情來承擔價值。一個'

'具有空的/未定義的'action'屬性將使用當前頁面的URL,包括GET參數。 – ShiraNai7