PHP Input-Feld ausfüllen/"virtuelles" POST erzeugen

foolproof

Lt. Commander
Registriert
Jan. 2009
Beiträge
1.200
Guten Abend.

Ich hab ein kleines Problem:
Ich habe einen kostenlosen Webspace, der sich allerdings alle 60 Tage deaktiviert, wenn ich mich nicht auf ner bestimmten Seite einlogge.

Weil ich das sehr oft vergesse, hab ich mir gedacht, nen Cronjob anzulegen der das für mich alle 30 Tage erledigt.

Doch - WAS TUN? - sprach Zeus....

Das Login-Formular geht via POST.

Gibt es da ne möglichkeit mit PHP sowas zu realisieren?
Wenn nein, mit welcher Programmiersprache?

Danke schonmal,
foolproof
Ergänzung ()

Kann es so Funktionieren?

 
Das geht ganz einfach mit javascript und einem http request. Guck dur mal das xmlhttpobjekt an;) morgen frueh kann ich dir das zur nit auch genauer erklaeren ;)

aber auch mit fast jeder anderen sprache eben via http request
 
@Mercsen: Ein Cronjob kann kein JavaScript ausführen. ;)

@Topic: Ich kenne mich damit zwar nicht aus, aber ich denke cURL ist das Richtige für dein Vorhaben. :)
 
Es geht um das folgende LoginFormular:

http://www.*.de/login.php //zensiert...

Ich hab leider keine Ahnung was HTTP-Requests betrifft... ;)
 
Zuletzt bearbeitet:
Spartan-117 schrieb:
@Mercsen: Ein Cronjob kann kein JavaScript ausführen. ;)

@Topic: Ich kenne mich damit zwar nicht aus, aber ich denke cURL ist das Richtige für dein Vorhaben. :)

hmm ich dachte an eine website die aufgeruen wird um wo im body tag dann folgendes steht:

Code:
.....
<body onload='doHttpRequest();'>
....

aber könntest recht haben, dann muss der Cronjob ja nen browser starten der JS interpretieren kann.....

curl scheint wirklich zu funktionieren: http://curl.haxx.se/docs/manpage.html
wenn du aber nicht zufällig nen Linux Server hast auf dem das installiert ist bringt das natürlich nix.

In Java würde das so gehen:
http://www.exampledepot.com/egs/java.net/Post.html

kannst ja einfach ein Kommandozeile prog schreiben und unter win mit dem Aufgabenplaner ausführen lassen oder mit nem cronjob.

oder am einfachsten wäre es dir i, google Kalender oder einem beliebig anderem Kalender eine sich 60 Tage wiederholende Erinnerung zu machen und du loggst dich schnell selber ein.

Wenn du wie ich nen andorid Telefon und Chrome benutzt kannst du es auf gar keinen Fall vergessen ;)

oooooooooooooooooder aber du besorgt dir webspace, die kosten absolut nix mehr, teilweis ebekommst du 500 mb mit einer .de domain für 1~2 € / monat
 
Zuletzt bearbeitet:
Ja das müsste mit PHP gehen, aber ohne JavaScript.
Ich such mal das nötige zusammen...

Ergänzung:
PHP:
<?php
function postToHost($host, $port, $path, $postdata, $filedata=0) {
     $data = "";
     $boundary = "---------------------".substr(md5(rand(0,32000)),0,10);
     $fp = fsockopen($host, $port);
 
     fputs($fp, "POST $path HTTP/1.0\n");
     fputs($fp, "Host: $host\n");
     fputs($fp, "Content-type: multipart/form-data; boundary=".$boundary."\n");
 
     // Ab dieser Stelle sammeln wir erstmal alle Daten in einem String
     // Sammeln der POST Daten
     foreach($postdata as $key => $val){
         $data .= "--$boundary\n";
         $data .= "Content-Disposition: form-data; name=\"".$key."\"\n\n".$val."\n";
     }
     $data .= "--$boundary\n";
    
    if(isset($filedata)) {
     // Sammeln der FILE Daten
     $data .= "Content-Disposition: form-data; name=\"{$filedata[0]}\"; filename=\"{$filedata[1]}\"\n";
     $data .= "Content-Type: image/jpeg\n";
     $data .= "Content-Transfer-Encoding: binary\n\n";
     $data .= $filedata[2]."\n";
     $data .= "--$boundary--\n";
    }
 
     // Senden aller Informationen
     fputs($fp, "Content-length: ".strlen($data)."\n\n");
     fputs($fp, $data);
 
     // Auslesen der Antwort
     while(!feof($fp)) {
         $res .= fread($fp, 1);
     }
     fclose($fp);
 
     return $res;
}
 
$postdata = array('var1'=>'test', 'var2'=>'test');/* 
$data = file_get_contents('Signatur.jpg');
$filedata = array('inputname', 'filename.jpg', $data); */
 
echo postToHost ("localhost", 80, "/Test/post2.php", $postdata);
?>
Leicht modifiziert, ursprünglich von http://www.easy-coding.de/wiki/php/php-post-request-mit-file-upload.html

Unter folgendem Link findest du einen sehr zuverlässigen und kostenlosen Cron-Job-Dienst:
www.cron-job.org
 
Zuletzt bearbeitet:
Klar.
Nur hat nicht jeder PHP-Server cURL drauf ;-)
Ich hab den Skript von mir gerade bei meinem eigenem CMS probiert, und konnte mich einloggen :-(
Ist das gut oder schlecht?

P.S.: Das da oben ist eine ideale Anleitung für Spam-Bots...
 
Zuletzt bearbeitet:
@Eagle-PsyX: Danke schonmal!
Ich werde das so schnell ich kann austesten.

Und ich werde es NICHT als Spam-Bot verwenden ;)
 
Eagle-PsyX- schrieb:
Klar.
Nur hat nicht jeder PHP-Server cURL drauf ;-)
Ich hab den Skript von mir gerade bei meinem eigenem CMS probiert, und konnte mich einloggen :-(
Ist das gut oder schlecht?

P.S.: Das da oben ist eine ideale Anleitung für Spam-Bots...

gut oder schlecht is schwer zu sagen.
es ist eigentlich recht logisch das es klappt denn der server kann unmöglich unterscheiden von dem wem der request kommt. Man kann zwar den Referer prüfen aber auch den kann man leicht "fälschen". Er weiß halt nur das er sich mit den übergebenen POST Daten einloggen soll. Die einzige wirklich suichere methode wäre z.b. sich per ssh auf dem server einzuloggen, nur wer will das schon?
Oder aber du definierst ein neues Protokoll und hälst es geheim, wobei man jenachdem wie kompliziert es ist man es schnell entschlüßeln und verwenden kann. Außerdem wäre damit noch nicht sicher das nicht jemand die verbindung abfängt und verändert.
Wir entwickeln in der Firma auch gerade ein Online Basiertes Verwaltungssystem und haben mit den selben Problemen zu kämpfen. Einen Remotelogin zu verhindrn ist nicht leicht. Man könnte halt höchstens noch ip tables nehmen um ungebete gäste auszusperren
 
Mercsen schrieb:
[...]
Wir entwickeln in der Firma auch gerade ein Online Basiertes Verwaltungssystem und haben mit den selben Problemen zu kämpfen. Einen Remotelogin zu verhindrn ist nicht leicht. Man könnte halt höchstens noch ip tables nehmen um ungebete gäste auszusperren

Dito! :-) Deswegen auch die Frage.
Eine IP-Whitelist kommt nicht in die Frage, da auch unbekannte Verbindungen geben könnte. Es ist eine Verwaltungssoftware für ein Lizenz-System.
Meldete sich eine unbekannte Lizenz und wird nicht bestätigt, oder handelt es sich um eine abgelaufene Lizenz (oder eine zu lange unbezahlten) wird der Server antworten und den Klienten blockieren.
Aber nicht nur das Sperren, sondern auch das Updaten und Aktualisieren der Lizenz geht dadrüber. Ich schreib gerade ein Protokoll basierend auf HTTP (da alles über PHP geschieht) mit einer eigenen leichten Verschlüsslung.

Das nervige ist, dass ich gleichzeitig Klient und Server schreiben muss, ansonsten würde ich beim Defenieren des Protokolles vergessen was, was wie genau macht :D

P.S.: Referrer, hast du meine Signatur gesehen? Ist ein kleines Skript von mir dagegen.
Funktioniert auch wunderbar direkt mit : www.no-referer.de/computerbase.de/
 

Anhänge

  • pic.png
    pic.png
    101,5 KB · Aufrufe: 232
Zuletzt bearbeitet:
Okay, danke Eagle, es scheint soweit zu funktionieren, allerdings scheint der Server das Ziel des Login-Formulars via
HTTP/1.1 302 Moved Temporarily
woanders hinzuleiten und ich krieg grad iwi nicht raus wohin....

Ich dachte mal, es gibt ne erweiterung für FF mit der man mitlesen kann was da grad so läuft und wohin was geleitet wird... kann einer helfen?

Übrigens habe ich noch
PHP:
fputs($fp, "User-Agent: $useragent\n");
hinzugefügt, damit ein Server nicht so leicht erkennt dass hier ein Cronjob im Spiel ist. :)
 
Zuletzt bearbeitet:

Ähnliche Themen

Antworten
9
Aufrufe
2.209
Zurück
Oben