Formular Token Problem

Ich habs jetzt ganz anders gemacht, hatte keine Lust mehr mit den Tokens hats nicht funktioniert.

Die Suche per GET

Code:
<form action="index.php" method="get">
    <div class="searchbar">
      <input type="text" name="search" class="searchfield input" id="searchfield" maxlength="200" alt="Suche... " value="Suche... " onclick="document.getElementById('searchfield').value=''; this.style.color = '#000';" />
             <input type="submit" id="submit" class="search-button" value="" />
    </div>
  </form>

Die Verarbeitung direkt in der Index.php

PHP:
 if(isset($_GET["search"]) && !empty($_GET["search"])) {
		
	$search = preg_replace( "/[^a-z0-9]/i", "", $_GET["search"] );

$sql = "SELECT * FROM ".$sqltab27." WHERE name LIKE '%".$db->escape($search)."%'";

.
.
.
 usw

Somit funktioniert das wunderbar.


Jetzt eine letzte Frage dazu, ist das so von der Sicherheit her Ok ?
 
Also ich hab ein bisschen gegoogelt und der Code ist so sicher.

Wer eine solche Suchfunktion also nachbauen will und auch das Formular und die Verarbeitung auf derselben Seite liegen hat hiermit einen Anhaltspunkt.

Code:
<form action="index.php" method="get">
          <input type="text" name="search" id="searchfield" maxlength="200" alt="Suche... " value="Suche... "  />
             <input type="submit" id="submit" value="" />   
  </form>

PHP:
if(isset($_GET["search"]) && !empty($_GET["search"])) {
    
    // Ganz wichtig search muss gefiltert werden !!
    $search = preg_replace( "/[^a-z0-9]/i", "", $_GET["search"] );

// In der Abfrage dann gegen SQL Injection sichern mit $db->escape ...
$sql = "SELECT * FROM ".$sqltab27." WHERE name LIKE '%".$db->escape($search)."%'";

Das mit den Tokens entfällt in dem Fall weil die Suche keine kritische Anwendung ist.

Anders wäre es wenn das ganze ein Login wäre oder irgendwas womit die Datenbank direkt beeinflusst wird z.b. INSERT, UPDATE, DELETE FROM ...

Viel Spaß damit und Vielen Dank an die vielen Hilfestellungen von Tombe , Maniac und Saftmeister :)
 
Zurück