Buenas a todos !!!
Llevo horas intentando averiguar como poder generar un formulario para hacer una peticion sql a phpmyadmin y estoy acabando de los nervios...
La pregunta es si alguien sabe a que archivo php debo realizar la consulta y que parametros necesito.
He estado con el temperdata realizando peticiones pero NPI de lo que manda ni como lo hace ya que se escapa de mis conocimientos.
Gracias y un saludo
<!-- Modificado 17/04/2013 a las 13:23 -->
Bueno aporto los siguientes datos para ver si alguien lo entiende mejor.
Tenemos el archivo querywindow.php que se encarga de mostrar la pagina para hacer la peticion el codigo del Form es el siguiente:
<form method="post" id="sqlqueryform" target="frame_content" action="import.php" enctype="multipart/form-data" name="sqlform"
onsubmit="var save_name = window.opener.parent.frame_content.name;
window.opener.parent.frame_content.name = save_name + '1366197671';
this.target = window.opener.parent.frame_content.name;
return checkSqlQuery(this)">
<input type="hidden" name="focus_querywindow" value="true" /> <input type="hidden" name="is_js_confirmed" value="0" /> <input type="hidden" name="db" value="information_schema" /><input type="hidden" name="table" value="USER_PRIVILEGES" /><input type="hidden" name="token" value="1da3fdab31690437221d1fe18cfffa59" /> <input type="hidden" name="pos" value="0" /> <input type="hidden" name="goto" value="tbl_sql.php" /> <input type="hidden" name="message_to_show" value="Su consulta se ejecutó con éxito" /> <input type="hidden" name="prev_sql_query" value="" /> <div id="queryboxcontainer"> <legend>Ejecutar la(s) consulta(s) SQL en la base de datos
<a href="db_structure.php?db=information_schema&token=1da3fdab31690437221d1fe18cfffa59" target="_self" onclick="this.target=window.opener.frame_content.name">information_schema
</a>:
<a href="./url.php?url=http%3A%2F%2Fdev.mysql.com%2Fdoc%2Frefman%2F5.5%2Fen%2Fselect.html&token=1da3fdab31690437221d1fe18cfffa59" target="mysql_doc"><img src="themes/dot.gif" title="Documentación" alt="Documentación" class="icon ic_b_help" /></a></legend> <div id="queryfieldscontainer"> <div id="sqlquerycontainer"> <textarea tabindex="100" name="sql_query" id="sqlquery" cols="40" rows="18.75" dir="ltr" onkeypress="document.sqlform.elements['LockFromUpdate'].checked = true;">SELECT * FROM `USER_PRIVILEGES` WHERE 1
</textarea> <input type="button" value="SELECT *" id="selectall" class="sqlbutton" /><input type="button" value="SELECT" id="select" class="sqlbutton" /><input type="button" value="INSERT" id="insert" class="sqlbutton" /><input type="button" value="UPDATE" id="update" class="sqlbutton" /><input type="button" value="DELETE" id="delete" class="sqlbutton" /><input type="button" value="Limpiar" id="clear" class="sqlbutton" /></div> <div id="tablefieldscontainer"> <select id="tablefields" name="dummy" size="13" multiple="multiple" ondblclick="insertValueQuery()"> <option value="`TABLE_CATALOG`" title="">TABLE_CATALOG
</option> <option value="`PRIVILEGE_TYPE`" title="">PRIVILEGE_TYPE
</option> <option value="`IS_GRANTABLE`" title="">IS_GRANTABLE
</option> <div id="tablefieldinsertbuttoncontainer"> <input type="button" name="insert" value="<<" onclick="insertValueQuery()" title="Insertar" /> <div class="clearfloat"></div> <div id="bookmarkoptions"> <div class="formelement"> Guardar esta consulta en favoritos:
</label> <input type="text" name="bkm_label" id="bkm_label" tabindex="110" value="" /> <div class="formelement"> <input type="checkbox" name="bkm_all_users" tabindex="111" id="id_bkm_all_users" value="true" />
<label for="id_bkm_all_users"> Permitir que todo usuario pueda acceder a este favorito
</label> <div class="formelement"> <input type="checkbox" name="bkm_replace" tabindex="112" id="id_bkm_replace" value="true" />
<label for="id_bkm_replace"> Reemplazar el favorito existente que tenga el mismo nombre
</label> <div class="clearfloat"></div> <fieldset id="queryboxfooter" class="tblFooters"> <div class="formelement"> <script type="text/javascript"> //<![CDATA[
document.writeln(' <input type="checkbox" name="LockFromUpdate" checked="checked" tabindex="120" id="checkbox_lock" /> <label for="checkbox_lock">No sobreescribir esta consulta desde fuera de la ventana</label> ');
//]]>
<div class="formelement"> <label for="id_sql_delimiter">[ Delimitador
</label> <input type="text" name="sql_delimiter" tabindex="131" size="3" value=";" id="id_sql_delimiter" /> ]
<input type="checkbox" name="show_query" value="1" id="checkbox_show_query" tabindex="132" checked="checked" /> <label for="checkbox_show_query">Mostrar esta consulta otra vez
</label> <input type="submit" id="button_submit_query" name="SQL" tabindex="200" value="Continuar" /> <div class="clearfloat"></div>
Como podeis ver la peticion la realiza a "import.php" y por ejemplo, al hacer "SELECT * FROM `USER_PRIVILEGES` y dar al submit envia el siguiente contenido.
-----------------------------12411563315856\r\nContent-Disposition: form-data; name="focus_querywindow"\r\n\r\ntrue\r\n-----------------------------12411563315856\r\nContent-Disposition: form-data; name="is_js_confirmed"\r\n\r\n0\r\n-----------------------------12411563315856\r\nContent-Disposition: form-data; name="db"\r\n\r\ninformation_schema\r\n-----------------------------12411563315856\r\nContent-Disposition: form-data; name="table"\r\n\r\nUSER_PRIVILEGES\r\n-----------------------------12411563315856\r\nContent-Disposition: form-data; name="token"\r\n\r\n1da3fdab31690437221d1fe18cfffa59\r\n-----------------------------12411563315856\r\nContent-Disposition: form-data; name="pos"\r\n\r\n0\r\n-----------------------------12411563315856\r\nContent-Disposition: form-data; name="goto"\r\n\r\ntbl_sql.php\r\n-----------------------------12411563315856\r\nContent-Disposition: form-data; name="message_to_show"\r\n\r\nSu consulta se ejecutó con éxito\r\n-----------------------------12411563315856\r\nContent-Disposition: form-data; name="prev_sql_query"\r\n\r\n\r\n-----------------------------12411563315856\r\nContent-Disposition: form-data; name="sql_query"\r\n\r\nSELECT * FROM `USER_PRIVILEGES`\r\n-----------------------------12411563315856\r\nContent-Disposition: form-data; name="bkm_label"\r\n\r\n\r\n-----------------------------12411563315856\r\nContent-Disposition: form-data; name="LockFromUpdate"\r\n\r\non\r\n-----------------------------12411563315856\r\nContent-Disposition: form-data; name="sql_delimiter"\r\n\r\n;\r\n-----------------------------12411563315856\r\nContent-Disposition: form-data; name="show_query"\r\n\r\n1\r\n-----------------------------12411563315856\r\nContent-Disposition: form-data; name="SQL"\r\n\r\nContinuar\r\n-----------------------------12411563315856--\r\n
Bueno, os preguntareis por que no creo yo mi propio php para hacer una consulta directa a MySql sin pasar por phpMyAdmin, la respuesta es sencilla, phpMyAdmin no tiene pass y MySql sí. Entonces quiero aprovechar el PMA para realizar la consulta automaticamente
, simplemente por diversion, en general estoy programando en C# un programita que haga una consulta concreta para crear un arcihivo en el servidor, ya me entendeis "into outfile".
Antes de que digais nada, ya e probado de hacer la select manualmente desdel browser y, efectivamente, me genera el archivo (un php que me da una shell
) y bueno queria automatizar un poco esto, y la idea es esa primero probar yo de crear un form como ese pero mucho mas simple para ver que valores son realmente los necesarios y como mandarlos, luego cuando sepa ya eso podre con C# adaptarlo mejor, aunke al usar tokens y puede que cookies me se complique un poco mas la cosa :S
Bueno un saludo y seguire probando en los ratos libres.