SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

PHP 5.3 & MySQL 5.1

PHP 5.3 & MySQL 5.1 zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 09.03.2017, 10:38:58
AlexD AlexD ist offline
Junior Member
 
Registriert seit: Jun 2003
Beiträge: 186
Daten von anderer Seite auslesen

Hallo zusammen,

ich hab hier ein kleines Problem, bei dem ich nicht so recht weiterkomme.

Ich habe hier im Haus einen Stromzähler, der einen LAN-Port hat und einen integrierten Webserver um die Daten anzuzueigen und zu exportieren.
Um auf die Seite zu kommen ist ein Login nötig.

Ich möchte nun gerne per PHP ein automatischen Login und die CSV-Daten in eine MySQL-Datenbank speichern.
Der Login per cURL hat soweit schon geklappt und es werden mir mit dem Script auch ein paar Daten angezeigt allerdings nur ein paar Zeilen - es sollten jedoch weit über 3000 Zeilen sein.
Das Script läuft aber eine gefühlte Ewigkeit und zeigt mir dann noch nur die ersten ca. 50 Zeilen an.

Für mich wäre jetzt einfach wichtig ALLE Daten eine Variable zu bekommen.

Sollte es nötig sein den Webserver temporär von Aussen zugägnglich zu machen wäre das kein Problem.

PHP-Code:
$login_url 'http://192.168.1.49/index';

//These are the post data username and password
$post_data 'user=admin&password=admin&action=login&login=Login';

//Create a curl object
$ch curl_init();

//Set the useragent
$agent $_SERVER["HTTP_USER_AGENT"];
curl_setopt($chCURLOPT_USERAGENT$agent);

//Set the URL
curl_setopt($chCURLOPT_URL$login_url );

//This is a POST query
curl_setopt($chCURLOPT_POST);

//Set the post data
curl_setopt($chCURLOPT_POSTFIELDS$post_data);

//We want the content after the query
curl_setopt($chCURLOPT_RETURNTRANSFER1);

//Follow Location redirects
curl_setopt($chCURLOPT_FOLLOWLOCATION1);

/*
Set the cookie storing files
Cookie files are necessary since we are logging and session data needs to be saved
*/

curl_setopt($chCURLOPT_COOKIEJAR'cookie.txt');
curl_setopt($chCURLOPT_COOKIEFILE'cookie.txt');

//Execute the action to login
$postResult curl_exec($ch);

echo 
curl_error $ch );

$content readfile("http://192.168.1.49/storage?action=download");

echo 
$content
Mit Zitat antworten
  #2  
Alt 09.03.2017, 11:03:33
chorn chorn ist offline
Junior Member
 
Registriert seit: Apr 2016
Alter: 44
Beiträge: 171
AW: Daten von anderer Seite auslesen

Da gibts in dem Script nichts zu tun. Da muss deine Gegenstelle dann halt mehr liefern. Oder was passiert wenn du das im Browser machst?
Mit Zitat antworten
  #3  
Alt 09.03.2017, 11:39:37
AlexD AlexD ist offline
Junior Member
 
Registriert seit: Jun 2003
Beiträge: 186
AW: Daten von anderer Seite auslesen

Geb ich den Link in den Browser ein wird mir ein Download angeboten "export.csv", dieser umfasst auch alle Daten (ca. 1,1 MB groß)

Geb ich den Link im "Quelltext-Modus" ein, so werden mir alle Daten (ca. 3000 Zeilen) am Bildschirm angezeigt. Also der Webserver sollte schon die ganzen Daten ausliefern.
Mit Zitat antworten
  #4  
Alt 09.03.2017, 12:07:50
chorn chorn ist offline
Junior Member
 
Registriert seit: Apr 2016
Alter: 44
Beiträge: 171
AW: Daten von anderer Seite auslesen

Dann kopier die URL aus dem Browser mal in dein Script und ruf file_get_contents auf.
Mit Zitat antworten
  #5  
Alt 09.03.2017, 12:45:05
AlexD AlexD ist offline
Junior Member
 
Registriert seit: Jun 2003
Beiträge: 186
AW: Daten von anderer Seite auslesen

Die URL vom geposteten Script ist die gleiche wie die,die ich im Brwoser eingebe.
Mit "view-source:" geht es halt nicht, da er dann nix findet.

"view-source:http://192.168.1.49/storage?action=download"

Mit file_get_contents hatte ich es auch schon versucht, da werden noch etwas weniger Daten ausgegeben. Aktuell so an die 10 Zeilen.

Hab mal die Laufzeiten verglichen:
Wenn ich direkt "view-source:http://192.168.1.49/storage?action=download" im Browser aufrufe dauert es ca. 40 Sekunden.
Lass ich das Script laufen, so läuft dieses ca 1:20 Min. mit 10 Einträgen.

Hab mal nur den Login-Teil laufen lassen, allein der Teil benötigt bis zu 1 Min.!

Die Laufzeiten der Skripte sind auf gut 10 Min. gestellt, hier sollte also nichts abgebrochen werden.
Mit Zitat antworten
  #6  
Alt 09.03.2017, 12:57:05
chorn chorn ist offline
Junior Member
 
Registriert seit: Apr 2016
Alter: 44
Beiträge: 171
AW: Daten von anderer Seite auslesen

Dann musst du halt am Server gucken was das Script da macht. Irgendwo muss das Script dann ja per Client unterscheiden.
Mit Zitat antworten
  #7  
Alt 22.03.2017, 01:35:42
AlexD AlexD ist offline
Junior Member
 
Registriert seit: Jun 2003
Beiträge: 186
AW: Daten von anderer Seite auslesen

Sorry, hatte die Tage wenig Zeit.

Wie ich festgestellt habe, funktioniert wohl schon der Login nicht wirklich da mir die "Login-Fehler Seite" ausgegeben wird.

Für den Login muss nur die lokale Adresse eingegeben werden damit die Login-Felder erscheinen. (z.B. http://sz-haus.ma-home.local)

im Quelltext des Formulars steht folgendes - steh da irgendwie auf dem Schlauch. :-/
HTML-Code:
<form name="login" method="post" action="index">
 <br>
  <table align="center" bgcolor="#98c2f0" cellpadding="5" cellspacing="5"><tbody>
   <tr>
    <td class="testo">Benutzername:</td>
    <td><input name="user" maxlength="20" style="width: 100px;" type="text"></td>
   </tr>
   <tr>
    <td class="testo">Passwort:</td>
    <td><input name="password" maxlength="20" style="width: 100px;" type="password"></td>
   </tr>
    <input name="action" value="login" type="hidden">
   <tr>
    <td colspan="2" align="center"><input name="login" title="Login" value="Login" class="invia" type="submit"></td>
   </tr>
  </tbody></table>
</form>

Mit PHP bzw. cUrl versuche ich mich so einzuloggen und dann die Datei zu speichern.
Username und Password sind korrekt!

PHP-Code:
$username 'xxxxx';
$password 'xxxxx';
$loginUrl 'http://sz-haus.ma-home.loacl';

//init curl
$ch curl_init();

//Set the URL to work with
curl_setopt($chCURLOPT_URL$loginUrl);

// ENABLE HTTP POST
curl_setopt($chCURLOPT_POST1);

//Set the post parameters
curl_setopt($chCURLOPT_POSTFIELDS'user='.$username.'&password='.$password.'&action=login');

//Handle cookies for the login
curl_setopt($chCURLOPT_COOKIEJAR'cookie.txt');

//Setting CURLOPT_RETURNTRANSFER variable to 1 will force cURL
//not to print out the results of its query.
//Instead, it will return the results as a string return value
//from curl_exec() instead of the usual true/false.
curl_setopt($chCURLOPT_RETURNTRANSFER1);

//execute the request (the login)
$store curl_exec($ch);

//the login is now done and you can continue to get the
//protected content.

//set the URL to the protected file
curl_setopt($chCURLOPT_URL'http://sz-haus.ma-home.local/storage?action=download');

//execute the request
$content curl_exec($ch);

curl_close($ch);

//save the data to disk
file_put_contents('./wr1.csv'$content); 
Mit Zitat antworten
  #8  
Alt 22.03.2017, 03:07:54
Benutzerbild von vt1816
vt1816 vt1816 ist offline
Administrator
 
Registriert seit: Jul 2004
Beiträge: 3.707
AW: Daten von anderer Seite auslesen

PHP-Code:
$loginUrl 'http://sz-haus.ma-home.loacl'
Ist das ein Schreifehler?
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #9  
Alt 22.03.2017, 13:05:06
AlexD AlexD ist offline
Junior Member
 
Registriert seit: Jun 2003
Beiträge: 186
AW: Daten von anderer Seite auslesen

Jep das ist ein Fehler, hab ihn schon ausgebesser bzw. auch mal mit der IP-Adresse versucht.
Leider ohne Erfolg.

Gebe ich im Browser ohne vorherigen Login http://sz-haus.ma-home.local/storage.csv ein, so wird mir diese zum Download angeboten.

Versuche ich jedoch wie oben schon beschrieben via file_get_contents, readfile oder fgetcsv direkt auf die Datei zuzugreifen so dauert der Zugriff und es werden nur ein paar Zeilen (ca. 10 von mehr als 2000).
Bricht vielleicht der Webserver des Zählers die Verbindung evtl. einfach ab.

Das Auslesen der Datei mit Hilfe von WGET wie im anderen Thread funktioniert hier leider bislang nicht.

Geändert von AlexD (22.03.2017 um 13:18:36 Uhr)
Mit Zitat antworten
  #10  
Alt 22.03.2017, 14:01:17
chorn chorn ist offline
Junior Member
 
Registriert seit: Apr 2016
Alter: 44
Beiträge: 171
AW: Daten von anderer Seite auslesen

dann musst du das evtl. reverse engineeren, also im Browser mit F12 die Konsole aufrufen, einen Request abschicken, Header kopieren, und das genau so an den Webservice schicken. fsockopen() könnte da hilfreich sein.
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Daten aus 2 verschiedenen Tabellen auslesen marvinlol MySQLi/PDO/(MySQL) 7 20.07.2009 12:46:07
Externe Seite auslesen und speichern Bity PHP Grundlagen 1 18.05.2009 00:29:51
Daten aus Formular auslesen china PHP Grundlagen 2 07.02.2006 19:33:00
Daten auslesen der-phil PHP Grundlagen 9 29.01.2006 15:30:58
Daten aus *.txt datei auslesen LudwigB PHP Grundlagen 1 02.06.2004 17:24:24


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:29:19 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt