freemancomputer Posted March 7, 2012 Share Posted March 7, 2012 Using the tutorial from php freaks i was able to get pagination working on my site. How ever there are a few changes id like to make. I would like to have it listed in 2 columns. The other problem that I'm having is when i attempt to add class="nav" to the next page link i get an error. Can a class be used in a php echo? Here's what I have. <?php session_start(); $rank=$_SESSION['rank']; $loggedinusername=$_SESSION['loggedinusername']; $loggedinuseremail=$_SESSION['loggedinuseremail']; ?> <!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"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Drink To The Credits</title> <link href="mainstyle.css" rel="stylesheet" type="text/css" /> </head> <body class="background"> <div id="header"> <?php include_once"header.php" ?></div> <div id="content"> <?php include"scripts/connect.php" ; mysql_connect('localhost',$username,$password); @mysql_select_db($database) or trigger_error("SQL", E_USER_ERROR); $sql = "SELECT COUNT(*) FROM movies WHERE type LIKE 'movie'"; $result = mysql_query($sql) or trigger_error("SQL", E_USER_ERROR); $r = mysql_fetch_row($result); $numrows = $r[0]; $rowsperpage = 15; $totalpages = ceil($numrows / $rowsperpage); if (isset($_GET['currentpage']) && is_numeric($_GET['currentpage'])) { $currentpage = (int) $_GET['currentpage']; } else { $currentpage = 1; } if ($currentpage > $totalpages) { $currentpage = $totalpages; } if ($currentpage < 1) { $currentpage = 1; } $offset = ($currentpage - 1) * $rowsperpage; $sql = "SELECT title FROM movies ORDER BY title LIMIT $offset, $rowsperpage" ; $result = mysql_query($sql) or trigger_error("SQL", E_USER_ERROR); while ($list = mysql_fetch_assoc($result)) { ?> <tr> <td> <a class="nav" href=/rules.php?title=<?php echo urlencode($list['title']); ?>><?php echo $list['title']; ?></a> <br /> <?php } $range = 3; if ($currentpage > 1) { echo " <a href='<?php {$_SERVER['PHP_SELF']}?currentpage=1'><<</a> "; $prevpage = $currentpage - 1; echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$prevpage'><</a> "; } for ($x = ($currentpage - $range); $x < (($currentpage + $range) + 1); $x++) { if (($x > 0) && ($x <= $totalpages)) { if ($x == $currentpage) { echo " [<b>$x</b>] "; } else { echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$x'>$x</a> "; } } } if ($currentpage != $totalpages) { $nextpage = $currentpage + 1; echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$nextpage'>></a> "; echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$totalpages'>>></a> "; } // built with a tutorial from php freaks ?> </div> <div id="sidecontent"><?php include_once"newmovies.php" ?></div> <div id="footer"> <?php include_once"footer.php" ?></div> </body> </html> Thank you in advance Quote Link to comment https://forums.phpfreaks.com/topic/258433-pagination/ Share on other sites More sharing options...
cyberRobot Posted March 7, 2012 Share Posted March 7, 2012 What did the code for the next link look like when you got the error? What was the error? Also, for security reasons, you shouldn't use $_SERVER['PHP_SELF'] when displaying links. Quote Link to comment https://forums.phpfreaks.com/topic/258433-pagination/#findComment-1324833 Share on other sites More sharing options...
freemancomputer Posted March 7, 2012 Author Share Posted March 7, 2012 This is the error i get Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /movies.php on line 76 Here is what i had for the next page link which is line 76 echo " <a class="nav" href='{$_SERVER['PHP_SELF']}?currentpage=$nextpage'>></a> "; What is the problem with using php_self? And what should I be useing? Quote Link to comment https://forums.phpfreaks.com/topic/258433-pagination/#findComment-1324905 Share on other sites More sharing options...
cyberRobot Posted March 7, 2012 Share Posted March 7, 2012 The problem is that you're using double quotes inside of a double-quoted string. Try: echo " <a class='nav' href='{$_SERVER['PHP_SELF']}?currentpage=$nextpage'>></a> "; As for the security issues with $_SERVER['PHP_SELF'], check out some of the links provided by the following Google search: http://www.google.com/search?q=security+issues+with+php_self+in+links Note that a lot of focus seems to be placed on using PHP_SELF in forms, but there's an issue with using the variable to display things like links also. Instead of using PHP_SELF, the page's filename could be explicitly stated. echo " <a class='nav' href='your_page.php?currentpage=$nextpage'>></a> "; Quote Link to comment https://forums.phpfreaks.com/topic/258433-pagination/#findComment-1324913 Share on other sites More sharing options...
cyberRobot Posted March 7, 2012 Share Posted March 7, 2012 Just to clarify about the security issue, try visiting your page using Firefox. When visiting the website though, change the address to: www.yourwebsiteaddress.com/yourscript.php/'><script type="text/javascript">window.location="http:/\/www.google.com/"</script><!-- Note that "www.yourwebsiteaddress.com/yourscript.php" should be changed to the URL used to access your page. If typed correctly, it should redirect you to Google. Quote Link to comment https://forums.phpfreaks.com/topic/258433-pagination/#findComment-1324915 Share on other sites More sharing options...
freemancomputer Posted March 7, 2012 Author Share Posted March 7, 2012 Thank you for the info, I will look into it. Now to get 2 columns working Quote Link to comment https://forums.phpfreaks.com/topic/258433-pagination/#findComment-1324916 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.