Seite 1 von 1

mechanzie [phpmyadmin DB backup]

Verfasst: Donnerstag 28. März 2013, 14:25
von taake
Moin,

hab ein Problem mit mechanzie:

Code: Alles auswählen

import mechanize

br = mechanize.Browser()
br.set_handle_equiv(True)
br.set_handle_redirect(True)
br.set_handle_referer(True)
br.set_handle_robots(False)
br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1)
br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]

br.add_password('http://phpmyadmin[***]', '[.....]', '[....]')
br.open('http://phpmyadmin[....].net/server_export.php')

br.select_form("dump")
response = br.submit()

f=open("/tmp/sql_dump.sql", "w+")
f.write(response.read())
f.close()
Soweit so schlecht ...

die Datei /tmp/sql_dump.sql
enthält allerdings nicht den gewünschten dump sondern lediglich eine komische Fehlermeldung.

Code: Alles auswählen

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <link rel="icon" href="./favicon.ico" type="image/x-icon" />
    <link rel="shortcut icon" href="./favicon.ico" type="image/x-icon" />
    <title>phpMyAdmin</title>
    <link rel="stylesheet" type="text/css" href="phpmyadmin.css.php?server=1&token=0745[...]9d3&js_frame=right&nocache=5288293336" />
    <link rel="stylesheet" type="text/css" href="print.css" media="print" />
    <link rel="stylesheet" type="text/css" href="./themes/pmahomme/jquery/jquery-ui-1.8.custom.css" />
    <meta name="robots" content="noindex,nofollow" />
</head><body><p>export.php: Missing parameter: what<a href="Documentation.html#faqmissingparameters" target="documentation"><img class="icon" src="./themes/pmahomme/img/b_help.png" width="11" height="11" alt="Documentation" title="Documentation" /></a><br />export.php: Missing parameter: export_type<a href="Documentation.html#faqmissingparameters" target="documentation"><img class="icon" src="./themes/pmahomme/img/b_help.png" width="11" height="11" alt="Documentation" title="Documentation" /></a><br /></p></body></html>
Interessant dabei ist das:
<HiddenControl(export_type=server) (readonly)>

Hab leider keine Idee was hier schlief läuft, wäre für Hilfe dankbar.

Re: mechanzie [phpmyadmin DB backup]

Verfasst: Donnerstag 28. März 2013, 14:28
von Sr4l
Interessant ist vor allem dieser Teil der Fehlermeldung:
export.php: Missing parameter: what

Re: mechanzie [phpmyadmin DB backup]

Verfasst: Donnerstag 28. März 2013, 14:36
von taake
So mal das form

Code: Alles auswählen

<dump POST http://phpmyadmin[..].net/export.php application/x-www-form-urlencoded
  <HiddenControl(token=920a1d26ff6ea71f41b11e9a063f3290) (readonly)>
  <HiddenControl(export_type=server) (readonly)>
  <HiddenControl(export_method=quick) (readonly)>
  <RadioControl(quick_or_custom=[*quick, custom])>
  <SelectControl(db_select[]=[information_schema, db01, db02])>
  <RadioControl(output_format=[*sendit, astext])>
  <TextControl(filename_template=@SERVER@)>
  <CheckboxControl(remember_template=[*on])>
  <SelectControl(charset_of_file=[iso-8859-1, iso-8859-2, iso-8859-3, iso-8859-4, iso-8859-5, iso-8859-6, iso-8859-7, iso-8859-8, iso-8859-9, iso-8859-10, iso-8859-11, iso-8859-12, iso-8859-13, iso-8859-14, iso-8859-15, windows-1250, windows-1251, windows-1252, windows-1256, windows-1257, koi8-r, big5, gb2312, utf-16, *utf-8, utf-7, x-user-defined, euc-jp, ks_c_5601-1987, tis-620, SHIFT_JIS])>
  <SelectControl(compression=[*none, zip, gzip])>
  <SelectControl(what=[codegen, csv, excel, htmlword, json, latex, mediawiki, ods, odt, pdf, php_array, *sql, texytext, xls, xlsx, yaml])>
  <HiddenControl(<None>=false) (readonly)>
  <HiddenControl(<None>=false) (readonly)>
  <HiddenControl(<None>=false) (readonly)>
  <HiddenControl(<None>=true) (readonly)>
  <HiddenControl(<None>=false) (readonly)>
  <HiddenControl(<None>=false) (readonly)>
  <HiddenControl(<None>=false) (readonly)>
  <HiddenControl(<None>=true) (readonly)>
  <HiddenControl(<None>=true) (readonly)>
  <HiddenControl(<None>=true) (readonly)>
  <HiddenControl(<None>=false) (readonly)>
  <HiddenControl(<None>=false) (readonly)>
  <HiddenControl(<None>=false) (readonly)>
  <HiddenControl(<None>=true) (readonly)>
  <HiddenControl(<None>=true) (readonly)>
  <HiddenControl(<None>=true) (readonly)>
  <HiddenControl(codegen_structure_or_data=data) (readonly)>
  <SelectControl(codegen_format=[*0, 1])>
  <TextControl(csv_separator=,)>
  <TextControl(csv_enclosed=")>
  <TextControl(csv_escaped=\)>
  <TextControl(csv_terminated=AUTO)>
  <TextControl(csv_null=NULL)>
  <CheckboxControl(csv_removeCRLF=[something])>
  <CheckboxControl(csv_columns=[something])>
  <HiddenControl(csv_structure_or_data=data) (readonly)>
  <TextControl(excel_null=NULL)>
  <CheckboxControl(excel_removeCRLF=[something])>
  <CheckboxControl(excel_columns=[something])>
  <SelectControl(excel_edition=[*win, mac_excel2003, mac_excel2008])>
  <HiddenControl(excel_structure_or_data=data) (readonly)>
  <RadioControl(htmlword_structure_or_data=[structure, data, *structure_and_data])>
  <TextControl(htmlword_null=NULL)>
  <CheckboxControl(htmlword_columns=[something])>
  <HiddenControl(json_structure_or_data=data) (readonly)>
  <CheckboxControl(latex_caption=[*something])>
  <RadioControl(latex_structure_or_data=[structure, data, *structure_and_data])>
  <TextControl(latex_structure_caption=Structure of table @TABLE@)>
  <TextControl(latex_structure_continued_caption=Structure of table @TABLE@ (continued))>
  <TextControl(latex_structure_label=tab:@TABLE@-structure)>
<CheckboxControl(latex_comments=[*something])>
  <CheckboxControl(latex_columns=[*something])>
  <TextControl(latex_data_caption=Content of table @TABLE@)>
  <TextControl(latex_data_continued_caption=Content of table @TABLE@ (continued))>
  <TextControl(latex_data_label=tab:@TABLE@-data)>
  <TextControl(latex_null=\textit{NULL})>
  <HiddenControl(mediawiki_structure_or_data=data) (readonly)>
  <TextControl(ods_null=NULL)>
  <CheckboxControl(ods_columns=[something])>
  <HiddenControl(ods_structure_or_data=data) (readonly)>
  <RadioControl(odt_structure_or_data=[structure, data, *structure_and_data])>
  <CheckboxControl(odt_comments=[*something])>
  <CheckboxControl(odt_columns=[*something])>
  <TextControl(odt_null=NULL)>
  <TextControl(pdf_report_title=)>
  <HiddenControl(pdf_structure_or_data=data) (readonly)>
  <HiddenControl(php_array_structure_or_data=data) (readonly)>
  <CheckboxControl(sql_include_comments=[*something])>
  <TextControl(sql_header_comment=)>
  <CheckboxControl(sql_dates=[something])>
  <CheckboxControl(sql_use_transaction=[something])>
  <CheckboxControl(sql_disable_fk=[something])>
  <SelectControl(sql_compatibility=[*NONE, ANSI, DB2, MAXDB, MYSQL323, MYSQL40, MSSQL, ORACLE, TRADITIONAL])>
  <CheckboxControl(sql_drop_database=[something])>
  <RadioControl(sql_structure_or_data=[structure, data, *structure_and_data])>
  <CheckboxControl(sql_drop_table=[something])>
  <CheckboxControl(sql_procedure_function=[*something])>
  <CheckboxControl(sql_create_table_statements=[*something])>
  <CheckboxControl(sql_if_not_exists=[*something])>
  <CheckboxControl(sql_auto_increment=[*something])>
  <CheckboxControl(sql_backquotes=[*something])>
  <CheckboxControl(sql_delayed=[something])>
  <CheckboxControl(sql_ignore=[something])>
  <SelectControl(sql_type=[*INSERT, UPDATE, REPLACE])>
  <RadioControl(sql_insert_syntax=[complete, extended, *both, none])>
  <TextControl(sql_max_query_size=50000)>
  <CheckboxControl(sql_hex_for_blob=[*something])>
  <CheckboxControl(sql_utc_time=[*something])>
  <RadioControl(texytext_structure_or_data=[structure, data, *structure_and_data])>
  <TextControl(texytext_null=NULL)>
  <CheckboxControl(texytext_columns=[something])>
  <TextControl(xls_null=NULL)>
  <CheckboxControl(xls_columns=[something])>
  <HiddenControl(xls_structure_or_data=data) (readonly)>
  <TextControl(xlsx_null=NULL)>
  <CheckboxControl(xlsx_columns=[something])>
  <HiddenControl(xlsx_structure_or_data=data) (readonly)>
  <HiddenControl(yaml_structure_or_data=data) (readonly)>
  <SubmitControl(<None>=Go) (readonly)>>
Wenn ich mich recht entsinne sollte er what doch mit der *variable übersenden wenn ich ihm nichts anderes gesagt habe:

<SelectControl(what=[codegen, csv, excel, htmlword, json, latex, mediawiki, ods, odt, pdf, php_array, *sql, texytext, xls, xlsx, yaml])>
Also sollte er

what = 'sql' senden

Wenn ich das jetzt explizit angebe:

Code: Alles auswählen

[...]
br.select_form("dump")
what = 'sql' 
response = br.submit()
[...]
tut sich mal nichts, bzw. die response bleibt identisch

Re: mechanzie [phpmyadmin DB backup]

Verfasst: Donnerstag 28. März 2013, 15:09
von Sr4l
Ja du hast recht, Mechanize kümmert sich drum. Bei mir funktioniert dein Code auch. Habe es gerade an "http://demo.phpmyadmin.net/master/" getestet.

Allerdings bin ich dabei auf etwas seltsames gestoßen, ich habe mich beim link verschrieben und statt server_export.php, export.php geschirben, und dann bin ich genau auf deinen Fehler gestoßen.

Hier mal den Code den ich von dir verwendet habe:

Code: Alles auswählen

In [1]: import mechanize
   ...: br = mechanize.Browser()
   ...: br.set_handle_equiv(True)
   ...: br.set_handle_referer(True)
   ...: br.set_handle_robots(False)
   ...: br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1)
   ...: br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]
   ...: 

In [2]: br.open('http://demo.phpmyadmin.net/master/')
Out[2]: <response_seek_wrapper at 0x2b4b3c8 whose wrapped object = <closeable_response at 0x2b49f08 whose fp = <socket._fileobject object at 0x02B46EB0>>>

In [3]: br.select_form("login_form")

In [4]: br["pma_username"] = "root"

In [5]: br.submit()
Out[5]: <response_seek_wrapper at 0x2b4b3a0 whose wrapped object = <closeable_response at 0x2b6ed00 whose fp = <socket._fileobject object at 0x02B50630>>>

In [6]: br.open('http://demo.phpmyadmin.net/master/server_export.php')
Out[6]: <response_seek_wrapper at 0x2b4b2d8 whose wrapped object = <closeable_response at 0x2b53148 whose fp = <socket._fileobject object at 0x02B50670>>>

In [7]: br.select_form("dump")

In [8]: response = br.submit()

In [9]: response.read()[:128]
Out[9]: '-- phpMyAdmin SQL Dump\n-- version 4.0.0-beta3\n-- http://www.phpmyadmin.net\n--\n-- Host: localhost\n-- Generation Time: Mar 28, 201'

In [10]: 

Re: mechanzie [phpmyadmin DB backup]

Verfasst: Donnerstag 28. März 2013, 16:27
von taake
Großartig, da läuft es quasi out of the box bei http://demo.phpmyadmin.net nur bei unserem großartigen web anbieter läuft nicht und ich hab absolut keine idee woran es liegen könnte...

trotzdem danke für die hilfe :)

Re: mechanzie [phpmyadmin DB backup]

Verfasst: Donnerstag 28. März 2013, 16:39
von Sr4l
Welche Version ist installiert?

Ich bin mir sicher, dass man es irgendwie hin bekommt.

Du hast übrigens bei:

Code: Alles auswählen

br.select_form("dump")
what = 'sql' 
response = br.submit()
einen Fehler, aber ich denke das war nur ein vertippen?!?

Code: Alles auswählen

br.select_form("dump")
br["what"] = 'sql' 
response = br.submit()