Besoin de validation (php)
Kafiristanica
Messages postés
266
Date d'inscription
Statut
Membre
Dernière intervention
-
Kafiristanica Messages postés 266 Date d'inscription Statut Membre Dernière intervention -
Kafiristanica Messages postés 266 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je suis actuellement loin de chez moi et j'ai eu une idée (-_-) ...
Je me suis donc procuré un pc pour rédiger ce petit code sous bloc-note.
Y aurait il quelqu'un qui puisse regarder s'il fonctionne ? J'ai vraiment envie de savoir (pauvre geek qui est en moi).
/**********************************************************/
Effectue une requete SELECT à N-nom de colonne dans une base de donnée deja ouverte
/**********************************************************/
Bonne vacance a tous sous ce beau soleil.
Je suis actuellement loin de chez moi et j'ai eu une idée (-_-) ...
Je me suis donc procuré un pc pour rédiger ce petit code sous bloc-note.
Y aurait il quelqu'un qui puisse regarder s'il fonctionne ? J'ai vraiment envie de savoir (pauvre geek qui est en moi).
/**********************************************************/
Effectue une requete SELECT à N-nom de colonne dans une base de donnée deja ouverte
/**********************************************************/
<?php
function Select_Mysql()
{
/*récupération du nom des valeurs à récupérer (les n-2 premieres valeurs) + nom de la table (avant derniere valeur) + argument de connection(con)(derniere valeur)*/
$arguments = func_get_args();
$nb = sizeof($arguments);
/*recupération des noms de colonnes*/
/*creation de la requete*/
$requete = "SELECT";
if($nb>2)
{
for($i=0;$i <=$nb-2;$i++)
{
$requete.= $arguments[$i];
}
}
$requete.= "FROM $arguments[$nb-1]";
/* Envoie d'une requête */
mysql_query($requete, $argument[$nb]);
}
?>
Bonne vacance a tous sous ce beau soleil.
2 réponses
-
Bonjour
Je n'ai pas essayé, mais à vue d'oeil, comme ça :
- ça manque d'espaces un peu partout, entre autres après SELECT et avant FROM
- ça manque de virgules entre les paramètres.
- c'est bien joli de faire un SELECT, mais tu fais quoi du résultat ?
- ça dépend des contrôles que tu fais avant, mais c'est une jolie porte ouverte aux injections SQL.
Laisse le pauvre geek qui est en toi bronzer tranquillement, il arrivera bien à survivre quelque temps sans informatique. -
Merci pour ta réponse
Effectivement niveau securité c'est pas top va falloir blinder
Peut etre est ce mieux ?
<?php function Select_Mysql() { /*récupération du nom des valeurs à récupérer (les n-2 premieres valeurs) + nom de la table (avant derniere valeur) + argument de connection(con)(derniere valeur)*/ $arguments = func_get_args(); $nb = sizeof($arguments); /*recupération des noms de colonnes*/ /*creation de la requete*/ $requete = "SELECT "; /*creation de la validation des noms colonnes*/ $tab = "array( "; if($nb>2) { for($i=0;$i <=$nb-2;$i++) { $tab .= $arguments[$i]; $requete.= $arguments[$i].", "; } } $tab .= ");"; $requete.= " FROM $arguments[$nb-1]"; /*securite nom de colonne*/ $valide=0; $rows = mysql_query("describe $arguments[$nb-1]"); while ($row = mysql_fetch_assoc($rows)) { for($i=0;$i<=$nb-2) { if(in_array($arguments[$i], $rows) || $arguments[$i] == "*") { $valid ++; } } } /*securite nom de table*/ $sql = "SHOW TABLES"; $rows = mysql_query($sql); while ($row = mysql_fetch_assoc($rows)) { if(in_array($arguments[$nb-1], $rows)) && $valid == $nb-2) { /* Envoie d'une requête */ mysql_query($requete, $argument[$nb]); } } } ?>