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:
Código
<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="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"> <fieldset id="querybox"> <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"> <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()"> </select> <div id="tablefieldinsertbuttoncontainer"> <input type="button" name="insert" value="<<" onclick="insertValueQuery()" title="Insertar" /> </div> </div> </div> <div id="bookmarkoptions"> <div class="formelement"> <label for="bkm_label"> Guardar esta consulta en favoritos:</label> <input type="text" name="bkm_label" id="bkm_label" tabindex="110" value="" /> </div> <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> <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> </div> </fieldset> </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> '); //]]> </script> </div> <div class="formelement"> <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" /> </div> <input type="submit" id="button_submit_query" name="SQL" tabindex="200" value="Continuar" /> </fieldset> </form>
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.
Código:
-----------------------------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.