Seite 1 von 1

PHP script auf Webserver starten und Ergebnis erhalten

Verfasst: 27. September 2017 13:59
von Tomaxx
Hallo Zusammen

Kann man unter QT ein PHP-Script auf einem Server starten und das Ergebnis verarbeiten?
Ich habe dort eine MySQL-Datenbank und möchte auf diese Weise den externen Zugriff auf die Datenbank aus Sicherheitsgründen umgehen.
Meine Vorstellung wäre, einen kompletten Aufruf eines PHP-Programmes abzusetzen und das Ergebnis einzufangen:

Code: Alles auswählen

http://www.server.de/verzeichnis/lic_get.php?parameter1='lala'&benutzer='papa'&firma='dada'
Der PHP-Code erzeugt nur eine einzige Zeile als Ausgabe, zum Beispiel

Code: Alles auswählen

dbaf5407-49bd-4a39-b336-61d5d4539069
Mit diesem String würde ich gerne weiterarbeiten.

Re: PHP script auf Webserver starten und Ergebnis erhalten

Verfasst: 2. Oktober 2017 11:28
von Christian81

Re: PHP script auf Webserver starten und Ergebnis erhalten

Verfasst: 2. Oktober 2017 12:54
von Tomaxx
Ja, das hatte ich auch schon entdeckt....

Aber ich muss gestehen, ich verstehe es im Moment noch nicht.
Hätte nicht jemand ein codeschnipsel, mit dem ich anfangen kann?

Das hier aus deinem Link gibt mir Fehlermeldungen:

Code: Alles auswählen

    QNetworkAccessManager *manager = new QNetworkAccessManager(this);
    connect(manager, SIGNAL(finished(QNetworkReply*)),
            this, SLOT(replyFinished(QNetworkReply*)));

    manager->get(QNetworkRequest(QUrl("http://www.schubag.ch//pumppro//lic_get.php")));

Code: Alles auswählen

C:\Users\singler\Desktop\CPP\PumpPro\mainwindow.cpp:-1: Fehler: undefined reference to `_imp___ZN21QNetworkAccessManagerC1EP7QObject'
C:\Users\singler\Desktop\CPP\PumpPro\mainwindow.cpp:-1: Fehler: undefined reference to `_imp___ZN15QNetworkRequestC1ERK4QUrl'
C:\Users\singler\Desktop\CPP\PumpPro\mainwindow.cpp:-1: Fehler: undefined reference to `_imp___ZN21QNetworkAccessManager3getERK15QNetworkRequest'
C:\Users\singler\Desktop\CPP\PumpPro\mainwindow.cpp:-1: Fehler: undefined reference to `_imp___ZN15QNetworkRequestD1Ev'
C:\Users\singler\Desktop\CPP\PumpPro\mainwindow.cpp:-1: Fehler: undefined reference to `_imp___ZN15QNetworkRequestD1Ev'
collect2.exe:-1: Fehler: error: ld returned 1 exit status
Thomas

Re: PHP script auf Webserver starten und Ergebnis erhalten

Verfasst: 2. Oktober 2017 13:11
von Tomaxx
Selbst schon nur die erste Zeile gibt Fehler:

Code: Alles auswählen

    QNetworkAccessManager *manager = new QNetworkAccessManager(this);

Code: Alles auswählen

C:\Users\singler\Desktop\CPP\PumpPro\mainwindow.cpp:-1: Fehler: undefined reference to `_imp___ZN21QNetworkAccessManagerC1EP7QObject'
collect2.exe:-1: Fehler: error: ld returned 1 exit status

Re: PHP script auf Webserver starten und Ergebnis erhalten

Verfasst: 2. Oktober 2017 15:40
von Tomaxx
Bin einen Schritt weiter - keine Fehlermeldungen mehr.

Es fehlte die Einstellung "QT += network" im Projektfile.

Jetzt habe ich folgenden Code:

Code: Alles auswählen

   
    QNetworkAccessManager *nam = new QNetworkAccessManager(this);
    QUrl url("http://www.schubag.ch/pumppro/lic_get.php");
    cout << "1 " + url.toString().toStdString() << endl;
    QNetworkReply* reply = nam->get(QNetworkRequest(url));
    cout << "2 " << endl;
    QString data = (QString) reply->readAll();
    cout << "3 --->" + data.toStdString() + "<---" << endl;
Wenn ich die Adresse http://www.schubag.ch/pumppro/lic_get.php im Browser eingebe, kommt als Ausgabe
"Keine Daten"
- Das ist auch richtig und daran sehe ich, dass die PHP-Datei richtig arbeitet.
Ich hätte erwartet, dass diese Ausgabe auch im reply landet - tut sie aber nicht.

Meine cout Ausgabe ist:

Code: Alles auswählen

1 http://www.schubag.ch/pumppro/lic_get.php
2 
3 ---><---
Wo habe ich den Fehler?