Ankündigung

Einklappen
Keine Ankündigung bisher.

änderung einer konfiguration mit curl

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • änderung einer konfiguration mit curl

    hallo zusammen,

    ich versuche mit curl die konfiguration eines forums bei homepagemodules zu ändern. im adminbereich des forums geht das über einfomular. ich habe
    das formular in eine extra html-datei reingemacht. da funktioniert es. wenn ich die selben daten über curl per php verschicken möchte geht es nicht. hab keine ahnung warum.
    hier mal das html-formular:

    <html>

    <form action="http://111111.homepagemodules.de/admin/index.php?board=111111&page=config&option=&option= groupsnow" method="post">

    <select name="gastgr">
    <option value="36825" >Gäste</option>
    <option value="36826">Mitglieder</option>
    <option value="36827" selected>Moderator</option>

    <option value="36828">Administrator</option>
    <option value="43057">gruppe1</option>
    <option value="43058">gruppe2</option>
    </select>


    <select name="usergr">
    <option value="36825" selected>Gäste</option>
    <option value="36826">Mitglieder</option>
    <option value="36827">Moderator</option>

    <option value="36828">Administrator</option>
    <option value="43057">gruppe1</option>
    <option value="43058">gruppe2</option>
    </select>
    <input type="submit" value="speichern" name="submit" style="width:100%; border-color:#333333; border-width:1px">
    </form>
    </html>

    und hier das php skript mit curl:

    <?php
    $ch = curl_init();
    $myurl= "http://111111.homepagemodules.de/admin/index.php?board=111111&page=config&option=&option= groupsnow";
    $postData = "gastgr=43058&usergr=43058";
    curl_setopt($ch, CURLOPT_URL, $myurl);
    curl_setopt($ch, CURLOPT_POST, 1 );
    curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);

    curl_exec($ch);
    $error = curl_error($ch);
    curl_close ($ch);
    echo $error;
    ?>

    vielen dank für eure hilfe.

    emmi

  • #2
    PHP-Code:
    <?php
    $ch 
    curl_init();
    $myurl"http://111111.homepagemodules.de/admin/index.php?board=111111&page=config&option=groupsnow";
    $postData "gastgr=43058&usergr=43058";
    curl_setopt($chCURLOPT_URL$myurl);
    curl_setopt($chCURLOPT_POST);
    curl_setopt($chCURLOPT_POSTFIELDS$postData);
    curl_setopt($chCURLOPT_RETURNTRANSFER);
    curl_setopt($chCURLOPT_HEADER);

    $transfer curl_exec($ch);
    $error curl_error($ch);
    curl_close ($ch);

    echo 
    'error: '$error"\n";
    echo 
    'transfer: '$transfer"\n";
    ?>
    Was kommt da raus?

    Kommentar


    • #3
      Das Ergebnis:

      error: transfer: HTTP/1.1 302 Found Date: Wed, 06 Feb 2008 10:06:12 GMT Server: Apache/2.2.4 (Unix) Location: /board/logon.php?board148755 Content-Length: 0 Content-Type: text/html; charset=iso-8859-1

      Kommentar


      • #4
        302 Found
        das ist ein redirect. Lies Dir mal durch, was die curl_setop Dokuseite zu redirects sagt.

        Kommentar


        • #5
          Das Problem ist hier denke ich einfach, dass ein Login nötig ist um diese "Konfiguration" zu ändern....

          Schickt er das Formular von Hand ab hat er sich wahrscheinlich zuvor schonmal eingeloggt und hat somit eine gültige Session/ einen gültigen Login. Das Script hingegen versucht ohne Login direkt auf das Formularverarbeitende-Script zuzugreifen - klar, dass das so nicht geht.
          [URL="https://www.quizshow.io/"]Create your own quiz show.[/URL]

          Kommentar


          • #6
            Erstmal ist es trotzdem ein redirect. Alles andere ist Spekulation

            Kommentar


            • #7
              Zitat von David Beitrag anzeigen
              Erstmal ist es trotzdem ein redirect. Alles andere ist Spekulation
              Ich hab nicht gesagt, dass es kein redirect ist....

              Aber die Tatsache, dass hier versucht wird auf eine admin.php zuzugreifen und der Redirect auf eine logon.php weiterletet sagt doch einiges
              [URL="https://www.quizshow.io/"]Create your own quiz show.[/URL]

              Kommentar


              • #8
                nana, nicht gleich streiten

                david, ok. das mit dem redirekt les ich mir durch.

                agrajag, ja ich hab mich vorher eingeloggt und es liegt ein cookie mit den logindaten im ie-vz.

                welche möglichkeit hab ich, dies zu umgehen, zu beheben, nutzbar zu machen.....?
                ich sag immer, das internet ist soooo groß. ich kann doch nicht der erste
                sein, der sowas tun will.

                schönen abend euch.
                viele grüße
                emmi

                Kommentar


                • #9
                  Zitat von agrajag Beitrag anzeigen
                  Aber die Tatsache, dass hier versucht wird auf eine admin.php zuzugreifen und der Redirect auf eine logon.php weiterletet sagt doch einiges
                  Stimmt schon. Ich wollte nur auf schrittweises vorgehen drängen

                  Kommentar


                  • #10
                    hi, also ich hab jetzt zwei dinge gefunden:

                    curl_setopt($ch, CURLOPT_COOKIEJAR, '-');
                    --> wäre dies möglich um den login zu "umgehen" ?

                    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
                    --> um den redirect zu erlauben?

                    oder gäbe es die möglichkeit, sich zuerst einzuloggen
                    und dann die formulardaten zu versenden?

                    Kommentar


                    • #11
                      @David Schon klar, ist ja normal auch die bessere Vorgehensweise. Aber hier war das Problem eben schon abzusehen ...

                      Zitat von emmi Beitrag anzeigen
                      hi, also ich hab jetzt zwei dinge gefunden:

                      curl_setopt($ch, CURLOPT_COOKIEJAR, '-');
                      --> wäre dies möglich um den login zu "umgehen" ?

                      curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
                      --> um den redirect zu erlauben?

                      oder gäbe es die möglichkeit, sich zuerst einzuloggen
                      und dann die formulardaten zu versenden?
                      "Umgehen" kannst du den Login nicht.
                      Ich habe selbst noch nciht viel mit curl gemacht. Aber im Prinzip müsstest du eben zunächst das Login-Formular per Curl "ausfüllen", das (Session-)Cookie entgegennehmen und beim nächsten Request wieder mitsenden.

                      wenn ich mir die Optionsliste unter PHP: curl_setopt - Manual so durchlese sollte das schon machbar sein. Lies dir auch die Kommentare (user contributed notes) dazu durch. Da gibt es einige Hinweise in die Richtung.
                      [URL="https://www.quizshow.io/"]Create your own quiz show.[/URL]

                      Kommentar


                      • #12
                        Wenn Du auf der Seite immer das selbe Formular zum Anmelden hast und nur Benutzernamen und Kennwort eingeben musst, brauchst Du die Seite mit dem Formular nicht unbedingt abrufen. Nehmen wir mal als einfaches Beispiel mal
                        Code:
                        <form method="post" action="login.php">
                          <input type="text" name="user" />
                          <input type="password" name="pw" />
                          <input type="submit" />
                        
                        </form>
                        Wenn das Formular abgeschickt wird, werden zwei Parameter per post an das Skript login.php geschickt, user=heinz&pw=mein%20passwort
                        Das machst Du genauso wie im bisherigen Skript mit $postData.
                        Einfach noch cookiejar/file angeben und Du hast eine lauffähige Session.

                        Kommentar


                        • #13
                          danke.

                          ich habs zwischenzeitlich mit der option cookie versucht. das hat auch funktioniert.

                          wünsch euch ein schönes wochenende.

                          hier noch die zeile:
                          curl_setopt($ch, CURLOPT_COOKIE, "nickname=xxx;password=xxx");


                          im moment wird mir dann die adminseite angezeigt. was kann ich machen, um im anschluß
                          direkt auf eine andere seite geleitet zu werden?

                          Kommentar

                          Lädt...
                          X