Re: Looking for code for an alphabetic menu in php

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Make sure you filter $letter before using it in the query. Replace $letter = $_GET["letter"] with this:

preg_match('/^[A-Z]/', $_GET["letter"], $matches);
$letter = $matches[0];

If you don't do this, someone could insert malicious SQL into the $letter variable. This regular expression will match only one capital letter at the beginning of the string $_GET["letter"].

-Joe

On May 22, 2009, at 3:23 AM, Sascha Meyer wrote:

Hi Bill,

I don't know if I got you right but I hope this will help:

[CODE]
<?php
$baseLink = "index.php?letter="; // Assuming your file name is "index.php"; set up the base link for all pages

//alphabetical links
for($a=65;$a<(65+26);$a++){
  print "<a href=\"".$baseLink.chr($a)."\">".chr($a)."</a>\n";
}
if (isset($_GET["letter"]) && $_GET["letter"] != ""){
  $letter = $_GET["letter"];
$sql = "SELECT * FROM species WHERE [SPECIES_NAME] LIKE '". $letter."%'"; // Replace [SPECIES_NAME] with your column name
  $res = mysql_query($sql);
  if ($res){
      while ($row = mysql_fetch_row($res)){
          // retrieve your row info
      }
  } else {
      print "Failed retrieving data set, error was: ".mysql_error();
  }
}
?>
[/CODE]

Enjoy,

Sascha


--
PHP Windows Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [PHP Users]     [PHP Database Programming]     [PHP Install]     [Kernel Newbies]     [Yosemite Forum]     [PHP Books]

  Powered by Linux