Ich habe diesen Code - der versucht, Variablen aus der URL zu erhalten und dann eine MYSQL-Auswahl basierend auf den Kriterien (mit Ausnahme der NULL-Werte). Ich glaube jedoch, ich gehe irgendwo hin, aber ich weiß nicht wo:Suche basierend auf URL-Variablen
<?php
include('db.php'); // include your code to connect to DB.
$tbl_name="mobile"; //your table name
$model = ($_GET['model'] ? $_GET['model'] : NULL);
$mins = ($_GET['mins'] ? $_GET['mins'] : NULL);
$texts = ($_GET['texts'] ? $_GET['texts'] : NULL);
$freegift = ($_GET['free-gift'] ? $_GET['free-gift'] : NULL);
$network = ($_GET['network'] ? $_GET['network'] : NULL);
$plan = ($_GET['plan'] ? $_GET['plan'] : NULL);
$vars = array($model, $mins, $texts, $freegift, $network, $plan);
foreach($vars as $value) {
$value = (isset($_GET[$value]) ? $_GET[$value] : NULL);
unset ($vars[$value]); //sweeping the NULL ones
}
$where_clause = $vars[0]; //the only remaining value after previous cleanup
$where = '';
if (count($whereClauses) > 0) {
$where = ' WHERE '.implode(' AND ',$whereClauses);
}
$sql5 = mysql_query("SELECT * FROM $tbl_name".$where);
Dies funktioniert überhaupt nicht. Es sollte funktionieren wie www.domain.com/page.php?mobile=Samsung&mins=500
- die Vars sollten verwendet werden, um die Suche durchzuführen.
Was ist die Frage hier? – iambriansreed
Meine Anfrage für 'Plan' ist' 1 '= 1 ODER 1 = 1' (oder ähnlich im Geiste). Dies wird an einem Tag durch die Monatsbandbreitenzuteilung essen. –
Sie sind derzeit sehr anfällig für SQL Injection mit diesem Code. Da ich eine Zeichenfolge wie diese in der URL 'model = 1 = 1 LIMIT 1000000; übergeben könnte, die Ihre Datenbank durch die Rückgabe von einer Million Datensätze lähmen würde. Könnte unter den richtigen Bedingungen viel schlimmer machen. – DampeS8N