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.
A voir également:
- Besoin de validation (php)
- Ethernet n'a pas de configuration ip valide - Guide
- Easy php - Télécharger - Divers Web & Internet
- Commande en cours de validation fnac - Forum Réseaux sociaux
- Commande Fnac en attente d’acceptation ✓ - Forum Consommation & Internet
- Cette valeur ne correspond pas aux restrictions de validation des données pour cette cellule ✓ - Forum MacOS
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.
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 ?
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]);
}
}
}
?>