Seite 1 von 1

variablen von python nach php

Verfasst: Dienstag 20. November 2018, 19:08
von genervternewbie
Mein php

Code: Alles auswählen

<?php
echo shell_exec("sudo python /home/pi/mfrc522/chip.py");
$auspy = ?
?>
mein py
vom karten leser in py

Code: Alles auswählen

card_id = str(uid[0]) + str(uid[1]) + str(uid[2]) + str(uid[3])
diese python code gibt mir die Karten oder Chip IDs an "card_id"
mein php script soll aus python diese variable "card_id" übernehmen
Grund mit python lese ich die Karte oder chip Code
mit php kann ich dann abfragen ob in datenbank vorhanden ja oder nein
bein nein sollen noch daten hinzu gefügt werden und in datenbank wieder geschrieben werden
diese daten würde aus liste ausgewählt werden
es würde auch unter python gehen was mir klar ist
auf grund sicherheitsabfrage soll nicht jeder das programm ausführen können
hoffe es war verständlich meine anliegen

Re: variablen von python nach php

Verfasst: Dienstag 20. November 2018, 19:20
von sls
Die Berechtigung für das Script `chip.py` sehen aktuell wie aus? Wenn es mit sudo ausgeführt wird, kann das jeder der in der sudoers enthalten ist.

Wenn shell_exec in PHP ausgeführt wird, kann man das Ergebnis in PHP sicherlich verarbeiten. Vorausgesetzt, du gibst die Ausgabe via print() in Python aus, was direkt in stdout landet. Das ist IMO aber eher eine PHP-spezifische Frage.

Re: variablen von python nach php

Verfasst: Dienstag 20. November 2018, 20:14
von noisefloor
Hallo,

PHP und Python spielen nicht gut zusammen. Von daher: setz' alles mit Python um, dann hast du diese Probleme nicht.

Gruß, noisefloor

Re: variablen von python nach php

Verfasst: Dienstag 20. November 2018, 20:51
von Sirius3
Was ist Dein Ziel? Und warum willst Du PHP verwenden?

Re: variablen von python nach php

Verfasst: Mittwoch 21. November 2018, 00:26
von __blackjack__
@noisefloor: Die Aussage finde ich komisch. Was genau an der Kombination PHP und Python ist da anders als mit PHP oder Python und jeder anderen Programmiersprache? Man kann mit PHP externe Prozesse starten und deren Standardausgabe lesen und weiterverarbeiten und man kann mit Python Daten auf der Standardausgabe ausgeben. Einzelne Zeichenketten als Werte sind simpel, aber auch komplexere Datenstrukturen könnte man beispielsweise als JSON austauschen.

@genervternewbie: Ich bin mir ziemlich sicher, dass die Art wie `card_id` definiert ist, nicht eindeutig ist. Also das es passieren kann, dass mehr als eine Karte/ein Chip zum gleichen `card_id`-Wert führen wird, was dem Sinn so eines ID-Wertes total entgegen läuft.

Re: variablen von python nach php

Verfasst: Mittwoch 21. November 2018, 02:07
von snafu
Einfach print(uid[:4]) schreiben. Dann landen die ersten 4 Zeichen der UID in der Standardausgabe und können in PHP verarbeitet werden. Das Problem, dass Anfänge von UIDs nicht zu eindeutigen IDs führen, bleibt aber dabei bestehen. Und in PHP wäre es dann:

Code: Alles auswählen

$zahl = intval(shell_exec("python dein_skript.py"));

Re: variablen von python nach php

Verfasst: Mittwoch 21. November 2018, 06:54
von noisefloor
Hallo,

@__blackjack__: klar geht das - wenn man weiß wie. Nur: die Frage PHP + Python ist gerade im Raspi-Umfeld extrem "populär" und da gibt es die tollsten "Lösungen" mit verbiegen der Apache Config, Root-Rechten wo keine nötig sind, Umbiegen von Verzeichnisrechten etc. Wobei in den allermeisten Fällen es viel einfacher ist, den Server einfach mit 10-20 Zeilen Python-Code in Bottle oder Flask zu implementieren und daraus die Funktionen des Python-Skripts aufzurufen.

Oder anders gesagt: man muss sich ja keine zusätzliche Schnittstelle einbauen, die nicht nötig ist.

Gruß, noisefoor

Re: variablen von python nach php

Verfasst: Mittwoch 21. November 2018, 13:10
von __blackjack__
@noisefloor: Sehe ich ja alles genau so, aber das heisst ja nicht das PHP und Python nicht gut zusammenspielen. Die gleichen Probleme hätte man mit PHP und Shell-Skripten, mit PHP und C oder C# oder C++ oder Java oder JavaScript oder Perl oder Ruby oder …. Und auch in die andere Richtung, also wenn man Python für die Weboberfläche verwendet und da irgendwie PHP einbauen möchte, weil es dafür irgendwas fertiges gibt was man sich in Python erst selbst programmieren müsste. Das Problem ist IMHO nicht, dass da irgendwelche Sprachen nicht gut zusammenspielen, sondern das es meistens keinen Sinn macht zwei Sprachen zu verwenden, die sich beide gut für Webanwendungen eignen, wenn man das auch in *einer* der beiden tun kann.

Wobei ich das auch nicht so ganz pauschal sagen wollen würde. Wenn es beispielsweise bereits eine grössere Webanwendung in PHP gibt und die jetzt um eine Funktionalität mit RFID-Chips erweitert werden soll, kann es schon sinnvoll sein die Kommunikation mit den Chips mit einer Sprache zu lösen in der es dafür bereits fertige Bibliotheken gibt, die man sich in PHP erst selbst schreiben müsste. Ich weiss nicht ob's da was in PHP gibt – das würde ich in so einem Fall vorher auf jeden Fall prüfen.

Re: variablen von python nach php

Verfasst: Mittwoch 21. November 2018, 15:09
von __deets__
@__blackjack__: der User hat ja schon an anderer Stelle seine Probleme beschrieben, und faktisch handelt es sich bei PHP hier um einen Hack, weil er eine MySQL nicht angesprochen bekommen hat von Python aus.