将已从mysql数据库收集的SESSION变量发布到新页面

时间:2012-03-05 20:29:16

标签: php mysql session post

过去几天我一直在研究这个问题。我希望代码实现的目标;有一个页面显示一定数量的缩写博客文章。然后,我希望在博客底部有一个链接到整篇文章的链接。我还想在完整的故事页面上找到一个链接,可以将您返回到缩写故事列表中。我试图使用SESSION id实现这一点,除了一件大事之外,几乎所有东西都有效。当显示整个博客的显示页面时,它会切断撇号或任何其他html特殊字符。我曾尝试使用htmlspecialchars ......但我无法弄明白。请帮忙。

我已经附上了我一直使用的三页。     1)检索信息的代码     2)运行循环的页面并显示缩写结果     3)显示整篇博客文章的完整故事页面

第一页     

/*$result = mysqli_query($cxn,$query)                                          
        or die("Couldn't execute query, Retard.");*/




// find out how many rows are in the table 
$sql = "SELECT COUNT(*) FROM ashly";
$result = mysqli_query($conn, $sql) 
or die("Could not connect, Dickhead");
$r = mysqli_fetch_row($result);
$_SESSION['numrows'] = $r[0];
##JH echo "{$_SESSION['numrows']} <br/><br>";

// number of rows to show per page
$_SESSION['rowsperpage'] = 4;

// find out total pages
$_SESSION['totalpages'] = ceil($_SESSION['numrows'] / $_SESSION['rowsperpage']);
##JH echo $_SESSION['totalpages'];

//   get the current page or set a default

//if (isset($_GET['currentpage']) && is_numeric($_GET['currentpage'])) {
if (isset($_POST['currentpage']) && is_numeric($_POST['currentpage'])) {
// cast var as int
  $_POST['currentpage'] = (int) $_POST['currentpage'];
} else {
// default page num
$_POST['currentpage'] = 1;
} // end if

// if current page is greater than total pages...
if ($_POST['currentpage'] > $_SESSION['totalpages']) {
// set current page to last page
$_POST['currentpage'] = $_SESSION['totalpages'];
} // end if
// if current page is less than first page...
if ($_POST['currentpage'] < 1) {
// set current page to first page
$_POST['currentpage'] = 1;
} // end if

// the offset of the list, based on current page 
$_SESSION['offset'] = ($_POST['currentpage'] - 1) * $_SESSION['rowsperpage'];

// get the info from the db 
$sql = " SELECT * FROM ashly ORDER BY id DESC LIMIT 
{$_SESSION['offset']},       {$_SESSION['rowsperpage']} ";

$result = mysqli_query($conn, $sql) or die("Could not connect, connection Error");


// while there are rows to be fetched...


/*** this is where testPagingSESSION.inc goes. Has all loop and and page links 
in    it****/

##JH was: commented out for TESTING include("ashlyBlog2.inc"); 
                                include("ashlyBlogTESTING.inc");  // this include 
uses    the character control function
                                ?>

第二页:循环显示博客列表

     <?php


                 while ($_SESSION['list'] = mysqli_fetch_assoc($result)) {

                 extract($_SESSION['list']);
                 $price = number_format($price,2);
                 $timeDisplay = $_SESSION['list'];

          $_SESSION['blog'] = $blog;
          $_SESSION['time'] = date("F j, Y ", strtotime($time));      
          $_SESSION['title'] = $title;
         // $_SESSION['blog']=  htmlspecialchars($_SESSION['blog']);
         // $_SESSION['title']= htmlspecialchars($_SESSION['title']);


          $position=35; // Define how many characters you want to display.

$message= $_SESSION['blog']; 
$post = substr($message,$position,1); // Find what is the last character 
                                        displaying.
       We find it by getting only last one character from your display message.

if($post !=" "){ // In this step, if last character is not " "(space) do this step .

// Find until we found that last character is " "(space) 
// by $position+1 (14+1=15, 15+1=16 until we found " "(space) that mean character 20) 
while($post !=" "){
$i=1;
$position=$position+$i;

$message= $_SESSION['blog']; 
$post = substr($message,$position,1); 
}

}

$post = substr($message,0,$position); // Display your message
//echo $post;
//echo "...";
 $_SESSION['title'] = htmlspecialchars($_SESSION['title']);

          echo "

    <h3 class='blog'>{$_SESSION['title']}</h3>
    <p class='date' ><b>{$_SESSION['time']}</b></p>
    <p class='blog'>$post....</p>



            <form action='ashlyBlogBig2.php' method='POST'> 
                           <input type='hidden' 
            name='title'   value='{$_SESSION['title']}'/>
                           <input type='hidden' 
            name='time' value='{$_SESSION['time']}'/>
                           <input type='hidden' 
            name='blog' value='{$_SESSION['blog']}'/>
                   <input type='submit' name='to you' 
            class='productButtons' value='Read On. . . .'>
                  </form> ";
     }//end while loop

?>



     <?php
/******  build the pagination links ******/

// range of num links to show
$_SESSION['range'] = 3;

// start table for page buttons
echo "<table class='pagingTable' cell-padding='0' cell-spacing='0'>
    <tr>";
// if not on page 1, don't show back links
if ($_POST['currentpage'] > 1) {

 // get previous page num
  $_SESSION['prevpage'] = ($_POST['currentpage'] - 1);

 // show < link to go back to 1 page
       echo "<td><form action='{$_SERVER['PHP_SELF']}' method='POST'>
        <input type='hidden' name='currentpage' value='{$_SESSION['prevpage']}'/>   
        <input type='submit' name='submit' class='prevPage' value='&nbsp;' />
      </form></td>";

} // end if 


// loop to show links to range of pages around current page
for ($_SESSION['x'] = ($_POST['currentpage'] - $_SESSION['range']); 
 $_SESSION['x'] < (($_POST['currentpage'] +
  $_SESSION['range']) + 1); $_SESSION['x']++) 
   {
// if it's a valid page number...
if (($_SESSION['x'] > 0) && ($_SESSION['x'] <= $_SESSION['totalpages'])) {
  // if we're on current page...
  if ($_SESSION['x'] == $_POST['currentpage']) {
     // 'highlight' it but don't make a link
     echo " <td class='active'><b>{$_SESSION['x']}</b></td> ";
  // if not current page...
  } else {
     // make it a link

  echo "<td><form action='{$_SERVER['PHP_SELF']}' method='POST'>
       <input type='hidden' name='currentpage' value='{$_SESSION['x']}' />
       <input type='submit' name='submit' 
       class='productPaging'    value='{$_SESSION['x']}'/>
      </form></td>";

    } // end else
  } // end if 
 } // end for

 // if not on last page, show forward and last page links


 if ($_POST['currentpage'] != $_SESSION['totalpages']) 
 {
  $_SESSION['nextpage'] = ($_POST['currentpage'] + 1); 


 // echo forward link for next page
 echo " <td><form action='{$_SERVER['PHP_SELF']}' method='POST'>
        <input type='hidden' name='currentpage' value='{$_SESSION['nextpage']}'/>
        <input type='submit' name='submit' class='nextPage' value='&nbsp;' />
      </form></td>";


 }
 echo "</tr></table>"; // close table

// echo forward link for lastpage
?>

第三页:整篇博客文章展示

 <?php

              ## These top four variable are commented out, tried but didn't work                
                  ##JH$_POST['title'] = strip_tags(trim($_POST[title])) ; 
                  ##JH$_POST['blog'] = strip_tags(trim($_POST[blog])) ;
                  ##$_POST['title']= htmlspecialchars($_POST['title']);
                  ##$_POST['blog']= htmlspecialchars($_POST['blog']);

                  //$_POST['blog'] = mysqli_real_escape_string($cxn, $_POST[blog]);

                   echo" 

    <h3 class='blog'>{$_POST['title']}</h3>
    <p class='date' ><b>{$_POST['time']}</b></p>
    <p class='blog'>{$_POST['blog']}</p>";


                   ?>



        </div>   <!-- end bigProduct -->

           <br/><br/>
                    <span class="backCategory"><center>
                    <b>
                       <a href=
                    "http://www.affiliate-marketing-abc.com/bagelmania/
                       ashlyBlog2.php"> Back to Category</a>
                    </b></center></span>

1 个答案:

答案 0 :(得分:0)

问题:(回声中有两个相同的引号,第一个在你的课堂上,第二个在你的课程中)

<h3 class='blog'>{$_SESSION['title']}</h3>

解决方案1:

<h3 class=\'blog\'>{$_SESSION['title']}</h3>

解决方案2:

使用stripslashes功能