PHP script auf Webserver starten und Ergebnis erhalten

Alles rund um die Programmierung mit Qt
Antworten
Tomaxx
Beiträge: 71
Registriert: 7. Juni 2017 09:05

PHP script auf Webserver starten und Ergebnis erhalten

Beitrag 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.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: PHP script auf Webserver starten und Ergebnis erhalten

Beitrag von Christian81 »

MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Tomaxx
Beiträge: 71
Registriert: 7. Juni 2017 09:05

Re: PHP script auf Webserver starten und Ergebnis erhalten

Beitrag 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
Tomaxx
Beiträge: 71
Registriert: 7. Juni 2017 09:05

Re: PHP script auf Webserver starten und Ergebnis erhalten

Beitrag 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
Tomaxx
Beiträge: 71
Registriert: 7. Juni 2017 09:05

Re: PHP script auf Webserver starten und Ergebnis erhalten

Beitrag 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?
Antworten