Auf Button klicken

  • geschlossen

  • Shadow
  • 1391 Aufrufe 15 Antworten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Auf Button klicken

    Hi,

    ich bin noch sehr neu auf dem Gebiet PHP aber ich denke hier passt es am besten hin. Und zwar: Gibt es eine Möglichkeit via PHP Script, wenn man es ausführt, dass es dann auf einen Button klickt? Also ich führe das Script aus, das ruft dann einen Link auf und folgt einem Link durch einen Button!

    Geht das?

    Shadow

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Shadow () aus folgendem Grund: Erledigt

  • ja das ist möglich
    cURL sollte dir dabei sehr hilfreich sein
    PHP: CURL - Manual
    du musst die seite mit dem link laden
    das formular via stinknormale stringbearbeitung herausfiltern inklusive informationen über die input-felder und dann die mit cUrl eine post an das ziel des formulars senden

    das einzig nervige dabei ist, denk ich mal, das herrausfiltern des formulars+infos über die inputs
  • Öh, ich glaube er will nur ein bestimmtes Formular bearbeiten, corema.
    @Threadstarter: wenn du nicht eine dynamische Prozedur haben willst, die dir jedes x-beliebige Formular abschickt, reicht sowas hier vollkommen aus: freesoft-board.to/2626665-post5.html Einfach die $_POST-Daten eintragen und abschicken.
    Ach aber dein WebSpace muss auch cURL unterstützen, was nicht immer der Fall ist. Um das herauszufinden, reicht aber ein Blick in phpinfo();

    Gruß
    Broken Sword
    Auf dem Abstellgleis sah man ihn liegen,
    Auf dem Abstellgleis zwischen Schwelle und Gestein,
    Auf dem Abstellgleis im strömenden Regen,
    Auf dem Abstellgleis allein.
  • Ok thx ich werd mir das mal genauer anschauen, vor allem brauch ich aber erstmal Space mit curl. Gibt vlt. ne Alternative?

    @Broken: Was meinst du mit dynamische Prozedur, die jedex x-beliebige Formular abschickt?

    Shadow
  • Shadow schrieb:


    @Broken: Was meinst du mit dynamische Prozedur, die jedex x-beliebige Formular abschickt?


    Das schrieb ich bezüglich coremas Post, der das wohl so verstanden zu haben scheint, wie ich das verstehe. (Lange, verwirrende Sätze ftw :D)

    Gruß
    Broken Sword
    Auf dem Abstellgleis sah man ihn liegen,
    Auf dem Abstellgleis zwischen Schwelle und Gestein,
    Auf dem Abstellgleis im strömenden Regen,
    Auf dem Abstellgleis allein.
  • vor allem brauch ich aber erstmal Space mit curl. Gibt vlt. ne Alternative?


    Du brauchst Doch keinen Space! Es genügt doch, wenn Du auf deiner Windowskiste XAMPP installierst. Da kannst Du dann in aller Ruhe dein PHP Script testen.
  • So, hab jetzt Space gefunden mit curl Unterstützung. Hab es jetzt auch geschafft, dass er die Seite aufruft, nur wie kann ich jetzt machen, dass er dem Button folgt? Weil den Link kann ich nicht einfach angeben, weil da werden ja Daten übermittelt.

    Shadow

    @Target73: Nein danke, ich hab jetzt keine Lust das erst zu installieren, dann noch curl zu installieren, alles nur für dieses script. Außerdem ist das Teil einer HP, die auf nem Server liegt und die kann ich schlecht bei mir zuhause hosten.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Shadow ()

  • Shadow schrieb:

    So, hab jetzt Space gefunden mit curl Unterstützung. Hab es jetzt auch geschafft, dass er die Seite aufruft, nur wie kann ich jetzt machen, dass er dem Button folgt? Weil den Link kann ich nicht einfach angeben, weil da werden ja Daten übermittelt.


    Also doch dynamisch. Dann lese dir coremas Post nochmal durch. :rolleyes:
    Am besten, du holst mit file_get_contents($url); erstmal die Form-Seite und liest dann die input-tags aus. Mit preg_match sollte das kein großes Problem darstellen. (wenn du dir das nicht zustraust - es gibt auch substr und strpos ;))

    Danach dann wie gehabt, cURL.

    Gruß
    Broken Sword
    Auf dem Abstellgleis sah man ihn liegen,
    Auf dem Abstellgleis zwischen Schwelle und Gestein,
    Auf dem Abstellgleis im strömenden Regen,
    Auf dem Abstellgleis allein.
  • Warning: file_get_contents() [function.file-get-contents]: URL file-access is disabled in the server configuration in /www/110mb.com/***/htdocs/index.php on line 6

    Warning: file_get_contents(***) [function.file-get-contents]: failed to open stream: no suitable wrapper could be found in /www/110mb.com/***/index.php on line 6


    Also auf diesem Wege gehts wohl nicht, scheint deaktiviert zu sein, wenn mich nicht alles täuscht?

    Gibts da ne Alternative zu diesem Befehl?

    Shadow
  • Shadow schrieb:

    A
    Gibts da ne Alternative zu diesem Befehl?


    Was ist das denn für ein Hoster, der cURL erlaubt, aber allow_url_fopen nicht.
    Na ja, eine Alternative... lass mich scharf nachdenken, wie wäre es mit cURL :D

    Habe file_get_contents nur vorgeschlagen, da das Resourcenschonender ist als cURL, aber na ja, nimmste halt cURL.

    Gruß
    Broken Sword
    Auf dem Abstellgleis sah man ihn liegen,
    Auf dem Abstellgleis zwischen Schwelle und Gestein,
    Auf dem Abstellgleis im strömenden Regen,
    Auf dem Abstellgleis allein.
  • Nagut, würde ich gerne aber dann stehe ich wieder vor meinem Ausgangsproblem: Wie bekommen ich das mit dem Button hin? Ich habs nur soweit hinbekommen, dass er die Seite öffnet, mehr aber auch nicht. Die Anleitungen sind nicht gerade für Anfänger gedacht, oder ich bin zu blöd dafür. (denke ich aber weniger :D)

    Aus coremas Post werde ich auch nicht wirklich schlauer...

    Broken Sword schrieb:

    Was ist das denn für ein Hoster, der cURL erlaubt, aber allow_url_fopen nicht.


    Most Endorsed FREE Website Hosting Provider | Free Website Hosting

    Der einzige Hoster, den ich gefunden habe, der cURL unterstützt!

    Shadow
  • das sollte es sein:

    PHP-Quellcode

    1. <?php
    2. $post = Array();
    3. //hier müssten die felder eingetragen werde
    4. //$post['name des input'] = urlencode('das was da drinn steht');
    5. $post['1.parameter'] = urlencode('1.value');
    6. $post['2.parameter'] = urlencode('2.value');
    7. //das ganze als url in $post_string packen
    8. foreach($post as $key=>$value) { $post_string .= $key.'='.$value.'&'; }
    9. rtrim($post_string,'&');
    10. ch = curl_init(); //verbindung herstellen
    11. curl_setopt($ch,CURLOPT_URL,$url); //url setzen
    12. curl_setopt($ch,CURLOPT_POST,count($post)); //anzahl der zusenden daten
    13. curl_setopt($ch,CURLOPT_POSTFIELDS,$post_string); //daten übermitteln
    14. $result = curl_exec($ch); //post "auswerten"
    15. curl_close($ch); //verbindung schließen
    16. ?>
    Alles anzeigen
  • corema schrieb:

    Quellcode

    1. curl_setopt($ch,CURLOPT_POST,count($post)); //anzahl der zusenden daten
    2. curl_setopt($ch,CURLOPT_POSTFIELDS,$post_string); //daten übermitteln
    3. $result = curl_exec($ch); //post "auswerten"

    Ich würde das eher so sagen

    Quellcode

    1. curl_setopt($ch,CURLOPT_POST,count($post)); //anzahl der zusenden daten
    2. curl_setopt($ch,CURLOPT_POSTFIELDS,$post_string); //auf Daten verweisen
    3. $result = curl_exec($ch); //Seite aufrufen, return = Ergebnis der Abfrage


    Aber das nur am Rande. Außerdem ist das eher für den zweiten Schritt gut ;)
    Am Anfang muss er eine cURL-Abfrage ohne $_POST-Daten vollziehen, um die Form-Seite zu erhalten, was er da raus bekommt nach den hidden-input-tags durchforsten, den Wert in value auslesen und dann mit deinem Code weiter verfahren .

    Gruß
    Broken Sword
    Auf dem Abstellgleis sah man ihn liegen,
    Auf dem Abstellgleis zwischen Schwelle und Gestein,
    Auf dem Abstellgleis im strömenden Regen,
    Auf dem Abstellgleis allein.