mechanzie [phpmyadmin DB backup]

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
taake
User
Beiträge: 125
Registriert: Donnerstag 14. Oktober 2010, 08:49

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.
Benutzeravatar
Sr4l
User
Beiträge: 1091
Registriert: Donnerstag 28. Dezember 2006, 20:02
Wohnort: Kassel
Kontaktdaten:

Interessant ist vor allem dieser Teil der Fehlermeldung:
export.php: Missing parameter: what
taake
User
Beiträge: 125
Registriert: Donnerstag 14. Oktober 2010, 08:49

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
Benutzeravatar
Sr4l
User
Beiträge: 1091
Registriert: Donnerstag 28. Dezember 2006, 20:02
Wohnort: Kassel
Kontaktdaten:

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]: 
taake
User
Beiträge: 125
Registriert: Donnerstag 14. Oktober 2010, 08:49

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 :)
Benutzeravatar
Sr4l
User
Beiträge: 1091
Registriert: Donnerstag 28. Dezember 2006, 20:02
Wohnort: Kassel
Kontaktdaten:

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()
Antworten