eagle2
Goto Top

Voucher für pfSense online verwalten und optional Voucher per SMS verschicken

Hallo zusammen!
Vermutlich jeder, der eine günstige Lösung für ein Wlan-Gastnetz benötigt, kennt aquis tolles Tutorial zu pfSense-Gastnetzen. Die dort vorgestellten Lösungen zum Ausdrucken der Voucher waren für meinen Anwendungszweck leider nicht zu verwenden, weswegen ich eine kleine PHP-Anwendung dafür entwickelt habe. Sie ermöglicht nicht nur das Verwalten der Voucher über ein Webinterface; es ist auch möglich, ein SMS-Gateway zu integrieren und so einen Dienst a la "30 Minuten gratis Internet täglich" anzubieten.

UPDATE5 (03.01.23): Nach dem letzten Update waren noch Korrekturen in der include/sms_api.php notwendig, diese sind mit Version 1.6.4 nun erfolgt. Außerdem fehlten die smsrequest-Ordner im letzten Download, dies ist ebenfalls korrigiert.

UPDATE4 (20.12.22): Mit aktuellen PHP- und MariaDB/MySQL-Verisonen kam es inzwischen zu Problemen beim Hochladen von Vouchern und dem Generieren von PDF-Dateien. Diese sind jetzt in der aktuellen Version 1.6.3 behoben, außerdem gibt es leichte Verbesserungen im Installationsprozess und bei den Beschreibungstexten. Geändert haben sich die Dateien include/fpdf.php, include/lang/de.ini, include/lang/en.ini, config.php, index.php sowie die print.php, diese können zwecks Update in einer bestehenden Installation einfach ausgetauscht werden. Danke an @aqui für die Unterstützung bei der Fehlersuche!

Die Software verwaltet Voucher in einer MySQL-Datenbank. Es können aus pfSense exportierte CSV-Dateien direkt in eine Tabelle importiert werden. Dabei werden verschiedene Tabellen (für verschiedene Gültigkeitszeiträume/Portale/...) unterstützt. Die Konfiguration erfolgt über eine einfach aufgebaute Konfigurationsdatei, der Nutzer kann im Webinterface nur Voucher importieren und diese dann als PDF zum Ausschneiden exportieren. Der PDF-Export basiert auf FPDF und kann auch vom Layout her einfach an die eigenen Bedürfnisse angepasst werden. Außerdem kann in einer Art "Statistik" ausgelesen werden, wie viele Voucher schon gedruckt wurden bzw. noch verfügbar sind. Bei mir haben jetzt die zuständigen Personen, die die Zugänge verteilen sollen, einen Zugang zum System und können sich nun selbstständig Voucher ausdrucken. Theoretisch kann man sogar für pfSense einen eingeschränkten Zugang mit Zugriff nur auf die Voucher-Roll-Seite einrichten, z.Z. pflege ich bei uns die Voucher noch selber ein.

Die zweite Funktion ist die Möglichkeit, Gästen täglich einen z.B. auf 30 Minuten beschränkten kostenlosen Zugang zur Verfügung zu stellen. Damit dies selbstständig, aber nur einmal pro Person und Tag geschehen kann, habe ich mich für eine Lösung mit einem SMS-Gateway entschieden. Gäste können nun Ihre Handynummer eingeben und bekommen (sofern am aktuellem Tag noch nicht genutzt) einen Code per SMS zugeschickt, der im Captive-Portal eingegeben werden kann.

Genug der Worte, hier mal Screenshots:
Login:
a95d7422f179038f77da649c2891feae

Hauptseite:
5b325b18e75327b8ef17296531dca869

Einstellungen:
606b50818c03467144888901ec4a733e

PDF-Voucher:
13c8a29d719619f85f331dd192b46495

PDF-Tabelle:
63486235d8e55e09925697ba3ca34697

Link zum Download der aktuellsten Version
https://sourceforge.net/projects/vouchergen/files/latest/download

Hinweis: Bitte achtet auf die Schreibrechte: Der PHP-Benutzer braucht während der Installation Schreibrechte auf das Verzeichnis "include" und im laufenden Betrieb Schreibrechte auf das Verzeichnis, das als temporäres Verzeichnis während der Installation angegeben worden ist (standardmäßig "temp").
Bei Problemen beim Ausdruck ("FPDF error: Some data has already been output, can't send PDF file" etc) bitte schauen, ob sich beim Upload in der angegebenen Datei (in Frage kommen include/zugriff.inc.php; include/auth.inc.php; include/fpdf.php sowie die print.php selbst) ein sog. Byte Order Mark eingeschlichen hat.


Ich hoffe, dem Ein oder Anderem hilft das Skript beim Verwalten des Captive Portals. In der .zip-Datei ist auch eine ausführlichere Anleitung als PDF enthalten. Außerdem ist der Quellcode relativ gut kommentiert und sollte leicht anzupassen sein. Wenn jemand Feedback/Ideen/Anregungen/Bugs/... hat: Bitte einfach kommentieren ;)

Angelehnt an dieses Tool hat @117162 ein ähnliches Tool gebaut, welches sich aber direkt in pfSense integrieren lässt! Anleitung dazu gibt es hier: Captive Portal Plus: pfSense Voucher PDF in der WebGUI von pfSense erzeugen oder an einen Netzwerk Bon Drucker senden (Ergänzung: Da der Beitrag zwischendurch verschwunden war, hier der direkte Link zur Software: http://sourceforge.net/projects/captiveportalplus/)

UPDATE3 (12.01.20): An wenigen Stellen gab es noch Probleme mit den neuen PHP-mysqli-Funktionen (eingeführt mit Update von 1.5 auf 1.6.). Dank der Hilfe mehrerer Nutzer (siehe Kommentare unten) wurden diese Fehler inzwischen in der aktuellsten Version 1.6.2 korrigiert. Von 1.6 auf 1.6.2 haben sich die Dateien
include/header.inc.php, include/sms_api.php, include/lang.php sowie die print.php geändert und können zwecks Update einfach ausgetauscht werden.

UPDATE2 (29.05.16): Version 1.6 verwendet nun die mysqli_-Funktionen (anstatt mysql_), eine aktuellere Version des PDF-Generators sowie das "Gateway 3" als SMS-Gateway. Anleitung für Upgrade von 1.5: Siehe Kommentar

UPDATE: Jetzt neu in Version 1.5 mit integriertem Login, schönerem Setup, besserer Einstellungsverwaltung und Mehrsprachigkeit! Upgrade von 1.0-Version ist möglich, bitte in jedem Fall die PDF-Anleitung beachten...

Content-ID: 193763

Url: https://administrator.de/contentid/193763

Ausgedruckt am: 21.11.2024 um 13:11 Uhr

aqui
aqui 06.11.2012, aktualisiert am 17.05.2014 um 15:25:16 Uhr
Goto Top
Hallo Eagle2
Das ist ein sehr hilfreiches Addon für das Captive Portal Tutorial und wird vielen Nutzern der pfSense/Monowall CP Lösung die Passwort Verwaltung für Gäste erheblich erleichtern. Auch die SMS Option ist sehr nützlich.
Das Captive_Portal_Tutorial ist entsprechend mit einem Hinweis aktualisiert.
eagle2
eagle2 06.11.2012 um 16:55:19 Uhr
Goto Top
Das freut mich, vielen Dank!

eagle2
Dani
Dani 07.11.2012 um 22:37:33 Uhr
Goto Top
Moin,
vielen Dank erstmal... wird evtl. bei uns Einsatz finden.
Was mich noch interessieren würde, ist es möglich das Ganze als Package für pfSense bereitzustellen, dass alles auf der Firewall läuft und keine Zusatzserver/gräte benötigt werden?!


Grüße,
Dani
eagle2
eagle2 08.11.2012 um 19:31:08 Uhr
Goto Top
Hallo Dani,

geplant habe ich das jetzt nicht, das ist allerdings eine interessante Idee. Ich werd mir mal anschauen wie schwierig es ist, so ein Package zu programmieren, aber in nächster Zeit ist es bei mir zeitlich etwas eng...

Grüße,
eagle2
aqui
aqui 10.11.2012, aktualisiert am 30.11.2015 um 19:08:59 Uhr
Goto Top
Für die kleine Pension oder das kleine Cafe kann man das auf einem preiswerten Raspberry_Pi_Netzwerk_Server installieren face-wink Der sollte das noch locker verkraften wenn es nicht gerade ein 1000 Betten Hotel ist oder die Firma mit 100 Gästen pro Tag.

Das hiesige Raspberry Tutorial ist entsprechend upgedatet und beschreibt die Installation dieses Tools in einzelnen auch für Laien leicht nachvollziehbaren Schritten. Die o.a. Lösung rennt wunderbar in der aktuellen Version mit allen Funktionen !
Vielleicht sollte man noch erwähnen das für die SMS Funktion ein Konto bei smsflatrate.net (Default) oder einem anderen SMS Dienstleister erforderlich ist !
Hat man sich dort registriert kann man auch den persönlichen API Key auf der Seite einsehen, der für die SMS Option in den Settings eingetragen werden muss. Das RasPi Tutorial geht darauf ein.
Rundrum eine Klasse Lösung für die Erstellung von WLAN Vouchern Voucher für Gäste.
Stefan31
Stefan31 10.03.2013 um 17:38:18 Uhr
Goto Top
Hallo,
tolle Sache. Ich hab das mal mit xmapp realisiert. allerdings bekomme ich beim einlesen der voucher eine fehlermeldung. Function ereg_replace() is deprecated.
der import klappt aber und die liste wird sauber aufgebaut. hab ich da etwas im setup vergessen?

Liebe Grüße und noch einmalvielen dank für die arbeit die ihr da geleistet habt


Stefan
eagle2
eagle2 10.03.2013 um 17:43:11 Uhr
Goto Top
Hallo Stefan,

die Funktion ereg_replace, welche ich bei der Entwicklung verwendet habe und zum damaligen Zeitpunkt noch aktuell war, ist inzwischen "veraltet" und soll nicht mehr verwendet werden. Ich werde dies in der nächsten Version berücksichtigen. Wenn der Import wie vorgesehen klappt, kannst die Fehlermeldung durch Hinzufügen von error_reporting(0); in eine neue Zeile nach <?php in der index.php-Datei ausblenden.

Gruß,
Eagle2
Dani
Dani 10.03.2013 um 18:09:13 Uhr
Goto Top
Zitat von @eagle2:
die Funktion ereg_replace, welche ich bei der Entwicklung verwendet habe und zum damaligen Zeitpunkt noch aktuell war, ist inzwischen "veraltet" und soll nicht mehr verwendet werden. Ich werde dies in der nächsten Version berücksichtigen. Wenn der Import wie vorgesehen klappt, kannst die Fehlermeldung durch Hinzufügen von error_reporting(0); in eine neue Zeile nach <?php in der index.php-Datei ausblenden.
Meinst du es wäre nicht besser die Funktion zu ersetzen als zu basteln. face-wink


Grüße,
Dani
Stefan31
Stefan31 10.03.2013 um 18:12:55 Uhr
Goto Top
Danke eagle für die schnelle antwort. ich werde das mal so umsetzen.

Gruß Stefan
eagle2
eagle2 10.03.2013 um 18:15:54 Uhr
Goto Top
Zitat von @Dani:
Meinst du es wäre nicht besser die Funktion zu ersetzen als zu basteln. face-wink


Grüße,
Dani

Klar, werde ich in der nächsten Version umsetzen ;) . Da mir aber im Moment die Zeit dafür fehlt, ist es (noch) eine Lösung...
aqui
aqui 11.03.2013 um 09:11:11 Uhr
Goto Top
...und ohne XAMPP funktioniert es ja derzeit absolut fehlerfrei face-wink
eagle2
eagle2 22.03.2013 um 21:33:08 Uhr
Goto Top
So zusammen, der Bug ist behoben:
Version 1.0.6 steht zum Download bereit. Wer die vorherige Version einsetzt, kann einfach die index.php mit selbiger aus der 1.0.6 ersetzen. Wer den Bug per Hand beheben möchte: in Zeile 41 der index.php das Wort ereg_replace durch str_replace ersetzen (ja, mehr ist das nicht ;) )

Gruß und viel Spaß damit,
Eagle2
Schwabe85
Schwabe85 16.05.2013 um 00:17:48 Uhr
Goto Top
Hallo,

habe den Vouchergeneratore heute entdeckt und gleich mal auf unserem Server von Hosteurope.de installiert.

Leider bekomme ich aber beim Generieren der PDF folgende Fehlermeldung:

FPDF error: Some data has already been output, can't send PDF file (output started at /www/vouchergenerator/include/settings.inc.php:1)


Zwar gibt es bei Google dazu schon viel Infos, aber leider werde ich daraus nicht schlau.
Vielleicht kann ja hier jemand helfen.

Grüße
Schwabe
eagle2
eagle2 18.05.2013, aktualisiert am 19.05.2013 um 11:13:04 Uhr
Goto Top
Klingt danach, als ob sich da irgendwie ein BOM beim Bearbeiten (http://en.wikipedia.org/wiki/Byte_order_mark) eingeschlichen hätte. Wenn du einen SSH-Zugang hast, sollte sich selbiges so entfernen lassen: http://stackoverflow.com/questions/1068650/using-awk-to-remove-the-byte ...

Ansonsten mal nach BOM entfernen googlen.

Viel Erfolg noch!

Gruß,
Eagle2

Edit: Meine natürlich die settings.inc.php...
Dani
Dani 19.05.2013 um 18:42:46 Uhr
Goto Top
Moin Schwabe,
welches Produkt habt ihr von Hosteurope? Bei Webpack oder Webserver Managed gibt es im KIS ein Errorlog. Da sollte mehr zu finden sein.


Grüße,
Dani
Schwabe85
Schwabe85 17.06.2013 um 16:44:38 Uhr
Goto Top
Hallo zusammen,

super Arbeit von eagle2!!

Da ich davor die Version per Excel von ThorstenTS verwendet habe. Und mir das dortige Ausgabeformat gefallen hat.
Habe ich dieses bei eagle2 Vouchergenerator nachgebastelt.

Vielleicht hat ja jemand auch daran Interesse. face-smile
http://goo.gl/PPgqV

Die settings.inc.php kann man dann auf seine Bedürfnisse anpassen.


Gruß
Schwabe
eagle2
eagle2 23.11.2013 um 20:43:31 Uhr
Goto Top
UPDATE: Jetzt neu in Version 1.5 mit integriertem Login, schönerem Setup, besserer Einstellungsverwaltung und Mehrsprachigkeit! Upgrade ist möglich, bitte in jedem Fall die PDF-Anleitung beachten...
Dani
Dani 23.11.2013 um 22:50:56 Uhr
Goto Top
Moin,
Bitte Screenshots im Thread aktualisieren.

Grüße,
Dani
eagle2
eagle2 23.11.2013 um 22:58:02 Uhr
Goto Top
Moin Dani,

sind drin ;)

Gruß,
Eagle2
supetarska
supetarska 09.03.2014 um 15:06:23 Uhr
Goto Top
mal eine frage, ich habe den Voucher Generator 1.5.8 auf meinen Webspace(Strato) gepackt.
Mysql Datenbank angelegt
setup.php gestartet, alles eingerichtet.
Es kam die Meldung das ich die Setup Datei löschen muss, habe ich getan und dann bin ich auf die index.php Seite gegangen
jetzt will ich die CSV datei die meine monowall generiert hat hochladen, da drunter steht, habt Geduld, ich klicke hochladen und es kommt nur ein weißer langer Balken und oben sehe ich die Menü leiste Voucherverwaltung Statistik SMS und es tut sich nichts face-sad

in der Pdf Anleitung steht
"Als erster Schritt nach der Installation muss auf der Einstellungsseite mindestens eine Datenbanktabelle eingerichtet werden!"

ich verstehe nicht ganz auf welcher Einstellungsseite......kann mir jemand einen Tipp geben was ich falsch mache
eagle2
eagle2 09.03.2014 um 15:16:40 Uhr
Goto Top
Moin supetarska,

auf der Einstellungsseite die in der Kopfzeile verlinkt ist (Der 4. Button oben auf dem "Einstellungen" steht...)

Dort musst du etwa in der Mitte (8. Feld von oben) mindestens eine Datenbanktabelle für Voucherlisten anlegen. Das geht ganz einfach, indem du dort z.B. "voucher01|1 Stunde" einträgst (ohne Anführungszeichen). Oben in meinem Beitrag sind Screenshots, u.a. auch einer von der Einstellungsseite, wo genannte Einstellung auch zu sehen ist.

Viele Grüße,
Eagle2
supetarska
supetarska 09.03.2014 um 16:42:35 Uhr
Goto Top
super, habe es geschafft erflogreich die csv datei hochzuladen
jetzt klicke ich auf generate und kriege folgende fehlermeldung
The requested URL /wlangen3/print.php was not found on this server.

muss ich noch was hochladen auf den ftp server

ach ja...unter statistik habe ich folgendes stehen, wenn ich auf anzeigen klicke
Datenbank:

Anzahl Codes in der Datenbank: 0
Anzahl gedruckter Codes in der Datenbank: 0
Anzahl freier Codes in der Datenbank: 0
eagle2
eagle2 09.03.2014 um 17:00:27 Uhr
Goto Top
Moin,

wenn du die Installation nach Anleitung durchgeführt hast und vorher das gesamte Archiv auf den Server hochgeladen hast, funktioniert auch die Druckfunktion. Existiert die Datei print.php denn nicht?

Für dein Problem mit dem Hochladen: schau mal, ob der PHP-Benutzer auf das temporäre Verzeichnis (standardmäßig "temp" als Unterordner vom Vouchergenerator) Schreibrechte hat (Google: chmod).

Viele Grüße,
Christian
supetarska
supetarska 09.03.2014 um 17:07:41 Uhr
Goto Top
ich habe die datei vouchergenerator1.5.8 runtergeladen, entpackt und auf den strato webspace gepackt, Temp ordner habe ich die rechte 665 gegeben.
die print.php datei habe ich auch im ordner, das habe ich in der index.php datei gefunden
form method="post" action="../wlangen3/print.php">

wlangen3?
ist das der fehler? bzw den ordner habe ich ja gar nicht
eagle2
eagle2 09.03.2014, aktualisiert am 13.03.2014 um 06:47:46 Uhr
Goto Top
Argh, das hat meine Entwicklungsumgebung da hereingepfuscht...
Bitte nochmal neu downloaden und die index.php austauschen, sorry!
Die Einträge aus der voucher.csv sollten in der MySQL-Datenbank in der ausgewählten Tabelle zu finden sein, im temp-Ordner nur für die Dauer des Hochladens.

Viele Grüße,
Eagle2

//Edit: Da scheint noch ein Bug drin zu sein, ich prüfe das momentan, vermutlich kommt da heute Abend noch ein Update...
goodreligion
goodreligion 02.04.2014 um 14:42:14 Uhr
Goto Top
Das generieren der PDF klappt irgendie nicht. Folgende Fehlermeldung:
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /var/www/web551/html/voucher/print.php:1) in /var/www/web551/html/voucher/include/auth.inc.php on line 2
FPDF error: Some data has already been output, can't send PDF file (output started at /var/www/web551/html/voucher/print.php:1)

LG
Fritz
eagle2
eagle2 02.04.2014 um 17:16:07 Uhr
Goto Top
Moin,

klingt danach, als ob sich da irgendwie ein BOM in die print.php beim Bearbeiten/Hochladen (http://en.wikipedia.org/wiki/Byte_order_mark) eingeschlichen hätte. Wenn du einen SSH-Zugang hast, sollte sich selbiges so entfernen lassen: http://stackoverflow.com/questions/1068650/using-awk-to-remove-the-byte ...

Ansonsten mal nach BOM entfernen googlen.

Viel Erfolg noch!

Gruß,
Eagle2
newuser12
newuser12 08.04.2014 um 00:03:58 Uhr
Goto Top
Hallo,

hab heute versucht den Vouchergenerator zu installieren jedoch erhalte ich immer die Meldung (nach dem Setup):

No database selectedSetup abgeschlossen. Bitte setup.php löschen und dann index.php aufrufen.

Nach dem löschen bleiben trotzdem alle Seiten leer.

Version 1.0.7 lässt sich mit den selben Daten problemlos installieren.
aqui
aqui 08.04.2014 aktualisiert um 09:21:21 Uhr
Goto Top
Hast du denn auch richtig eine entsprechende MySQL Datenbank aufgesetzt und aktiviert ? Hört sich so an als ob das nicht der Fall ist !
Hier in diesem Praxistutorial:
Netzwerk Management Server mit Raspberry Pi
findest du im Kapitel 2 unter der Überschrift "Web basierte Voucher (Einmalpasswort) Verwaltung..." eine detailierte Anleitung wie das wasserdicht auf einem Server umzusetzen ist.
Das funktioniert dann auch sofort auf Anhieb !
eagle2
eagle2 08.04.2014 um 09:52:42 Uhr
Goto Top
Komisch, eigentlich sollte das nicht passieren. Verwendest du einen "komischen" Datenbanknamen? Schau doch mal bitte, was in der Datei "include/zugriff.inc.php" nach der Installation drin steht, insbesondere ob in der zweiten Zeile die richtige Datenbank steht. Stehen in der Datenbank korrekte Inhalte (mal mit PHPMyAdmin nachschauen?

Viele Grüße,
Eagle
newuser12
newuser12 08.04.2014 um 11:00:15 Uhr
Goto Top
Hallo,

zunächst einmal Danke für die schnellen Antworten.

@aqui
Hatte es zunächst ohne Anleitung versucht bzw. mit der PDF Datei in der Zip Datei. Nachdem es nicht geklappt hatte bin ich genau nach der Anleitung aus dem Raspberry Tutorial vorgegangen.
In der Version 1.0.7 klappt es damit ja auch problemlos nur in der neuen Version nicht.

@eagle2
Der Datenbankname ist nichts "komisches", hab auch extra nochmals den aus dem Raspberry Tutorial verwendet ohne Erfolg.
Allerdings glaube ich der Tipp mit der "include/zugriff.inc.php" Datei scheint zum erfolg zu führen. Diese Datei existiert nicht. Wird diese erst nach dem Setup erzeugt oder sollte sie im Download enthalten sein und muss nur noch mit leben gefüllt werden?

Vg

newuser12
eagle2
eagle2 08.04.2014 um 11:12:52 Uhr
Goto Top
Die Datei wird im Setup-Prozess angelegt, eventuell fehlen die Schreibrechte auf das Verzeichnis "include"?
newuser12
newuser12 09.04.2014 um 11:53:47 Uhr
Goto Top
Hallo,

ja lag an den Schreibrechten. Habe es jetzt endlich hinbekommen face-smile .

Danke nochmals für Hilfe.

Vg

newuser12
eagle2
eagle2 09.04.2014 um 12:51:19 Uhr
Goto Top
Super, freut mich ;)

Viele Grüße,
Eagle2
thomasphi
thomasphi 13.05.2014 um 00:20:15 Uhr
Goto Top
Sehr schönes und praktisches Programm, vielen Dank!

Leider funktioniert es bei mir nur noch nicht so recht.
Die Einrichtung hat geklappt, und ich habe auch eine csv-Datei ohne Fehler hochladen können.

Wenn ich mir die Statistik anschauen möchte, erscheint nur folgende Fehlermeldung:

Anzahl Codes in der Datenbank:
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in /www/htdocs/xxx/vouchergenerator/statistik.php on line 25


Wenn ich die Voucher ausdrucken möchte erhalte ich folgende Fehlermeldung:

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /www/htdocs/xxx/vouchergenerator/print.php:1) in /www/htdocs/xxx/vouchergenerator/include/auth.inc.php on line 2

Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in /www/htdocs/xxx/vouchergenerator/print.php on line 59
FPDF error: Some data has already been output, can't send PDF file (output started at /www/htdocs/xxx/vouchergenerator/print.php:1)

(Der letzte ist wohl dieser ominöse BOM-Fehler, der steht mir also auch noch bevor...)

Google gibt mir zu der Mysql-Fehlermeldung eine ganze Reihe von möglichen erklärungen, die ich leider nicht alle ausprobieren kann. Vielleicht liegt es auch an meiner PHP-Version 5.3.28?

Für Eure Hilfe bin ich sehr dankbar!
eagle2
eagle2 13.05.2014 um 18:28:30 Uhr
Goto Top
Hi,

kannst du mal mit Phpmyadmin o.Ä. in die Datenbank schauen und prüfen, ob dort die Voucher aufgelistet sind und ob die Tabellen richtig benannt sind? Der zweite Fehler ist bei dir kein Byte order mark, sondern hat die gleiche Ursache wie der erste (mit dem mysql_...).

Vielleicht fehlen ja einfach nur die Schreibrechte auf das /www/htdocs/xxx/vouchergenerator/temp-Verzeichnis (Stichwort chmod)?

Viele Grüße,
Eagle2
thomasphi
thomasphi 13.05.2014 um 21:22:02 Uhr
Goto Top
Danke für die Tipps!

Es war tatsächlich so, dass das Hochladen nicht funktioniert hatte und die Tabelle leer war. Mit dem Firefox habe ich es auch zuerst nicht hinbekommen, die csv Datei hochzuladen. Die Ordnerrechte passen, ich hatte sie sogar für temp und include auf 777 gesetzt. Ich habe es anschließend einmal mit Chrome probiert, und siehe da, das hat funktioniert! Und komischerweise, jetzt funktioniert es auch mit dem Firefox, obwohl ich nicht wirklich etwas geändert hatte...

Die Voucher sind jetzt in der Tabelle und ich kann sie mir auch per "Statistik" ausgeben.

Nur beim Ausdrucken kommt leider immer noch der selbe Fehler wie oben ("...headers already sent..."). Sowohl mit FF und Chrome.

Viele Grüße

Thomas
eagle2
eagle2 14.05.2014 um 09:02:54 Uhr
Goto Top
Kannst du mal bitte die vollständige Fehlermeldung hier rein kopieren? Evtl. ist da dann doch das BOM-Problem (von dem ich immer noch nicht sagen kann wie der entsteht...).
thomasphi
thomasphi 14.05.2014 um 09:06:41 Uhr
Goto Top
Hier ist die Fehlermeldung:

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /www/htdocs/xxx/vouchergenerator/print.php:1) in /www/htdocs/xxx/vouchergenerator/include/auth.inc.php on line 2
FPDF error: Some data has already been output, can't send PDF file (output started at /www/htdocs/xxx/vouchergenerator/print.php:1)
eagle2
eagle2 14.05.2014 um 09:15:23 Uhr
Goto Top
Es wird wohl in der Print.PHP in der ersten Zeile schon etwas ausgegeben, wenn da nichtsnichts zusätzlich in der ersten Zeile drin steht (bzw nur die PHP-Tags) hat sich da wohl wirklich ein BOM eingeschlichen...

Hier
http://www.w3.org/International/questions/qa-byte-order-mark.de.php

gibt es eine schöne Erklärung dazu, Lösungsansätze und in Frage kommende Dateien hatte ich oben ja schon geposted ;)

Viele Grüße,
Eagle2
thomasphi
thomasphi 14.05.2014 um 09:58:22 Uhr
Goto Top
Tatsächlich, das hätte ich auch gleich selbst ausprobieren können...

Vielen Dank für die Hilfe, jetzt funktioniert es wunderbar!

Viele Grüße

Thomas
eagle2
eagle2 14.05.2014 um 11:26:26 Uhr
Goto Top
Freut mich!

In welcher Datei war denn der Fehler?

Viele Grüße,
Eagle2
thomasphi
thomasphi 14.05.2014 um 11:30:53 Uhr
Goto Top
Ich habe nur die print.php vom BOM befreit.

Viele Grüße

Thomas
Coputerer
Coputerer 28.06.2014 aktualisiert um 00:29:55 Uhr
Goto Top
Hallo

Zunächst wollte ich bemerken, dass dies mein erster Post hier ist und ich das Forum super finde. Google hat mich schon oft her geführt.

Und natürlich danke für dieses Tool, das, so hoffe ich, die Voucher - Verwaltung vereinfachen wird.

Nun häte ich es gerne parallel zu pfSense auf dem Webserver der Firewall abgelegt, damit ich keinen zusätzlichen Server betreiben muss. Also, dass dein Tool über http://pfsensename/voucherverwaltung o.ä. aufrufbar wäre.

Dies konnte ich soweit auch hinkriegen, nur blieb ich damm beim setup.php stecken, da ich die pfSense-DBs nicht kenne.

Meine Frage ist nun, ob jemand weiss, wie man eine DB von pfSense für dieses Tool cerwenden kann, was also die Login-Daten wären.

Oder ist meine Idee allgemein nicht empfehlenswert, wegen Sicherheit..?

Ich bin dankbar für Rückmeldungen.
Gruss
Patrick
eagle2
eagle2 28.06.2014 um 08:42:46 Uhr
Goto Top
Moin Patrick,

ausprobiert habe ich das noch nicht, aber das von pfSense verwendete PHP hat keinen MySQL-Support und es existiert somit auch keine MySQL-Datenbank. Was afaik gehen müsste wäre das nach zu installieren, im englischen Forum gibt es einen Thread, der das automatische hinzufügen von Nutzern in eine Freeradius-MySQL-Datenbank beschreibt, die ersten Schritte für "enable mysql support in php" und "install mysql" sollten dann aber funktionieren.

Du müsstest dir dann nur den Document Root (=das "Startverzeichnis") von pfSense suchen, dort einen neuen Ordner voucherverwaltung anlegen und mein Tool da rein kopieren (scheint ja schon geklappt zu haben).

Bezüglich Sicherheit dürfte die Verwaltung dann auch über das Gastnetz zu erreichen sein, was aber im Normalfall kein Problem darstellen sollte, ich selber betreibe es auf einem öffentlich erreichbaren Webspace. Wie immer gilt hier: Sicheres Passwort verwenden ;) In wie weit man durch die Installation von MySQL & Co die Sicherheit von pfSense gefährdet: Keine Ahnung, ich würde jetzt eher den höheren Ressourcenverbrauch als Problem sehen.

Viele Grüße,
Eagle2
Coputerer
Coputerer 14.07.2014 um 18:33:34 Uhr
Goto Top
Hallo zusammen

Habe nun doch einen Ubuntu Server (14.04) aufgesetzt und Webserver mit MySQL und Apache aufgesetzt.

Nun erhalte ich aber nach Ausfüllen der setup.php die folgende Meldung:

Access denied for user 'www-data'@'localhost' (using password: NO)Setup abgeschlossen. Bitte setup.php löschen und dann index.php aufrufen.

(Die DB ist auf dem localhost)

Kann mir hier jemand weiter helfen?

Vielen Dank im Voraus.
eagle2
eagle2 14.07.2014 um 18:56:41 Uhr
Goto Top
Hi,

hat der Benutzer www-data Schreibrechte auf das Verzeichnis ...vouchergen/temp sowie ...vouchergen/include (chmod)?

Während der Installation wird in include eine Datei angelegt, der Prozess schlägt fehl, falls die Rechte fehlen (steht hier auch weiter oben schon in den Kommentaren irgendwo).

Viele Grüße,
Eagle2
adil1984
adil1984 26.08.2014 um 10:55:28 Uhr
Goto Top
Hallo,
irgendwie bin ich blind und scheine etwas zu übersehen.
Ich hab folgende Problematik:
Nachdem ich die Voucher.csv im Captive Portal erstellt habe und anschließend in der Voucherverwaltung hochladen will, erscheint direkt die Meldung Upload erfolgreich. Aber in der Statistik und in der DB sind keine Einträge vorhanden.

Folgende Umgebung habe ich:
Windows Server 2008 und setze den IIS ein, dazu MySQL.
Jeder hat die volle Berechtigung auf das Temp Verzeichnis.
Der DB User ist root und hat sämtliche Priveligien in der MySQL Datenbank.
Unter Einstellungen ist eine Datenbank Tabelle wie folgt angelegt "voucher01|voucher01".
Die Tabelle wird beim speichern auch in MySQL angelegt und ist natürlich leer.

Könnt Ihr mir n Tipp geben was ich übersehe?
eagle2
eagle2 27.08.2014 um 01:22:36 Uhr
Goto Top
Hi,
dein Setup klingt so, als ob alles stimmen würde. Hast du mal in die csv-Datei herein geschaut? Die ersten Zeilen, die den Kommentar enthalten, werden automatisch abgeschnitten, hast du da evtl schon was vorab entfernt?

Viele Grüße,
Eagle2
adil1984
adil1984 27.08.2014 um 09:22:29 Uhr
Goto Top
yep, hatte rein geschaut. Hab alles original so gelassen wie es war, hab es auch mehrfach erstellt und mehrfach versucht zu importieren.
Auch in verschiedene Tabellen, alles ohne erfolg.

Muss für die MySQL DB noch was spezielles angepasst werden? Kann ich irgendwie Logfiles freischallten?
aqui
aqui 27.08.2014 aktualisiert um 09:43:24 Uhr
Goto Top
Das muss ggf. ein reines Windows Problem sein (NTFS, Rechte etc. ?) Hab das eben nochmal auf einem Debian und Ubuntu System testlaufen lassen mit der Installation und es klappt fehlerfrei auf Anhieb.
Ebenso auf einem Raspberry_Pi mit Raspbian auch fehlerlos.
adil1984
adil1984 27.08.2014 um 10:09:00 Uhr
Goto Top
schade, mehr Rechte als die des Domänen-Admins kann ich nicht vergeben.
Ich importiere die Voucher erstmal manuell per script und schau mir mal den Verbrauch an.
Alternativ muss ich mir eben etwas neues einfallen lassen.

Danke für eure Hilfe und fürs Nachstellen.

Falls es doch wer mit einer ähnlichen Konfig wie meiner zum laufen gebracht hat, bitte melden face-smile
aqui
aqui 27.08.2014 um 10:43:01 Uhr
Goto Top
Alternativ muss ich mir eben etwas neues einfallen lassen.
Raspberry Pi !! face-smile
Sobowolf
Sobowolf 16.10.2014 um 09:32:15 Uhr
Goto Top
Bei der neuen Version fehlt der smsrequest Ordner. Hat einer Erfahrungen mit der Versand Funktion der Voucher über SMS.
Der Vouchergeneratpr in der aktuellen Version liegt auf meinem Webspace. Die Verbindung mit dem Captive Portal steht und die DB lässt sich auch mit Vouchern füllen.

Allerdings meine Frage, wie realisiere ich nun das vorhaben, dass die Voucher per SMS versendet werden. Wenn ich von einer älteren Version den Ordner smsrequest auf meinen Webspace lade, kann ich die Index.php in dem Ordner smsrequest nicht öffnen.

Ich hoffe mir kann einer helfen?!
eagle2
eagle2 16.10.2014 um 16:17:53 Uhr
Goto Top
Oh, das ist ein Fehler meinerseits, sorry. Ich werde heute Abend das Archiv aktualisieren ;).

Viele Grüße,
eagle2
Sobowolf
Sobowolf 16.10.2014 um 21:13:38 Uhr
Goto Top
Hallo,

für die Veröffentlichung wäre ich sehr dankbar face-smile
Dann anschließend gleich noch eine Frage; Ist es möglich jedes beliebe sms-gateway einzutragen, oder kann ich mir eins selber erstellen?

Viele Grüße

Sobowolf
eagle2
eagle2 16.10.2014 um 22:45:30 Uhr
Goto Top
Moin,

so, die neue Version ist drin. Implementiert ist das Gateway von smsflatrate.net, wenn du dieses verwenden möchtest, musst du nur deinen Schnittstellenkey eintragen. Wenn du ein anderes Gateway verwenden möchtest, musst du die Datei "include/sms_api.php" anpassen, dazu die entsprechenden Kommentare im PHP-Code beachten (die relevante Funktion ist send_code, dir steht die Handynummer des Empfängers, der Text und der API-Key zur Verfügung).

Viele Grüße,
eagle2
Sobowolf
Sobowolf 22.10.2014 um 13:09:07 Uhr
Goto Top
Moin,

nun habe ich die aktuelle Version auf meinen Webserver geladen. Die Voucher funktionieren wunderbar. Allerdings habe ich immernoch das Problem, dass wenn ich die Index.php im Ordner smsrequest aufrufen will im Browser, die komplette Seite weiß bleibt. Liegt da immernoch ein Problem vor?

Gruß

Sobowolf
eagle2
eagle2 22.10.2014 um 14:21:21 Uhr
Goto Top
Zitat von @Sobowolf:

Liegt da immernoch ein Problem vor?


Ganz offensichtlich ja, sonst würde die Seite ja nicht leer bleiben :P

Lass dir doch mal die Fehler anzeigen, entweder durch Ausführen von php über SSH (php index.php oÄ), oder durch Aktivieren der Fehlermeldungen (siehe z.B. http://tut.php-quake.net/de/error.html).

Hast du wie in der Doku beschrieben im Kopf der Datei den Pfad zur include/sms_api.php angepasst?

Viele Grüße,
eagle2
DocSnyder26
DocSnyder26 10.02.2015 um 23:55:38 Uhr
Goto Top
Hallo Zusammen,

noch eine Ergänzung, weil ich mich gerade selbst zwei Stunden gefragt habe warum die SMS nicht ankommen. Ihr müsst allow_url_fopen und allow_url_include zulassen, sonst können die SMS nicht gesendet werden. Mehr dazu hier: http://php.net/manual/de/filesystem.configuration.php
estebu
estebu 18.02.2015 um 16:42:28 Uhr
Goto Top
Wenn das war ist, sehe ich schwarz bei mir, denn ich habe keinen eigenen Server sondern hoste bei 1&1 und dort ist allow_url_include immer auf 0 gesetzt. face-sad
Aber vielleicht kann der Entwickler ja mehr zu dem Thema sagen.
Bei mir funktioniert bis auf das Versenden der SMS alles prima. Habe mir auch extra einen Account bei smsflaterate.de angelegt und bereits etwas eingezahlt dort und dann den html-API -Code in meine Datenbank eingetragen.
Die smsrequest index lässt sich aufrufen und mit meiner Handynummer befüllen, doch nach dem Absenden passiert nichts weiter, es erscheint auch keine Fehlermeldung.
Gibt es noch ein alternatives workaround ausser einem virtuellen Server? (von RasPI vorerst mal abgesehen)
estebu
estebu 20.02.2015 aktualisiert um 14:36:07 Uhr
Goto Top
Ich habe die Lösung für mein Problem gefunden: nach einem Update der PHP-Version des Servers auf PHP 5.5 hat es auf Anhieb funktioniert!
Ergo ist 'allow_url_include' nicht zwingend erforderlich.
eagle2
eagle2 22.02.2015 um 22:19:35 Uhr
Goto Top
Hallo estebu,

vielleicht hat sich auch die Standardeinstellung geändert, denn mWn brauchst du diese Option zwingend; siehe http://php.net/manual/de/features.remote-files.php (es wird die Funktion "file()" zum Aufruf einer https-URL genutzt).

Ein kurzes Googlen hat aber ergeben, dass sich zumindest bei manchen Paketen bei 1&1 auch eine eigene php.ini anlegen lässt: http://hilfe-center.1und1.de/skript--und-programmiersprachen-c82634/php ...

Als alternativen Webhoster, den ich selber nutze, kann ich ansonsten https://uberspace.de empfehlen, da geht (fast) alles ;)

Viele Grüße,
eagle2
Hondo66
Hondo66 24.03.2015, aktualisiert am 26.03.2015 um 08:31:37 Uhr
Goto Top
Hallo,
Frage zjm SMS Versand.
bekomme den Fehlercode 130 (falsche Datenübergabe) zurück.
Gateway-Key ist korrekt, Guthaben ist vorhanden.
Der Aufruf mit Echo ausgegeben lautet wie folgt:
https://www.smsflatrate.net/schnittstelle.php?key=30e4b4XXXXXXXXXXXXXXXX ... &to=0049179123456789&text=Hallo+Ihr+WLAN-Vouchercode+lautet%3A+C85BFPDVRWB86&type=20

Wo liegt das Problem?
Gruß Andreas
Hondo66
Hondo66 24.03.2015 um 11:03:23 Uhr
Goto Top
Nochwas, php version ist 5.3.29
allow_url_fopen Local=On, Master=Off
allow_url_include Local=On, Master=Off

Andreas
Hondo66
Hondo66 24.03.2015 um 11:09:23 Uhr
Goto Top
Sorry für den 3. Kommentar.
Wenn ich den String oben direkt in den Browser eingebe bekomme ich das Ergebnis 100, also alles OK
eagle2
eagle2 24.03.2015 um 11:53:43 Uhr
Goto Top
Hi Hondo,

zuerst: es gibt hier auch eine Bearbeiten-Funktion, dann muss man nicht immer neue Beiträge anlegen (solange noch niemand anders kommentiert hat ;) )

Zu deinem Problem: An den PHP-Einstellungen kann es eigentlich nicht liegen, da sonst auch kein Fehlercode 130 zurückkommen würde. Da du ja schon selber ausprobiert hast, ob der Aufruf korrekt funktioniert, ist es etwas merkwürdig, da über PHP auch nichts anderes gemacht wird als die API aufzurufen. Hast du irgendwas an der sms_api.php-Datei verändert? Siehst du die Nachrichten online im Postausgang bei smsflatrate.net:

https://www.ssl-account.com/noc.smsflatrate.net/kundencenter/nachrichten ...

Viele Grüße
eagle2
Hondo66
Hondo66 24.03.2015, aktualisiert am 26.03.2015 um 08:30:24 Uhr
Goto Top
Hallo,
habe nichts an der sms_api.php geändert. Hier die Senden-Funktion:
function send_code($empf){ //SMS verschicken
	global $settings;
	$mysql = mysql_query("SELECT code FROM " . $settings['sms_voutbl'] . "  WHERE printed = 0 ORDER BY id LIMIT 1"); //Code abholen  
	mysql_query("UPDATE `" . $settings['sms_voutbl'] . "` SET `printed`=1 WHERE printed = 0 ORDER BY id LIMIT 1"); //als gedruckt markieren  
	$data = array(); //Code in Array laden
	$i = 0;
	while ($row = mysql_fetch_assoc($mysql)) {
		$data = $row['code'];  
	}
	$dest="0049" . $empf; //Handynummer im int. Format zusammensetzen  
	$text= $settings['sms_text'] .": ". $data; //Text zusammensetzen  
	$text = urlencode($text); //Text URL-Encodieren
	$fileOpenTRI = "https://www.smsflatrate.net/schnittstelle.php?key=" . $settings['sms_gtwkey'] . "&to=" . $dest . "&text=" . $text . "&type=20";  
	$gatewayAnswer = @file($fileOpenTRI); //SMS verschicken
	return $gatewayAnswer; //Antwort des Gateways zurückschicken
}
Gruß Andreas
Hondo66
Hondo66 24.03.2015 um 12:46:01 Uhr
Goto Top
Hallo,
Fehler gefunden.
Der Gateway-Key hat am ende ein Leerzeichen eingeschmuggelt - in der Tabelle aber ist kein Leerzeichen!
Ein einfaches trim() bringt die Lösung:
$fileOpenTRI = "https:www.smsflatrate.net/schnittstelle.php?key=" . trim($settings['sms_gtwkey']) . "&to=" . $dest . "&text=" . $text . "&type=20";

Gruß Andreas
eagle2
eagle2 24.03.2015 um 15:01:24 Uhr
Goto Top
Das ist dann natürlich merkwürdig, wie auch immer das da hingekommen ist ;)

Freut mich dass es jetzt klappt!

Viele Grüße
eagle2
aqui
aqui 25.03.2015 aktualisiert um 12:00:52 Uhr
Goto Top
Und beim nächsten mal die (code)_Tags verwenden das erleichtert das Lesen von den Settings Snippets oben ! face-wink
Fubu7826
Fubu7826 27.03.2015 um 14:45:08 Uhr
Goto Top
Moin Moin,

hab ein ganz merkwürdiges Problem mit dem Vouchergenerator. Wenn ich ein Voucher per SMS versenden lasse, kommt immer als Vouchercode Array in der SMS an . Beim Drucken als PDF ist alles korrekt. Was hab ich da denn übersehen??

Danke für die Hilfe im voraus face-wink
eagle2
eagle2 27.03.2015 um 15:54:39 Uhr
Goto Top
Hi,

hast du eventuell keine Voucher-Tabelle für den SMS-Versand eingetragen (geht auf der Einstellungsseite)?

Viele Grüße
eagle2
Erazorie
Erazorie 28.11.2015 aktualisiert um 13:46:10 Uhr
Goto Top
Hallo,

ich habe leider ein Problem das ich immer folgende Fehlermeldung bekomme wenn ich mir z.B. die Statistik anschauen will
nach erfolgreichen Upload der Datei:

Anzahl Codes in der Datenbank: Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in /volume1/web/RJ_Voucherverwaltung/statistik.php on line 25
Anzahl gedruckter Codes in der Datenbank: Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in /volume1/web/RJ_Voucherverwaltung/statistik.php on line 29
Anzahl freier Codes in der Datenbank: Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in /volume1/web/RJ_Voucherverwaltung/statistik.php on line 33 


Auch wenn ich Codes generieren will kommt folgendes:

Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in /volume1/web/RJ_Voucherverwaltung/print.php on line 59 FPDF error: Some data has already been output, can't send PDF file  

Die Byte Order Mark habe ich alles überprüft und die Rechte sind auch alle vergeben.
Nach was kann ich noch schauen?

Vielen Dank.
estebu
estebu 30.11.2015 aktualisiert um 19:04:28 Uhr
Goto Top
Welche PHP-Version benutzt du? Könnte sein, dass du das script bereits auf MySqli umstellen musst....
eagle2
eagle2 01.12.2015 um 17:25:10 Uhr
Goto Top
Moin zusammen,

das nötige Update auf die mysqli-Funktionen kommt auch demnächst...sorry. Die Fehlermeldung bedeutet aber, dass irgendwo was mit der SQL-Query nicht stimmt, und das kann einiges sein, angefangen von falschen DB-Zugangsdaten bis hin zu fehlerhaften Daten. Füge doch mal nach einer mysql_query, z.B. nach Zeile 24 in der Statistik-Datei folgende Ausgabe ein

echo mysql_errno() . ": " . mysql_error() . "\n";  

und schaue, was dann beim Aufruf passiert.

Viele Grüße
eagle2
Stefan31
Stefan31 13.12.2015 um 21:33:53 Uhr
Goto Top
in dem Fenster Tabelle für den sms Versand muss nur der Tabellen name stehen (voucher01) und nicht Tabellenname und Anzeigename
hab ich auch falsch gemacht und hatte den Fehler (array) ist aber ein Bedienungsfehler ...

Viele Grüße


funktioniert sehr gut , bin begeistert was man alles mit so einem raspberry so anstellen kann...
Der Generator ist eine prima App.. find es auch gut das er seperat auf dem raspberry läuft.
RVoegele
RVoegele 01.02.2016 um 19:03:36 Uhr
Goto Top
Hi und erstmal vielen Dank für das Script!

Ich will vor allem die SMS Variante nutzen. Der Versand klappt einwandfrei, jedoch wird der sms_log nicht abgefragt und beim Versand auch nicht geschrieben. Das Blockieren der Nummer funktioniert, der Versand klappt jedoch trotz blockierter nummer.

Woran könnte das liegen?

Vielen Dank und viele Grüße
Rainer
eagle2
eagle2 01.02.2016 um 20:41:55 Uhr
Goto Top
Hi,

habe gerade mal in meinen Mails gestöbert:

Zitat von noreply@smsflatrate.net:
Unsere neuen Preise zum 15.01.2016
Gateway 3, SMS ohne Absenderkennung DE - 4,5 ct inkl. MwSt.
Gateway 4, SMS ohne Absenderkennung weltweit - 5,0 ct inkl. MwSt.

Da unsere Preise von Anfang an extrem knapp kalkuliert sind, ist eine Preiserhöhung an dieser Stelle unvermeidlich.

Gateway 20+ 21 werden Sondergateways
Unsere beiden preisoptimierten SMS-Routen GW 20 + 21 werden zum 15.01.2016 Sonderrouten und stehen damit nur noch gewerblichen Kunden zur Verfügung.

Insofern Sie unsere Gateways 20 bzw. 21 einsetzen müssen Sie bis zum 15.01.2016 den Parameter Typ bei Ihrer Schnittstelle oder in Ihrer Anwendung anpassen. Mit unseren Gateways 3 + 4 haben Sie entsprechende Alternativen. Bitte ersetzen Sie das Gateway 20 durch unser Gateway 3 // Das Gateway 21 ersetzen Sie bitte durch das Gateway 4. Bitte ändern Sie Ihre Anbindungen bis zum 15.01.2016. Sollten Sie zeitliche Probleme sehen, wenden Sie sich bitte an unseren Support. Wir können Ihnen im Einzelfall helfen. Zum 15.01.2016 werden alle weiteren SMS über das Gateway 20 + 21 mit der Fehlermeldung 404 quittiert.

Daher muss wohl in der Datei \include\sms_api.php der Eintrag "&type=20" in Zeile 25 durch "&type=3" ersetzt werden, wenn kein gewerbliches Konto angemeldet wurde...

Steht schon auf der ToDo-Liste für das nächste Update, bis dahin bitte manuell anpassen!

Viele Grüße
eagle2
RVoegele
RVoegele 01.02.2016 um 20:53:53 Uhr
Goto Top
Hi,

vielen Dank für die schnelle Antwort. Das habe ich bereits gefunden und gemacht. Leider wird der Empfänger der SMS nicht in den sms_log geschrieben bzw. abgefragt deshalb kann jeder beliebig viele Voucher verschicken.

Können Sie mir da weiterhelfen?

Vielen Dank und viele Grüße
Rainer
eagle2
eagle2 01.02.2016 um 21:24:32 Uhr
Goto Top
Hi,

solange alles andere funktioniert (Voucher hochladen, ausdrucken) kann da eigentlich nicht viel schief gehen. Zum Testen kannst du ganz oben nach der ersten Zeile in der index.php aus dem smsrequest-Ordner die Zeile
error_reporting(E_ALL);
und/oder nach Zeile 24 (block_number) die Zeile
echo mysql_error();

einfügen, dann siehst du eventuelle Fehler.
Ansonsten kannst du per phpmyadmin und co mal in die Datenbank selber hereinschauen und prüfen, ob die Tabelle sms_log korrekt angelegt wurde, gegebenenfalls kannst du auch mal manuell einen Eintrag zum Testen hinzufügen. Query zum Erzeugen der Tabelle ist
CREATE TABLE IF NOT EXISTS `sms_log` (`id` int(11) NOT NULL auto_increment, `nummer` text NOT NULL, `timestamp` date NOT NULL, PRIMARY KEY  (`id`))

Die ID wird fortlaufend vergeben, Nummer ist immer ohne 00491 und Timestamp ist im Format 2016-02-01.

Viele Grüße
eagle2
nulleins
nulleins 31.03.2016 um 10:41:17 Uhr
Goto Top
Hallo eagel2,
vielen Danke - tolles Project!

Wäre es möglich Proxy unterstützung zu bekommen ?
Sprich das man bei den "Einstellungen" einen Proxy+Port eintragen kann bzw. System Proxy auswählen.
So das dann das sms_api.php Script über einen (http)Proxy die Verbindung zum Internet aufbaut.

Danke
nulleins
nulleins 31.03.2016 um 12:01:04 Uhr
Goto Top
So scheint es zu gehen: leider nur per HTTP

$aContext = array(
'http' => array(
'proxy' => 'tcp://proxy.domain.tld:3128',
'request_fulluri' => true,
),
);
$cxContext = stream_context_create($aContext);
$fileOpenTRI = "http://www.smsflatrate.net/schnittstelle.php?key=" . $settings['sms_gtwkey'] . "&to=" . $dest . "&text=" . $text . "&type=3";
$gatewayAnswer = @File($fileOpenTRI, false, $cxContext);
return $gatewayAnswer;
eagle2
eagle2 31.03.2016 um 22:50:02 Uhr
Goto Top
Hi nulleins,

ggf. könnte man anstatt der file()-Methode, die aus heutiger Sicht gesehen vermutlich nicht mehr optimal ist, curl verwenden.

Anleitung für curl mit https-Proxy

Guter Punkt, kommt auf die todo-Liste für das nächste Update.

Viele Grüße
eagle2
eagle2
eagle2 29.05.2016 um 16:25:49 Uhr
Goto Top
Moin zusammen,

habe gerade die Version 1.6 eingestellt. Diese ersetzt die veralteten mysql_-Funktionen durch die aktuelleren mysqli-Funktionen, ändert das Standard-SMS-Gateway von smsflatrate.net auf "Typ 3" und enthält eine neue fpdf-Version. Optisch oder an der Funktionalität hat sich nichts geändert, da habe ich aber noch ein paar Ideen auf der ToDo-Liste...

Wer von Version 1.5 aktualisieren möchte:

  1. Alle Dateien durch die neuen Versionen ersetzen
  2. include/zugriff.inc.php bearbeiten:
zweite Zeile: vorher
@mysql_connect(
--> nachher
$conn = @mysqli_connect(
dritte Zeile: vorher
@mysql_select_db('  
--> nachher
@mysqli_select_db($conn, '  

Wer das alte SMS-Gateway 20 weiterverwenden kann (geht wohl nur noch als Firmenkunde und auf Anfrage) oder die URL an einen anderen Dienstleister anpassen möchte, kann dies in Zeile 25 der Datei include/sms_api.php tun.

Viele Grüße
eagle2
DocSnyder26
DocSnyder26 14.04.2017 um 13:07:23 Uhr
Goto Top
Hallo Zusammen,

mit welchen PHP-Versionen funktioniert die Version 1.6, die ich hier herunterladen habe:
https://sourceforge.net/projects/vouchergen/files/latest/download
Also bei mir funktioniert der SMS-Versandt nur in Verbindung mit PHP 5.5.
Hetzner sagt jedoch:
Die derzeit verwendete PHP-Version ist sehr alt und wird offiziell vom Hersteller nicht mehr unterstützt. Bitte setzen Sie die PHP-Version auf eine aktuelle Version.
Was soll ich tun?

Gruß Doc
eagle2
eagle2 15.04.2017 aktualisiert um 11:50:43 Uhr
Goto Top
Moin Doc,

Tatsache, da hast du einen Bug gefunden - offenbar habe ich beim Update auf die mysqli-Funktionen versäumt, auch mit PHP7 zu testen. In Version 1.6.1 habe ich das soeben behoben. Geändert haben sich die Dateien "include/header.inc.php" sowie "include/sms_api.php", dort muss jeweils in der 7/8 Zeile aus "MYSQL_ASSOC" ein "MYSQLI_ASSOC" gemacht werden. Falls du es manuell ändern willst:

capture0

Damit funktioniert es jetzt auch mit PHP 7.

Danke fürs Bescheid sagen!

Viele Grüße
eagle2
umount
umount 11.08.2017 um 16:37:03 Uhr
Goto Top
Das Gateway kann ich das einfach ändern in das der Android App SMS Gateway App. Somit würde mich das nichts Kosten (o2 free).
eagle2
eagle2 11.08.2017 um 17:27:06 Uhr
Goto Top
Zitat von @umount:

Das Gateway kann ich das einfach ändern in das der Android App SMS Gateway App. Somit würde mich das nichts Kosten (o2 free).

Prinzipiell ja, siehe mitgelieferte Anleitung:

Ansonsten liegt der relevante Codeteil in der Funktion „send_code($empf)“ in der Datei „sms_api.php“ im Ordner „include“. Der Text der SMS steht in der Variable „$text“ (URL-Encodiert), der Empfänger (im Format 00491XXX) in „$dest“ zur Verfügung.

Es geht um die Zeilen 25/26 in der sms_api.php-Datei, dort wird zuerst die URL zusammengebaut und danach per HTTP-GET abgerufen. Die URL kannst du dort entsprechend auf dein privates SMS-Gateway abändern - es muss dann aber vom Webserver aus zu erreichen sein (d.h. entweder im gleichen Netzwerk oder aus dem Internet). Ich habe an der Stelle allerdings keinerlei Fehlerbehandlung implementiert, das steht noch auf der ToDo-Liste - falls die Kommunikation mit dem Gateway fehlschlägt, bekommt der Nutzer also keine Fehlermeldung.

Nebenbei: viele Provider verbieten die kommerzielle Nutzung von SMS-Flatrates, du solltest vorher also am besten nochmal in deinen Vertrag rein schauen.
umount
umount 12.08.2017, aktualisiert am 14.08.2017 um 11:27:47 Uhr
Goto Top
Ne das ganze läuft Privat die Codes sollen per SMS versendet werden. Damit die leute die mit im Internat wohnen oder in der Berufsschule ihr Notebook benutzen wie ich z.B. die Daten in die Cloud zu laden. Laut meinem ISP Unitymedia darf ich Internet unentgeldlich zur verfügung stellen (Office and Business 150) die SMS würden dann auch als Privat zählen ich verlange ja nichts. So soll nur eine Nummer für 24h Stunden einen Code bekommen. Und nicht viel hilft viel. Zusätzlich ist auch noch eine Watchguard auf den weg.

Bisher müssen alle Nutzer über ein Formular einen Account beantragen, und bekommen den dann wenn ich grade Luft hab. Nach der Recaptcha Abfrage können die sich dann Anmelden.
aqui
aqui 14.08.2017 aktualisiert um 12:45:20 Uhr
Goto Top
http://www.duden.de/rechtschreibung/Leute
Das andere macht man mit Glocken... face-smile
umount
umount 14.08.2017 um 11:28:43 Uhr
Goto Top
Danke für den Hinweis.

Konsequenz Autokorrektur aus.
aqui
aqui 14.08.2017 um 12:46:37 Uhr
Goto Top
Die hätte dann aber die Groß- Kleinschreibung richtig korrigiert face-wink
aymenjebali
aymenjebali 09.04.2018 um 02:47:38 Uhr
Goto Top
je veux vraiment vous remercier pour ce tutoriel , juste , j'ai une question : comment je vais relier tout ça avec mon portail captif ? MERCI
aymenjebali
aymenjebali 09.04.2018 um 02:53:11 Uhr
Goto Top
bonsoir , je veux vous remercier pour le tutoriel , vraiment c'est intéressant, juste j'ai ne petite question : est ce que j'ai besoin d'une donné relié avec pfsense ?
et comment je peux intégrer cet projet ( voucher generator ) avec mon portail captif ?
merci d'avance
aqui
aqui 09.04.2018 um 10:00:29 Uhr
Goto Top
Malheureusement nous ne parlions pas français. Parlez vous anglais ?
aymenjebali
aymenjebali 09.04.2018 um 17:31:14 Uhr
Goto Top
Do I want to create a voucher code using a web application that will automatically register it in: services-> captive portal-> vouchers ?
Thanks in advance
Mailwasher
Mailwasher 13.03.2019 um 10:17:33 Uhr
Goto Top
Hallo Zusammen. Ich hab nen Riesen Problem. Und zwar, bin ich gerade beim Aufbau meines Prüfungsprojektes zum FISI.
hab mir als Projekt Aufbau eines Hotelnetzes mit WLAN Gastnetzwerk ausgesucht, welches ich mit dem CP der pfSense verwirkliche. Dann wollte ich hier die funktion für den SMS versand nutzen, und hab in meine DMZ nen Raspberry eingepflanzt, der als Webserver dienen soll. Soweit sogut. Installiert, und bekam Fehlermeldungen mit PHP7. Also neu installiert, Apache2, PHP5.6.4 drauf, und dann ne MariaDB. Alles konfiguriert, per mysql die Datenbank Voucher erstellt, nen Benutzer mit Passwort angelegt, und alle Rechte auf die DB gewährt. Dann das Installationsscript aufgerufen, einstellungen eingegeben, und dann kommt die Meldung: Datenbankzugriff gescheitert!
Also Nutzer Root ausprobiert, der ja als "Superuser" zugriff haben sollte.... und Meldung: Keine Verbindung zu MYSQL!

Ich bin langsam am verzweifeln, da ich seit 2 tagen daran arbeite, und das am montag alles stehen sollte, da wir dann hausmesse haben.
aqui
aqui 13.03.2019 aktualisiert um 14:19:58 Uhr
Goto Top
Da hast du dein Root User Passwort falsch oder fehlerhaft gesetzt ! Eben hier nochmal auf einem frischen RasPi geteste...klappt fehlerfrei !
Mailwasher
Mailwasher 13.03.2019 um 15:43:08 Uhr
Goto Top
Also ich habs dann auf nem suse 42.2 aufgesetzt, und da hab ich keine probs mit der DB.... kann drauf zugreifen, etc. das einzige prob das ich habe, das keine vouchers in die db geschrieben werden. Er läd es ins temp, und löscht es dann auch wieder raus, hab ich gemerkt, als ich die zeile fürs löschen auskommentiert habe, dann blieb sie drinnen. Wenn ich dann versuch per hand ne csv zu importieren, druckt er keine codes, und im sms versand steht: "Ihr Code für den Internetzugang lautet "Array" , ausserdem bringt er im sms versand ne fehlermeldung, das er probs hat, das Array in nen string zu übersetzen. Langsam geht mir der Po auf grundeis, und ich werd es wohl erstmal übers wochenende nochmal neu überdenken müssen.
aqui
aqui 14.03.2019 um 16:35:31 Uhr
Goto Top
Du machst an der Grundkonfig die der Kollege @eagle2 beschreibt irgendetwas noch falsch. Gehe nochmal akribisch alle Settings und ToDos durch.
Besser du verwendest ein Debian, Ubuntu basiertes Linux wie den Raspberry Pi z.B.
Netzwerk Management Server mit Raspberry Pi
Damit sollte es eigentlich auf Anhieb klappen.
Wir drücken die Daumen....
Mailwasher
Mailwasher 15.03.2019 um 10:48:57 Uhr
Goto Top
Vielen Dank für deinen Tip. Ich hab mich jetzt genau dran gehalten, 2 mal, das erste mal hats nix gebracht, da ich noch die updates von stretch gezogen habe, und beim 2. mal hab ich das apt repository von jessie geholt. nur beim Mysql server musste ich es einmal umstellen auf stretch, danach wieder von jessie die restlichen addons geladen, und jetzt funktioniert es..... Jetzt hab ich nur noch ein Problem:

Der SMS Versand. Wenn ich mir einen Voucher aus der Tabelle ans Handy schicken lasse, bekomme ich Hallo, Ihr WLAN-Vouchercode lautet: Array
und in der SMS Versand steht Warning: mysqli_fetch_assoc() expectes parameter 1 to be mysqli_result, boolean given in /var/www/html/voucher/includes/sms_api.php on line 19

Notice: Array to string conversion in /var/www/html/voucher/include/sms_api.php on line 23.

Damit kann ich jetzt nicht wirklich was anfangen, aber der grossteil funktioniert schonmal. Was ja auch schon nen Meilenstein ist.
Vielen Dank, wenn der SMS Versand jetzt noch funktionieren würde, wäre das natürlich noch das i-Tüpfelchen in meinem Prüfungsprojekt. Vielleicht hat dazu jemand eine Idee?
Und entschuldigt, sollte ich euch hier nerven.
aqui
aqui 15.03.2019 aktualisiert um 12:39:36 Uhr
Goto Top
Wenn ich mir einen Voucher aus der Tabelle ans Handy schicken lasse,
Einen Account beim SMS Provider hast du eingerichtet und auch den API Code entsprechend konfiguriert ?
Ohne das alles geht das natürlich nicht !
Das ist die Datei settings.inc.php !
//---------------------------------------------------------------------
//SMS-Einstellungen
//SMS-Eintrag im Menü einblenden und Tabelle bei Installation anlegen
//Achtung: Wenn der Eintrag während der Installation auf 0 stand, muss vor einem nachträglichem
//Aktivieren eine entsprechende Tabelle per Hand angelegt werden
$sms_enable = 1;
//Tabelle für Handynummern-Log
$sms_logtbl = "sms_log";
//zu nutzende Vouchertabelle (muss oben unter "Tabellen" angegeben sein)
$sms_voutbl = "voucher60p";
//smsflatrate.net API-Key
$sms_gtwkey = "a1234561cacf73202858637abc1234567";
//Nachrichtentext
$sms_text = "Ihr Zugangscode lautet: ";
?> 
Wichtig ist hier das du
  • 1. Den SMS Gateway Key (sms_gtwkey) eingibst, den du vom Provider bekommst wenn du einen Account einrichtest
  • 2. Den Voucher Tabellen Namen (sms_voutbl) einrichtest ! Der muss mit deinem übereinstimmen in der Datenbank !
Desweiteren solltest du die SMS Dateien wie sms_api.php usw. kontrollieren solltest du einen anderen SMS Dienstleister als www.smsflatrate.net verwenden das die URLs etc. passen.

Wenn man alles richtig macht und nach Tutorial vorgeht funktioniert das fehlerlos !
Mailwasher
Mailwasher 17.03.2019 um 18:27:10 Uhr
Goto Top
OK.... ich hab den Fehler gefunden, ich hab als Vouchertabelle Voucher00 eingegeben, aber der DB-Table war nur voucher00, also klein geschrieben. Nach ändern der Einstellung hat es dann auch Funktioniert. Hatte einfach nicht auf Case-Sensitive geachtet. Vielen vielen lieben dank dir, aqui. Du warst echt meine Rettung. Damit ist mein Prüfungsprojekt jetzt auch fertig, und morgen kann die Hausmesse losgehen, in der das vorgestellt wird.

Danke nochmals, ohne dich und deine Hilfe wäre ich echt aufgeschmissen gewesen.

Nochmals vielen lieben dank.
aqui
aqui 18.03.2019 um 09:43:14 Uhr
Goto Top
aber der DB-Table war nur voucher00, also klein geschrieben.
Kleine Ursache, große Wirkung face-wink
Hatte einfach nicht auf Case-Sensitive geachtet.
Kann in der Hektik ja mal passieren...
Dann mal viel Erfolg auf der "Hausmesse" !!! face-smile
onegen
onegen 29.12.2019 um 23:20:37 Uhr
Goto Top
Auch von mir ein großes Dankeschön an eagle2 zum Teilen des Scripts!
Das macht die Verwaltung der Vourchers sehr viel einfacher! Vielen Dank!

Nachdem lokal (PHP5) alles lief, hatte ich beim Live-Test (PHP7) das Problem, dass keine PDFs generiert wurden.
Die Seite blieb leer und in den Error-Logs erschien folgende Meldung:

PHP Warning:  session_start(): Cannot start session when headers already sent in ..../include/auth.inc.php on line 2
PHP Warning:  Cannot modify header information - headers already sent by (output started at ..../print.php:1) in ..../include/auth.inc.php on line 9

Ich habe ewig in Richtung Leerzeichen, BOM,... oder ähnlich gesucht. Die Lösung lag in der print.php in Zeile 8 - nachdem ich den zweiten Parameter MYSQL_ASSOC entfernt hatte, lief alles wie gewünscht. Alternativ geht es auch mit MYSQLI_ASSOC, wobei mir das Wissen fehlt, einzuschätzen, welcher Weg sauberer ist.

Dasselbe gilt übrigens, falls ihr beim Erstellen der PDF folgende Meldung erhaltet:
PHP Warning:  mysqli_fetch_array() expects parameter 2 to be integer, string given in ..../print.php on line 8
eagle2
eagle2 30.12.2019, aktualisiert am 12.01.2020 um 15:36:45 Uhr
Goto Top
Danke @onegen! Du hast völlig recht - da muss "MYSQLI_ASSOC" rein. Kann direkt so behoben werden, ich werde aber auch noch ein entsprechendes Update veröffentlichen.

Update 12.01.2020: Version 1.6.2 steht jetzt zum Download bereit. Im Vergleich zur vorherigen Version müssen nur die Dateien print.php und include/lang.php ausgetauscht werden (in letzterer Datei habe ich noch eine Aktualisierung vorgenommen, die Probleme mit zukünftigen PHP-Versionen vermeiden sollte).
hologram73
hologram73 11.09.2020 um 14:48:43 Uhr
Goto Top
Hallo,
ich habe das Tool auch gerade mal getestet.

Ich kann die Voucherdaten in die Datenbank schreiben, sehe auch, dass Sie in der Statistik auftauchen,
aber wenn ich auf Generieren gehe, öffnet sich eine leere Seite mit der print.php

Ich habe die aktuelle Version 1.6.2, PHP7.3 und die Rechte alle gesetzt.
Laufen tut das auf einer Strato Umgebung.

Hat da jemand eine Idee? Habe auch verschiedene Browser getestet.

Vielen Dank
und viele Grüße
Thorsten
eagle2
eagle2 13.09.2020 um 18:55:17 Uhr
Goto Top
Hi Thorsten,

ich vermute mal, dass du bei Strato kein error_log für PHP einsehen kannst. Zum Testen kannst du als neue Zeile nach der ersten Zeile folgenden Code in die print.php einfügen:

error_reporting(E_ALL);

Es sollte dann also so aussehen:

<?php
error_reporting(E_ALL);
require_once("include/fpdf.php");  
...

Hoffentlich bekommst du dann eine Fehlermeldung, anhand der sich das Problem weiter eingrenzen lässt.
hologram73
hologram73 14.09.2020 um 09:14:55 Uhr
Goto Top
hi,
schon mal danke für den Tip- Allerdings kommt da auch nichts.

Konnte bei Strato einen Log ziehen, habe aber keine Ahnung, ob das was bringt.

Hilft das weiter?

Viele Grüße
Thorsten
log
hologram73
hologram73 14.09.2020 aktualisiert um 09:28:08 Uhr
Goto Top
Habe noch ein Errorlog bei Strato gefunden.
Kann es daran liegen, dass ich eine https:// Seite habe?


PHP Warning: Cannot modify header information - headers already sent by
(output started at /mnt/web415/a0/55/52877255/htdocs/voucher/print.php:1)
in /mnt/web415/a0/55/52877255/htdocs/voucher/include/auth.inc.php on line 9:
/home/strato/http/power/rid/72/55/52877255/htdocs/voucher/print.php


VG Thorsten
eagle2
eagle2 16.09.2020 aktualisiert um 10:21:08 Uhr
Goto Top
Hi Thorsten,

habe das ganze gerade mal in einem Testsystem ausprobiert, funktioniert mit HTTPS und PHP 7.4 (Edit: und auch mit PHP 7.3).

Hast du die Hinweise oben in Orange (Berechtigungen und Byte Order Mark) berücksichtigt?

Viele Grüße
eagle2
bonbastler
bonbastler 15.06.2021 um 23:36:56 Uhr
Goto Top
Frage: gibt es eine Möglichkeit Voucher Codes selber zu erstellen? Ich meine der pfSense 'irgendwie' freie und selbst generierte beliebige VoucherID als gültig unterzuschieben so dass eine Anmeldung am Portal damit (unbegrenzt) akzeptiert wird?
aqui
aqui 15.06.2021 um 23:45:22 Uhr
Goto Top
Wenn etwas wirklich unbegrenzt sein soll wäre es ja sinnfrei das mit Vouchers zu machen. Solche unbegrenzten User trägt man dann über die IP oder Mac Adress Ausnahmeliste ein das die ohne Voucher das Captive Portal passieren können.
bonbastler
bonbastler 16.06.2021 aktualisiert um 01:36:42 Uhr
Goto Top
Die MAC sind nicht bekannt bzw. die wechseln. Es sind auch keine IP vorab bekannt oder wg. der unbekannter MAC per Reservierung festlegbar. Es kann ebenso auch - wie bei den Voucher - sein dass ein erlaubter Benutzer mehrere Geräte und daher mehrere MAC hat.

Ein Beispiel: es gibt zeitlich begrenzte Events zu denen mehrere Leute kommen können. Unabhängig von den normalen Voucher sollen die einem selbst vergebenen Code bekommen.

Der Punkt ist: 'man' stört sich an den generierten komplizierten Voucher des Captive Portals, 'man' will selber relativ komplexe aber nach einem eigenen Schema festgelegte leichter merkbare Voucher vergeben können. Die wären dann schon relativ lang und bestehen aus Zahlen und Buchstaben in Klein- und Großschreibweise aber die sind eben nicht kryptografisch erzeugt oder validierbar.

Über das Problem des Ablaufes dieser unbegrenzten Benutzer dieser Voucher mache ich mir später Gedanken. Das wäre dann die Folgefrage ;)
aqui
aqui 16.06.2021 um 09:54:26 Uhr
Goto Top
Der Punkt ist: 'man' stört sich an den generierten komplizierten Voucher des Captive Portals
Mit anderen Worten: Man stört sich an der Sicherheit ala wasch mich aber mach mich nicht naß.
Die Komplexität des Captive Portals kannst du ja einstellen welche Kombinationen an Zeic hen und welche Länge.
Aber was du in dem Falle machen solltest ist die Voucher Seite so im HTML Code zu customizen das du sowohl Username Passwort als auch Voucher ID abfragst und dafür entsprechende Felder hast.
Diese "Langzeituser" trägst du dann ganz einfach in die lokale Uservewrwaltung ein als Captive Portal User.
Dort kannst du dann Banallogins ala Username: "willi", Passwort: "willi123" definieren je nach Intelligenzgrad dieser User.
Ob das dann sicher ist oder nicht und wie wichtig oder unwichtig dir die unkontrollierte Weitergabe dieser Credentials ist musst du dann selber entscheiden.
Im Grunde führst du damit ein Captive Portal ad absurdum.
Was du auch machen kannst ist in andere WLAN Hardware zu investieren. Ruckus bietet auf seinen AP Modellen (z.B. R320) die selber als WLAN Controller laufen, die Option "Dynamic Preshared Keys". Dort kannst du dann Einzel- oder Gruppenkeys mit frei definierter Laufzeit für WLANs definieren. User können das auch selber über Email oder SMS anfordern. Wäre bei deiner speziellen Anforderung ggf. etwas funkltioneller.
bonbastler
bonbastler 16.06.2021 aktualisiert um 10:28:22 Uhr
Goto Top
Die üblichen Nutzer des Portals bekommen ja eine generierte recht komplexe Voucher ID. Zu solchen zusätzlich angedacht zeitlich und räumlich begrenzten Events darf es ruhig ein klein wenig einfacher sein, z.B. Marketing0615 und eben nicht 3XYqdBmwaf735. Einen Benutzernamen und ein Passwort einzugeben macht es nicht wirklich einfacher.

Ich möchte ja auch nicht über Sinn oder Unsinn davon diskutieren. Das sind praktische Beispiele. Die Frage war: gibt es eine Option das irgendwo dem pfSense Captive Portal beizubringen? In irgendeiner Datenbank, in irgend einer Funktion so einen funktionierenden Code zu hinterlegen?
aqui
aqui 16.06.2021 aktualisiert um 11:10:29 Uhr
Goto Top
Du solltest dann über das Konzept generell nachdenken wenn solche Events da sind. Dann solltest du ggf. lediglich eine Portalseite anzeigen die rechtliche Infos enthält und die die Leute dann einfach abnicken können bei einem ansonsten offenen WLAN.
Das kommt dann doch wenigstens den geistigen Anforderungen dieser Nutzer gleich und wäre sicher das bessere Konzept.
Das kann man dann bei MSSID fähigen Access Points z.B. über eine spezielle 2te MSSID nutzen die nur dann ausgestrahlt wird wenn diese Events stattfinden.
In irgendeiner Datenbank, in irgend einer Funktion so einen funktionierenden Code zu hinterlegen?
Das geht ganz sicher wenn man über den Shell Zugriff dann mal Hand an die Firewall legt.
Übrigens ist die Mac Adresse nur pro SSID dynamisch. Wenn du deine Event SSID also nicht änderst bleibt die Mac konstant und du kannst dann wieder mit Macs in der Ausnahmeliste arbeiten. Wäre ja auch ein gangbarer Weg...
eagle2
eagle2 17.06.2021 um 23:03:53 Uhr
Goto Top
Als Ergänzung dazu: wenn sich da nichts großartig in der Architektur geändert hat, werden die Voucher in pfSense über ein kryptografisches Verfahren erzeugt und sind daher gar nicht irgendwo in einer Datenbank gespeichert. Nur die verwendeten Voucher werden irgendwo als verbraucht markiert.

Wenn es ein zusätzliches Feld für "Event-Voucher" geben darf & du die User/Passwort-Funktionalität sonst nicht brauchst, könntest du im HTML-Code das Feld für das Passwort als "hidden" definieren und einen statischen Wert für das Passwort ebenfalls im HTML-Code hinterlegen. Dann müsstest du für Veranstaltungen nur noch einen Benutzer mit dem gewünschten "Event-Voucher" als Benutzernamen sowie dem von dir definierten Passwort anlegen und mit dem Hinweis, dass dafür das zweite Eingabefeld zu nutzen ist, verteilen.

Alternativ könntest du die komplette Voucherverwaltung an einen separaten Radius-Server auslagern, der auch eigens definierte Voucher erlaubt - spontan konnte ich aber kein aktuell gepflegtes Projekt finden.

Am einfachsten ist aber vermutlich die von @aqui vorgeschlagene Lösung mit einem zweiten speziellen WLAN-Netz nur für ein Event.
eagle2
eagle2 21.12.2022 um 13:44:13 Uhr
Goto Top
Hallo zusammen,

als kurzes Update: seit gestern gibt es eine neue Version, die kleinere Fehler behebt und die Kompatibilität mit aktuellen PHP- und MySQL/MariaDB-Versionen herstellt. Alle Details sind im Update am Anfang des Beitrags enthalten. Danke an @aqui, der bei der Fehlersuche und den anschließenden Tests unterstützt hat!

Viele Grüße
eagle2
aqui
aqui 21.12.2022 um 18:09:08 Uhr
Goto Top
Auf Debian 11 und aktuellem Ubuntu gestetet und rennt fehlerlos!
Dank geht zurück für die Bugfixes und die Pflege dieses sehr hilfreichen Stücks Software. 👍
Oldring
Oldring 01.11.2023 um 11:50:31 Uhr
Goto Top
Hallo, Vielen Dank an Eagle2 für das erstellen und pflegen.
ich habe die Voucherverwaltung bei mir installiert, soweit läuft alles.

Gibt es eine Möglichkeit den Ausdruck an einen Epson TM88 Bondrucker anzupassen so das auf einem Bon ein Voucher gedruckt wird.

Zur Info: Bisher habe ich das Captive Portal plus genutzt, da war der Bon Ausdruck eingebaut, leider läuft das CP+ nicht mehr mit der aktuellen PF-Sense 2.7
aqui
aqui 01.11.2023 aktualisiert um 12:07:10 Uhr
Goto Top
Du kannst die Bons in einem schneidbaren Format mit mehreren fertigen Bons auf einer Din A4 Seite ausdrucken. Die bündest du als kleinen Abreissblock und hast sie so immer zur Hand.
Alternativ oder auch zusätzlich kannst du zumindestens für Kurzzeit Voucher die Distribution per SMS an die Nutzer aktivieren was noch bequemer ist. Durch die Mobilfunknummern hast du dann auch ein rechtssicheres Tracking der Nutzer.
Oldring
Oldring 02.11.2023 um 10:52:14 Uhr
Goto Top
Hallo,
Vielen Dank für die schnelle Antwort, Die Möglichkeit 24 Voucher auf einer A4 Seite zu drucken habe ich gesehen.
Ist nicht so ganz die Funktion die ich da gerne hätte, würde zur Not gehen.
Das mit den Vouchern auf den "Kassenzetteln" ist für mich die einfachste Lösung und da ich halt den Drucker habe würde ich das so auch gerne weiternutzen.
Die SMS Funktion ist für meine Verwendung nicht so geeignet,.
eagle2
eagle2 02.11.2023 um 11:58:19 Uhr
Goto Top
Zitat von @Oldring:
Gibt es eine Möglichkeit den Ausdruck an einen Epson TM88 Bondrucker anzupassen so das auf einem Bon ein Voucher gedruckt wird.

Hi @Oldring, wie wird denn der Drucker angesteuert? Ich habe noch nie mit Bondruckern gearbeitet, aber wenn du theoretisch einfach eine PDF auf den Bondrucker ausdrucken kannst, könntest du (wenn du ein bisschen programmieren kannst) die print.php entsprechend anpassen (z.B. das Seitenformat auf die entsprechende Größe ändern, auf die erste Seite verzichten, Tabelle auf der zweiten Seite auf einspaltig anpassen etc.). Die genutzte Bibliothek heißt FPDF, technisch sollte das grundsätzlich möglich sein.

Die direkte Anbindung (ohne den "Umweg" über die PDF-Datei) ist vermutlich deutlich aufwendiger, technisch aber sicherlich auch möglich - auch hier wäre die print.php die Basis.
Oldring
Oldring 03.11.2023 um 10:30:02 Uhr
Goto Top
Hallo Eagle2,
Der Drucker kann über den zugehörigen Treiber wie ein Standard Drucker angesteuert werden.
Der Ausdruck des erzeugten PDF ist möglich, da ist dann natürlich die Schrift so klein das da nichts mehr lesbar ist, da der Drucker statt auf A4 (210mm breite ) auf das Bon Format also 80mm breite die Seite verkleinert
Die Drucker Ausgabe anzupassen hatte ich auch schon überlegt, leider kenn ich mit der PHP Programmierung nicht aus.
Müsste ich mal wie von dir vorgeschlagen in der Print.PHP herumbasteln.

Ich werde mich mal daran versuchen.
Thema setze ich erstmal auf gelöst, wenn ich da eine Lösung finde kann ich ja mich diesbezüglich nochmal melden
Oldring
Oldring 27.12.2023 um 14:30:03 Uhr
Goto Top
Hallo, ich habe eine Lösung gefunden, ich habe das CP+ wo die Vocher direkt aus der PF sense gedruckt werden können, wieder zum laufen gebracht.
aqui
aqui 28.12.2023 aktualisiert um 12:17:40 Uhr
Goto Top
wieder zum laufen gebracht.
Link für die Lösung.