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


Posting SESSION variables, that have been collected from mysql database, to a new page

过去几天我一直在处理这个问题。我希望代码实现什么;有一个页面显示一定数量的缩写博客文章。然后我想在博客的底部有一个链接,链接到整篇文章。我还想在完整的故事页面上有一个链接,可以让你回到简短的故事列表。我已经尝试使用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>

问题:(在echos中有两个相同的qutation标记,第一个在课堂上,第二个在会话中)

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

解决方案1:

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

解决方案2:

使用条带斜线函数