Willkommen Gast. Bitte anmelden oder registrieren.

Autor Thema: Eintrag in Joomla mit wget oder Curl (Commandline)  (Gelesen 1734 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

nelson

  • Unter Beobachtung
  • Beiträge: 2
Eintrag in Joomla mit wget oder Curl (Commandline)
« am: 28. Januar 2015, 14:58:21 »
Hallo,

ich bin dabei mich durch ein Joomlabuch zu arbeiten. Darin wird erklärt wie man eine einfache Komponente erstellt. Im Buch heißt die MyThings (Datenbanktabellen mit Joins verknüpft) und man kann schon neue Einträge, Kategorien erstellen bzw. bearbeiten.

Jetzt suche ich eine Möglichkeit die Einträge über ein Bashscript zu automatisieren. Als Ansatzpunkt habe ich das untere Script (gefunden bei stackoverflow) genutzt. Einloggen funktioniert schon mal, aber das Speichern eines neuen Eintrages bekomm ich einfach nicht hin.
Als Debug lasse ich mir die Seite von wget speichern und schau mir diese im Browser später an.
function login {
        Server=$1
        User=$2
        Pass=$3
        Token=`wget \
                --load-cookies ~/cookies.${User}.txt \
                --save-cookies ~/cookies.${User}.txt \
                --keep-session-cookies \
                --output-document=- \
                "http://${Server}/administrator" | \
                grep -Po '"[a-zA-z0-9]{32}"' | \
                grep -o "[^'\"]*"`

        echo "Token: $Token"

        wget \
                --load-cookies ~/cookies.${User}.txt \
                --save-cookies ~/cookies.${User}.txt \
                --keep-session-cookies \
                --output-document=/dev/null \
                --post-data="username=${User}&passwd=${Pass}&option=com_login&task=login&${Token}=1" \
                "http://${Server}/administrator/index.php?option=com_login"

        wget \
                --load-cookies ~/cookies.${User}.txt \
                --save-cookies ~/cookies.${User}.txt \
                --keep-session-cookies \
                --output-document=/tmp/webseite1.html \
                --post-data="option=com_mythings&${Token}=1&jform[title]=1234&task=mything.apply" \
                "http://${Server}/administrator/index.php?option=com_mythings&view=mything&layout=edit"
}
login SERVER_URL J_USER J_PASSWD
Der letzte wget ist von mir.  Wenn ich die Cookies Parameter drin lasse, kommt immer das der Token ungültig ist. Wenn ich sie raus mache, dann lande ich auf der Login Page. Ich bin mir auch nicht sicher, ob es überhaupt die richtige Adresse ist zum speichern. Wenn ich diese URL
http://${Server}/administrator/index.php?option=com_mythings&view=mything&layout=editim Browser eingebe, in dem ich noch im Backend angemeldet bin, dann lande ich auf der Seite mit der Form zum ausfüllen. In dieser Form gibt es dann auch das Textfeld jform[title].
Habt Ihr einen Tipp für mich?

zero24

  • Bestätigter Nutzer
  • Beiträge: 90
    • Meine Webseite
Antw: Eintrag in Joomla mit wget oder Curl (Commandline)
« Antwort #1 am: 28. Januar 2015, 16:35:57 »
Hallo nelson,

Zitat
Jetzt suche ich eine Möglichkeit die Einträge über ein Bashscript zu automatisieren.

geht das nicht einfacher direkt über die Datenbank? Also ein Script was die Sachen in die Datenbank einträgt?

--post-data="option=com_mythings&${Token}=1&jform[title]=1234&task=mything.apply" \
Probier mal (Ich folge nur dem obigen Beispiel mit dem Login):
--post-data="jform[title]=1234&option=com_mythings&task=mything.apply&${Token}=1" \
Unter Umständen wird diese Art des Zugriffes auch nicht erlaubt aber dazu kann ich nichts finales sagen. ggf. kann sich das einer der Profis hier mal ansehen.
Nichts auf der Welt ist so gerecht verteilt wie der Verstand. Denn jedermann ist überzeugt, daß er genug davon habe. (Rene Descartes, fr. Mathematiker u. Philosoph, 1596 - 1650)

nelson

  • Unter Beobachtung
  • Beiträge: 2
Antw: Eintrag in Joomla mit wget oder Curl (Commandline)
« Antwort #2 am: 28. Januar 2015, 17:35:26 »
Danke für die Antwort, ich dachte immer das die Postabfrage mehr wie ein assoziatives Array ist. Aber ich probier es aus.

Danke
Nelson