Sql/exe executeur de requettes sql

Soyez le premier à donner votre avis sur cette source.

Snippet vu 6 007 fois - Téléchargée 14 fois

Contenu du snippet

Ce script execute des requette SQL sur une base de donnees MYSQL que vous entrez qu prealable.
Il fonctionne avec des cookies. Des que le cookie est cree vous pouvez lancer les differentes requette
de projection ,insertion et mise a jour selon vos droits.

Source / Exemple :


<?
//SQL/EXE par Mohamed kabir KONE 
//Creation 05/02/2011

//si les cookes d'infos de BD n'existent pas
if(!$_COOKIE['host'] and !$_COOKIE['user'] and !$_COOKIE['password'] and !$_COOKIE['db'] or $_GET['q'] == 'deconnexion'){
if(isset($_GET['q']) and $_GET['q'] == 'deconnexion'){//si l'user veut entrer de nouvelle informations de BD
 setcookie("host");
 setcookie("user");
 setcookie("password");
 setcookie("db");
} 
// si l'utilisateur vient juste d'entree les infos de bd et qu'elles ne sont pas vides
if(isset($_POST['host']) and $_POST['host'] !='' and isset($_POST['user']) and $_POST['user'] !='' and isset($_POST['password']) and $_POST['password'] !='' and isset($_POST['db']) and $_POST['db'] !=''){
$host = $_POST['host'];
$user = $_POST['user'];
$password = $_POST['password'];
$db = $_POST['db'];
//on cree les cookie contenant les infos de BD
 setcookie("host",$host,time()+86400);
 setcookie("user",$user,time()+86400);
 setcookie("password",$password,time()+86400);
 setcookie("db",$db,time()+86400);
//puis on affiche le formulaire de redaction de requettes
?>
<h1>SQL/EXE</h1>
<p><a href="?q=deconnexion">Deconnexion</a></p>
<p>MYSQL est deconnecte. Veuillez executer votre premiere requete pour qu'il demarre.</p>
<form method="POST" action="?q=yes">
<table>
<tr><td><p>Votre requete:</p></td></tr>
<tr><td><textarea style="min-width: 500px;min-height: 200px;" name="requete" id="requete"> Tapez votre requete ici</textarea></td></tr>
<tr><td><input type="submit" name="validation" id="validation" value="[Executer la Requete]"></td></tr>

</table>
</form>

<?
} else{
// sinon si les infos de BD n'existent pas
// il faut entrer les infos
?>
<html>
 <head>
 </head>
<body>
<h1>SQL/EXE</h1>
<h2>Remplissez tous les champs s'il vous plait.<br/>Ce script fonctionne avec des cookies</h2>
<form method="POST" action="?q=query">
<table>
<tr><td><p>Serveur hote:</p></td></tr>
<tr><td><input type = "text" style="min-width: 200px;min-height: 15px;" name="host" id="host"/></td></tr>
<tr><td><p>Utilisateur:</p></td></tr>
<tr><td><input type = "text" style="min-width: 200px;min-height: 15px;" name="user" id="user"/></td></tr>
<tr><td><p>Mot de Passe:</p></td></tr>
<tr><td><input type = "password" style="min-width: 200px;min-height: 15px;" name="password" id="password"/></td></tr>
<tr><td><p>Base de Donnee:</p></td></tr>
<tr><td><input type = "text" style="min-width: 200px;min-height: 15px;" name="db" id="db"/></td></tr>
<tr><td><input type="submit" name="validation" id="validation" value="[Connexion a la base]"></td></tr>
</table>
</form>
<?
}
} else{ 
//sinon si les cookies existent 
//on affiche le formulaire de redaction de requettes ou le resultat si 
//une requette a deja ete lancee.
?>
<html>
 <head>
 </head>
<body>
<h1>SQL/EXE</h1>
<p><a href="?q=deconnexion">Deconnexion</a></p>
<?
$host1 = $_COOKIE["host"];
$user1 = $_COOKIE["user"];
$password1 = $_COOKIE["password"];
$db1 = $_COOKIE["db"];
$connexion = mysql_connect($host1,$user1,$password1) or die('Eh djaaaa Ya erreeeeere ');
if($connexion){
 print '<p>MySQL est connecte avec l\'identifiant :'.$connexion.'</p>';
 print 'Vous etes connecte sur le serveur '.$host1.' en tant que '.$user1.' a la base de donnee '.$db1;
 mysql_select_db($db1);
if(isset($_POST['requete']) and $_GET['q'] == "yes"){
// si on vient juste d'entrer une requette
 $requete = $_POST['requete'];
 $reponse = @mysql_query($requete) or die('<p>Erreur lors de l\'execution de la requette</p> <p><a href="?q=back">Retour</a></p>');
 if($reponse) print '<p>Votre requete s\'est bien executee.</p><p><a href="?q=back">Retour</a></p><p>Resultats de la requette:</p>';
 
$y = mysql_num_fields($reponse);
$x = mysql_num_rows($reponse); 

print '<table style="border: solid #000 1px;">';
if($x>0){
for($i=0;$i<$y;$i++){//affichage des nom des differents champs
echo "<th>",mysql_field_name($reponse,$i)," </th>"; 
}
}

 for($i = 0; $i< $x; $i++){// affichage des tuples
  $donnee = mysql_fetch_array($reponse);
  print '<tr style="border: solid #000 1px;">';
  for($j = 0; $j< $y; $j++){
   print '<td style="border: solid #000 1px;">'.$donnee[$j].'</td>';
  }
  print '</tr>';
 }
print '</table>';
} else{
 //si on a pas encore entrer de requette ,affichage du formulaire de redaction de requette.
?>
<form method="POST" action="?q=yes">
<table>
<tr><td><p>Votre requete:</p></td></tr>
<tr><td><textarea style="min-width: 500px;min-height: 200px;" name="requete" id="requete"> Tapez votre requete ici</textarea></td></tr>
<tr><td><input type="submit" name="validation" id="validation" value="[Executer la Requete]"></td></tr>

</table>
</form>

<?
}
 mysql_close();
}  

  }
?>
</body>
</html>

Conclusion :


J'espere qu'il vous sera utile. Mais si vous y apportez des amelioration ,pensez a m'en faire part SVP.

A voir également

Ajouter un commentaire

Commentaires

enokbyreal
Messages postés
15
Date d'inscription
mercredi 21 janvier 2009
Statut
Membre
Dernière intervention
14 septembre 2010

aaaaah ok ouais je comprend mais le code devient un peu lourd merci pour tes eclaircissement !!!!
phpAnonyme
Messages postés
392
Date d'inscription
mercredi 28 octobre 2009
Statut
Membre
Dernière intervention
23 mars 2012
27
Non, c'est juste un commentaire(ou pseudo balise) qui sert de repère dans le code, et qui indique ou effectuer la boucle.
enokbyreal
Messages postés
15
Date d'inscription
mercredi 21 janvier 2009
Statut
Membre
Dernière intervention
14 septembre 2010

heu pardon plutot par "<?php while(...) ?>" ???
enokbyreal
Messages postés
15
Date d'inscription
mercredi 21 janvier 2009
Statut
Membre
Dernière intervention
14 septembre 2010

alors si j'ai bien compris ,<!-- boucle --> doit etre remplace par <?while(...) ?> ???
phpAnonyme
Messages postés
392
Date d'inscription
mercredi 28 octobre 2009
Statut
Membre
Dernière intervention
23 mars 2012
27
A l'arrache comme ça par exemple :

$articles = array(
array('id'=> 1, 'nom'=> 'art 1', 'date'=>'11-01-1111'),
array('id'=> 2, 'nom'=> 'art 2', 'date'=>'12-02-2222'),
array('id'=> 3, 'nom'=> 'art 3', 'date'=>'13-03-3333')
);

$contenu_recuperer_duTemplate = "
<!-- boucle -->
----

{id},
{nom},
{date},

<!-- fin boucle -->

";

class Looper
{
public function __construct($gabarit, $vars)
{
$begin = stripos($gabarit, '<!-- boucle -->');
$end = stripos($gabarit, '<!-- fin boucle -->');

$tempStock='';
foreach($vars as $k1 => $v1) {
$tempGabarit = substr($gabarit, $begin, ($end-$begin));
foreach($v1 as $k2 => $v2) {
$tempGabarit = preg_replace('/\{'.$k2.'\}/', $v2, $tempGabarit);
}
$tempStock .= $tempGabarit;
}

echo substr_replace($gabarit, $tempStock, $begin, ($end-$begin));
}

}

$objet = new Looper($contenu_recuperer_duTemplate, $articles);

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.