<?php
// ------------------------------------------------------------------------- //
// Admin Generator 1.1 //
// ------------------------------------------------------------------------- //
// Auteur: Leopold Vallauri <lvallauri@hotmail.com> //
// Web: http://www.kbumbaz.fr.st/ //
// ------------------------------------------------------------------------- //
/*
Ce script permet à partir d'une table SQL de générer un fichier admin_nomdetable
permettant l'ajout, la modification, et la suppression de données dans cette
table.
*/
function generate($mysql_host, $mysql_user, $mysql_pass, $mysql_db, $mysql_table,
$mysql_unik, $file_ext)
{
if ($mysql_link = @mysql_connect($mysql_host,$mysql_user,$mysql_pass))
{
$mysql_query = "DESC $mysql_table";
if ($mysql_result = @mysql_db_query($mysql_db, $mysql_query, $mysql_link) )
{
while ($mysql_final_data = @mysql_fetch_row($mysql_result) )
{
$mysql_table_champs[] = $mysql_final_data[0];
}
echo "Récuperation des champs de la table OK !";
$file_name = "admin_$mysql_table.$file_ext";
if ($pf = fopen($file_name,"w"))
{
$str2write="";
$str2wrt.="<?\n";
$str2wrt.="function draw_menu_admin(\$mysql_table){\n";
$str2wrt.=" print(\"\n";
$str2wrt.="<form name=\\\"FGetAction\\\" method=\\\"post\\\" action=\\\"#\\\">\n";
$str2wrt.=" <table width=\\\"400\\\" border=\\\"0\\\" cellspacing=\\\"10\\\" cellpadding=\\\"0\\\" align=\\\"center\\\">\n";
$str2wrt.=" <tr> \n";
$str2wrt.=" <td colspan=\\\"2\\\" align=\\\"center\\\"> \n";
$str2wrt.=" <hr>\n";
$str2wrt.=" </td>\n";
$str2wrt.=" </tr>\n";
$str2wrt.=" <tr> \n";
$str2wrt.=" <td colspan=\\\"2\\\" align=\\\"center\\\"> \n";
$str2wrt.=" <h1>Administration de la table</h1>\n";
$str2wrt.=" <p><b><i>\$mysql_table</i></b></p>\n";
$str2wrt.=" <p>Que faire sur la table \$mysql_table ?</p>\n";
$str2wrt.=" </td>\n";
$str2wrt.=" </tr>\n";
$str2wrt.=" <tr> \n";
$str2wrt.=" <td colspan=\\\"2\\\" align=\\\"center\\\"> \n";
$str2wrt.=" <hr>\n";
$str2wrt.=" </td>\n";
$str2wrt.=" </tr>\n";
$str2wrt.=" <tr> \n";
$str2wrt.=" <td align=\\\"right\\\" valign=\\\"middle\\\">Action :</td>\n";
$str2wrt.=" <td>\n";
$str2wrt.=" <select name=\\\"saction\\\">\n";
$str2wrt.=" <option value=\\\"draw_add_screen\\\">Ajouter</option>\n";
$str2wrt.=" <option value=\\\"draw_update_screen\\\">Modifier</option>\n";
$str2wrt.=" <option value=\\\"draw_delete_screen\\\">Supprimer</option>\n";
$str2wrt.=" </select>\n";
$str2wrt.=" </td>\n";
$str2wrt.=" </tr>\n";
$str2wrt.=" <tr> \n";
$str2wrt.=" <td colspan=\\\"2\\\" align=\\\"center\\\"> \n";
$str2wrt.=" <input type=\\\"submit\\\" value=\\\"OK\\\">\n";
$str2wrt.=" </td>\n";
$str2wrt.=" </tr>\n";
$str2wrt.=" <tr> \n";
$str2wrt.=" <td colspan=\\\"2\\\" align=\\\"center\\\"> \n";
$str2wrt.=" <hr>\n";
$str2wrt.=" </td>\n";
$str2wrt.=" </tr>\n";
$str2wrt.=" </table>\n";
$str2wrt.="</form>\n";
$str2wrt.=" \");\n";
$str2wrt.="};\n";
$str2wrt.="\n";
$str2wrt.="function draw_add_screen() {\n";
$str2wrt.=" printf(\"\n";
$str2wrt.="<form name=\\\"FGetAdd\\\" method=\\\"post\\\" action=\\\"#\\\">\n";
$str2wrt.="<input type=\\\"hidden\\\" name=\\\"action\\\" value=\\\"add_req\\\">\n";
$str2wrt.="<table width=\\\"400\\\" border=\\\"0\\\" cellspacing=\\\"10\\\" cellpadding=\\\"0\\\" align=\\\"center\\\">\n";
$str2wrt.=" <tr> \n";
$str2wrt.=" <td colspan=\\\"2\\\"><hr></td>\n";
$str2wrt.=" </tr>\n";
$str2wrt.=" <tr> \n";
$str2wrt.=" <td colspan=\\\"2\\\" align=\\\"center\\\">Ajouter</td>\n";
$str2wrt.=" </tr>\n";
$str2wrt.=" <tr> \n";
$str2wrt.=" <td colspan=\\\"2\\\"><hr></td>\n";
$str2wrt.=" </tr>\n";
$str2wrt.=" <tr> \n";
$str2wrt.=" <td align=\\\"center\\\">Champs</td>\n";
$str2wrt.=" <td align=\\\"center\\\">Valeur</td>\n";
$str2wrt.=" </tr>\n";
$str2wrt.=" <tr> \n";
$str2wrt.=" <td colspan=\\\"2\\\"><hr></td>\n";
$str2wrt.=" </tr>\");\n";
$str2wrt.="\n";
$str2wrt.="print(\"\n";
for ($i=0; $i < count($mysql_table_champs) ;$i++ )
{
$str2wrt.=" <td align=\\\"right\\\">$mysql_table_champs[$i] :</td>\n";
$str2wrt.=" <td align=\\\"left\\\"><textarea name=\\\"champ_$mysql_table_champs[$i]\\\"></textarea></td>\n";
$str2wrt.=" <tr>\n";
}
$str2wrt.=" </tr>\n";
$str2wrt.="\");\n";
$str2wrt.=" printf(\"\n";
$str2wrt.=" <tr> \n";
$str2wrt.=" <td colspan=\\\"2\\\"><hr></td>\n";
$str2wrt.=" </tr>\n";
$str2wrt.=" <tr> \n";
$str2wrt.=" <td colspan=\\\"2\\\" align=\\\"center\\\">\n";
$str2wrt.=" <input type=\\\"submit\\\" value=\\\"Ajouter\\\">\n";
$str2wrt.=" </td>\n";
$str2wrt.=" </tr>\n";
$str2wrt.=" <tr> \n";
$str2wrt.=" <td colspan=\\\"2\\\"><hr></td>\n";
$str2wrt.=" </tr>\n";
$str2wrt.="</table>\n";
$str2wrt.="</form>\");\n";
$str2wrt.="};\n";
$str2wrt.="\n";
$str2wrt.="function draw_update_screen(\$mysql_host,\$mysql_user,\$mysql_pass, \$mysql_db, \$mysql_table, \$mysql_field_idx) {\n";
$str2wrt.=" printf(\"\n";
$str2wrt.="<form name=\\\"FGetUpdate\\\" method=\\\"post\\\" action=\\\"#\\\">\n";
$str2wrt.="<input type=\\\"hidden\\\" name=\\\"action\\\" value=\\\"update_req\\\">\n";
$str2wrt.="<table width=\\\"400\\\" border=\\\"0\\\" cellspacing=\\\"10\\\" cellpadding=\\\"0\\\" align=\\\"center\\\">\n";
$str2wrt.=" <tr> \n";
$str2wrt.=" <td colspan=\\\"2\\\"><hr></td>\n";
$str2wrt.=" </tr>\n";
$str2wrt.=" <tr> \n";
$str2wrt.=" <td colspan=\\\"2\\\" align=\\\"center\\\">Modifier</td>\n";
$str2wrt.=" </tr>\n";
$str2wrt.=" <tr> \n";
$str2wrt.=" <td colspan=\\\"2\\\"><hr></td>\n";
$str2wrt.=" </tr>\n";
$str2wrt.=" <tr>\n";
$str2wrt.=" <td colspan=\\\"2\\\" align=\\\"center\\\">\n";
$str2wrt.=" <select name=\\\"uidx\\\">\");\n";
$str2wrt.="\n";
$str2wrt.=" if (\$mysql_link = @mysql_connect(\$mysql_host,\$mysql_user,\$mysql_pass)) {\n";
$str2wrt.=" \$mysql_query = \"select \$mysql_field_idx from \$mysql_table\";\n";
$str2wrt.=" if (\$mysql_result = @mysql_db_query(\$mysql_db, \$mysql_query, \$mysql_link) ) {\n";
$str2wrt.=" while (\$mysql_final_data = @mysql_fetch_row(\$mysql_result) ) {\n";
$str2wrt.=" echo \" <option value=\\\"\$mysql_final_data[0]\\\">\$mysql_final_data[0]</option>\";\n";
$str2wrt.=" }\n";
$str2wrt.=" }else\n";
$str2wrt.=" echo \"PB >\";\n";
$str2wrt.=" @mysql_free_result(\$mysql_result);\n";
$str2wrt.=" }else\n";
$str2wrt.=" echo \"PB > Conexion au serveur MySQL \$mysql_host Impossbile !\";\n";
$str2wrt.="\n";
$str2wrt.=" printf(\"\n";
$str2wrt.=" </select>\n";
$str2wrt.=" </td>\n";
$str2wrt.=" </tr>\n";
$str2wrt.=" <tr> \n";
$str2wrt.=" <td colspan=\\\"2\\\"><hr></td>\n";
$str2wrt.=" </tr>\n";
$str2wrt.=" <tr> \n";
$str2wrt.=" <td align=\\\"center\\\">Champs</td>\n";
$str2wrt.=" <td align=\\\"center\\\">Valeur</td>\n";
$str2wrt.=" </tr>\n";
$str2wrt.=" <tr> \n";
$str2wrt.=" <td colspan=\\\"2\\\"><hr></td>\n";
$str2wrt.=" </tr>\");\n";
$str2wrt.="\n";
$str2wrt.="print(\"\n";
for ($i=0; $i < count($mysql_table_champs) ;$i++ )
{
$str2wrt.=" <td align=\\\"right\\\">$mysql_table_champs[$i] :</td>\n";
$str2wrt.=" <td align=\\\"left\\\"><textarea name=\\\"champ_$mysql_table_champs[$i]\\\"></textarea></td>\n";
$str2wrt.=" <tr>\n";
}
$str2wrt.=" </tr>\n";
$str2wrt.="\");\n";
$str2wrt.=" printf(\"\n";
$str2wrt.=" <tr> \n";
$str2wrt.=" <td colspan=\\\"2\\\"><hr></td>\n";
$str2wrt.=" </tr>\n";
$str2wrt.=" <tr> \n";
$str2wrt.=" <td colspan=\\\"2\\\" align=\\\"center\\\">\n";
$str2wrt.=" <input type=\\\"submit\\\" value=\\\"Modifier\\\">\n";
$str2wrt.=" </td>\n";
$str2wrt.=" </tr>\n";
$str2wrt.=" <tr> \n";
$str2wrt.=" <td colspan=\\\"2\\\"><hr></td>\n";
$str2wrt.=" </tr>\n";
$str2wrt.="</table>\n";
$str2wrt.="</form>\");\n";
$str2wrt.="};\n";
$str2wrt.="\n";
$str2wrt.="function draw_delete_screen(\$mysql_host,\$mysql_user,\$mysql_pass, \$mysql_db, \$mysql_table, \$mysql_field_idx) {\n";
$str2wrt.=" printf(\"\n";
$str2wrt.="<form name=\\\"FGetDelete\\\" method=\\\"post\\\" action=\\\"#\\\">\n";
$str2wrt.="<input type=\\\"hidden\\\" name=\\\"action\\\" value=\\\"delete_req\\\">\n";
$str2wrt.="<table width=\\\"400\\\" border=\\\"0\\\" cellspacing=\\\"10\\\" cellpadding=\\\"0\\\" align=\\\"center\\\">\n";
$str2wrt.=" <tr> \n";
$str2wrt.=" <td colspan=\\\"2\\\"><hr></td>\n";
$str2wrt.=" </tr>\n";
$str2wrt.=" <tr> \n";
$str2wrt.=" <td colspan=\\\"2\\\" align=\\\"center\\\">Supprimer</td>\n";
$str2wrt.=" </tr>\n";
$str2wrt.=" <tr> \n";
$str2wrt.=" <td colspan=\\\"2\\\"><hr></td>\n";
$str2wrt.=" </tr>\n";
$str2wrt.=" <tr>\n";
$str2wrt.=" <td colspan=\\\"2\\\" align=\\\"center\\\">\n";
$str2wrt.=" <select name=\\\"didx\\\">\");\n";
$str2wrt.="\n";
$str2wrt.=" if (\$mysql_link = @mysql_connect(\$mysql_host,\$mysql_user,\$mysql_pass)) {\n";
$str2wrt.=" \$mysql_query = \"select \$mysql_field_idx from \$mysql_table\";\n";
$str2wrt.=" if (\$mysql_result = @mysql_db_query(\$mysql_db, \$mysql_query, \$mysql_link) ) {\n";
$str2wrt.=" while (\$mysql_final_data = @mysql_fetch_row(\$mysql_result) ) {\n";
$str2wrt.=" echo \" <option value=\\\"\$mysql_final_data[0]\\\">\$mysql_final_data[0]</option>\";\n";
$str2wrt.=" }\n";
$str2wrt.=" }else\n";
$str2wrt.=" echo \"PB >\";\n";
$str2wrt.=" @mysql_free_result(\$mysql_result);\n";
$str2wrt.=" }else\n";
$str2wrt.=" echo \"PB > Conexion au serveur MySQL \$mysql_host Impossbile !\";\n";
$str2wrt.="\n";
$str2wrt.=" printf(\"\n";
$str2wrt.=" </select>\n";
$str2wrt.=" </td>\n";
$str2wrt.=" </tr>\n";
$str2wrt.=" <tr> \n";
$str2wrt.=" <td colspan=\\\"2\\\"><hr></td>\n";
$str2wrt.=" </tr>\n";
$str2wrt.=" <tr> \n";
$str2wrt.=" <td colspan=\\\"2\\\" align=\\\"center\\\">\n";
$str2wrt.=" <input type=\\\"submit\\\" value=\\\"Supprimer\\\">\n";
$str2wrt.=" </td>\n";
$str2wrt.=" </tr>\n";
$str2wrt.=" <tr> \n";
$str2wrt.=" <td colspan=\\\"2\\\"><hr></td>\n";
$str2wrt.=" </tr>\n";
$str2wrt.="</table>\n";
$str2wrt.="</form>\");\n";
$str2wrt.="};\n";
$str2wrt.="\n";
$str2wrt.="\n";
$str2wrt.="function req(\$mysql_host,\$mysql_user,\$mysql_pass, \$mysql_db, \$mysql_table, \$mysql_query, \$query_type) {\n";
$str2wrt.=" if (\$mysql_link = @mysql_connect(\$mysql_host,\$mysql_user,\$mysql_pass)) {\n";
$str2wrt.=" if (\$mysql_result = @mysql_db_query(\$mysql_db, \$mysql_query, \$mysql_link) ) {\n";
$str2wrt.=" if ( \$query_type == \"add\" )\n";
$str2wrt.=" echo \"Insertion OK !\";\n";
$str2wrt.=" elseif ( \$query_type == \"update\" )\n";
$str2wrt.=" echo \"Mise a jour OK !\";\n";
$str2wrt.=" elseif ( \$query_type == \"delete\" )\n";
$str2wrt.=" echo \"Suppression OK !\";\n";
$str2wrt.=" }else{\n";
$str2wrt.=" if ( \$query_type == \"add\" )\n";
$str2wrt.=" echo \"PB > Insertion \$mysql_query !\";\n";
$str2wrt.=" elseif ( \$query_type == \"update\" )\n";
$str2wrt.=" echo \"PB > Mise a jour \$mysql_query !\";\n";
$str2wrt.=" elseif ( \$query_type == \"delete\" )\n";
$str2wrt.=" echo \"PB > Suppression \$mysql_query !\";\n";
$str2wrt.="\n";
$str2wrt.=" }\n";
$str2wrt.=" @mysql_free_result(\$mysql_result);\n";
$str2wrt.=" }else\n";
$str2wrt.=" echo \"PB > Conexion au serveur MySQL \$mysql_host Impossbile !\";};\n";
$str2wrt.="\n";
$str2wrt.="\$mysql_host = \"$mysql_host\";\n";
$str2wrt.="\$mysql_user = \"$mysql_user\";\n";
$str2wrt.="\$mysql_pass = \"$mysql_pass\";\n";
$str2wrt.="\$mysql_db = \"$mysql_db\";\n";
$str2wrt.="\$mysql_table = \"$mysql_table\";\n";
$str2wrt.="\$mysql_field_idx = \"$mysql_unik\";\n";
$str2wrt.="\n";
$str2wrt.="if ( !isset(\$action) && !isset(\$saction) )\n";
$str2wrt.=" draw_menu_admin(\$mysql_table);\n";
$str2wrt.="elseif ( \$saction==\"draw_add_screen\" )\n";
$str2wrt.=" draw_add_screen();\n";
$str2wrt.="elseif ( \$action==\"add_req\" ) {\n";
$str2wrt.=" \$mysql_query = \"INSERT INTO \$mysql_table VALUES(";
for ($i=0; $i < count($mysql_table_champs) ;$i++ )
{
$str2wrt .= "'\".\$champ_$mysql_table_champs[$i].\"'";
if ($i != count($mysql_table_champs)-1)
$str2wrt .= ", ";
}
$str2wrt.=")\";\n";
$str2wrt.=" req(\$mysql_host,\$mysql_user,\$mysql_pass, \$mysql_db, \$mysql_table, \$mysql_query, \"add\");\n";
$str2wrt.="}elseif ( \$saction==\"draw_update_screen\" )\n";
$str2wrt.=" draw_update_screen(\$mysql_host,\$mysql_user,\$mysql_pass, \$mysql_db, \$mysql_table, \$mysql_field_idx);\n";
$str2wrt.="elseif ( \$action==\"update_req\" ) {\n";
$str2wrt.=" \$mysql_query = \"UPDATE \$mysql_table SET ";
for ($i=0; $i < count($mysql_table_champs) ;$i++ )
{
$str2wrt .= "$mysql_table_champs[$i]='\".\$champ_$mysql_table_champs[$i].\"'";
if ($i != count($mysql_table_champs)-1)
$str2wrt .= ", ";
}
$str2wrt.=" WHERE \$mysql_field_idx = '\".\$uidx.\"'\";\n";
$str2wrt.=" req(\$mysql_host,\$mysql_user,\$mysql_pass, \$mysql_db, \$mysql_table, \$mysql_query, \"update\");\n";
$str2wrt.="}elseif ( \$saction==\"draw_delete_screen\" )\n";
$str2wrt.=" draw_delete_screen(\$mysql_host,\$mysql_user,\$mysql_pass, \$mysql_db, \$mysql_table, \$mysql_field_idx);\n";
$str2wrt.="elseif ( \$action==\"delete_req\" ) {\n";
$str2wrt.=" \$mysql_query = \"DELETE FROM \$mysql_table WHERE \$mysql_field_idx = '\".\$didx.\"'\";\n";
$str2wrt.=" req(\$mysql_host,\$mysql_user,\$mysql_pass, \$mysql_db, \$mysql_table, \$mysql_query, \"delete\");\n";
$str2wrt.="}\n";
$str2wrt.="?".">\n";
if ( fputs($pf,$str2wrt) )
echo "Génération Complète !";
}
else
echo "PB > Création du fichier $filename Impossible !";
}
else
echo "PB > Listing des champs de la table $mysql_table Impossbile !";
@mysql_free_result($mysql_result);
}
else
echo "PB > Conexion au serveur MySQL $mysql_host Impossbile !";
}
function get_info()
{
// Formulaire de saisie des informations nécessaires à la génération ...
print("
<form name=\"FGetInfo\" method=\"post\" action=\"#\">
<input type=\"hidden\" name=\"action\" value=\"generate\">
<table width=\"400\" border=\"0\" cellspacing=\"10\" cellpadding=\"0\" align=\"center\">
<tr>
<td colspan=\"2\" align=\"center\">
<hr>
</td>
</tr>
<tr>
<td colspan=\"2\" align=\"center\">
<h1>Admin Generator v 0.0</h1>
Saisie des informations nécessaires à la génération ...
</td>
</tr>
<tr>
<td colspan=\"2\" align=\"center\">
<hr>
</td>
</tr>
<tr>
<td align=\"right\" valign=\"middle\">Hote :</td>
<td>
<input type=\"text\" name=\"mysql_host\" value=\"localhost\">
</td>
</tr>
<tr>
<td align=\"right\" valign=\"middle\">Utilisateur :</td>
<td>
<input type=\"text\" name=\"mysql_user\" value=\"root\">
</td>
</tr>
<tr>
<td align=\"right\" valign=\"middle\">Mot de Passe :</td>
<td>
<input type=\"text\" name=\"mysql_pass\" value=\"\">
</td>
</tr>
<tr>
<td align=\"right\" valign=\"middle\">DB Name :</td>
<td>
<input type=\"text\" name=\"mysql_db\" value=\"\">
</td>
</tr>
<tr>
<td align=\"right\" valign=\"middle\">Nom de la Table :</td>
<td>
<input type=\"text\" name=\"mysql_table\" value=\"\">
</td>
</tr>
<tr>
<td align=\"right\" valign=\"middle\">Extension :</td>
<td>
<input type=\"radio\" name=\"file_ext\" value=\"php3\" checked> .php3 | .php <input type=\"radio\" name=\"file_ext\" value=\"php\">
</td>
</tr>
<tr>
<td align=\"right\" valign=\"middle\">Champ Unique :</td>
<td>
<input type=\"text\" name=\"mysql_unik\" value=\"\">
</td>
</tr>
<tr>
<td colspan=\"2\" align=\"center\">
<input type=\"submit\" value=\"Générer\">
</td>
</tr>
<tr>
<td colspan=\"2\" align=\"center\">
<hr>
</td>
</tr>
</table>
</form>");
}
if (! isset($action) )
get_info();
elseif ($action=="generate")
generate($mysql_host, $mysql_user, $mysql_pass, $mysql_db, $mysql_table, $mysql_unik, $file_ext);
else
echo "PB > Erreur dans l'attribtutions d'actions !";
?>