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   -
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

/**********************************************************/


<?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

Utilisateur anonyme
 
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.
0
Kafiristanica Messages postés 266 Date d'inscription   Statut Membre Dernière intervention   28
 
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]); 
 }   

} 


} 

?>
0