• Hallo liebe Userinnen und User,

    nach bereits längeren Planungen und Vorbereitungen sind wir nun von vBulletin auf Xenforo umgestiegen. Die Umstellung musste leider aufgrund der Serverprobleme der letzten Tage notgedrungen vorverlegt werden. Das neue Forum ist soweit voll funktionsfähig, allerdings sind noch nicht alle der gewohnten Funktionen vorhanden. Nach Möglichkeit werden wir sie in den nächsten Wochen nachrüsten. Dafür sollte es nun einige der Probleme lösen, die wir in den letzten Tagen, Wochen und Monaten hatten. Auch der Server ist nun potenter als bei unserem alten Hoster, wodurch wir nun langfristig den Tank mit Bytes vollgetankt haben.

    Anfangs mag die neue Boardsoftware etwas ungewohnt sein, aber man findet sich recht schnell ein. Wir wissen, dass ihr alle Gewohnheitstiere seid, aber gebt dem neuen Board eine Chance.
    Sollte etwas der neuen oder auch gewohnten Funktionen unklar sein, könnt ihr den "Wo issn da der Button zu"-Thread im Feedback nutzen. Bugs meldet ihr bitte im Bugtracker, es wird sicher welche geben die uns noch nicht aufgefallen sind. Ich werde das dann versuchen, halbwegs im Startbeitrag übersichtlich zu halten, was an Arbeit noch aussteht.

    Neu ist, dass die Boardsoftware deutlich besser für Mobiltelefone und diverse Endgeräte geeignet ist und nun auch im mobilen Style alle Funktionen verfügbar sind. Am Desktop findet ihr oben rechts sowohl den Umschalter zwischen hellem und dunklem Style. Am Handy ist der Hell-/Dunkelschalter am Ende der Seite. Damit sollte zukünftig jeder sein Board so konfigurieren können, wie es ihm am liebsten ist.


    Die restlichen Funktionen sollten eigentlich soweit wie gewohnt funktionieren. Einfach mal ein wenig damit spielen oder bei Unklarheiten im Thread nachfragen. Viel Spaß im ngb 2.0.

DropzoneJS -> Parameter mitgeben für Switch Case

RedlightX

Bekannter NGBler

Registriert
18 Juli 2013
Beiträge
1.185
Hallo zusammen,

ich habe ein Problem mit DropzoneJS.
Folgendes möchte ich umsetzen:

User kann Bilddateien hochladen:

[src=html5]<div class="image_upload_div col s4">
<form action="router.php" class="dropzone" method="post">
</form>
</div>[/src]

Das ganze soll zur Auswertung und Weiterverarbeitung an meine "Steuerdatei" namens router.php gesendet werden, die eine Auswertung auf den Parameter "action" macht. Das sieht folgendermaßen aus:

[src=php]switch ($_POST['action']) {
case 'imageuploader':
Userimageupload($_FILE);
break;
}
[/src]

Es soll also geschaut werden, ob action=imageuploader ist und dann die entsprechende Funktion zur Weiterverarbeitung aufgerufen werden.

Wie schaffe ich es bei Dropzone, die entsprechende "&action=imageuploader" Parameter mitzugeben? Ich bin da seit gestern Abend echt ratlos :/

Danke für Ideen und Hilfe (Y)
 

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.573
Hi!

a) Wäre es nicht möglich zu unterscheiden von welcher Seite die Anfrage gekommen ist und dann entsprechend zu reagieren?
http://php.net/manual/de/reserved.variables.server.php (nach "Request_Uri") suchen, darauf prüfen und in der Steuer PHP die URL abfragen und dann entsprechend Steuern.
Das ist transparent und sollte auch sicher sein und geht ohne Daten-(Benutzer)eingabe.

b) Du könntest dem Formular ein "Hidden input"-Feld geben, der
<input type="hidden" name="caller" value="aufrufer">

Und dann mit PHP prüfen ob das Feld "caller" gesetzt ist und dann nach dem Value handeln, aber man muß halt bedenken, man kann den Wert auch ändern auf Benutzer Seite.
Mit oder ohne a)

c) Warum nicht in "action" "router.php" mit "router.php?caller=MeineQuelle&andererParamter=Test" umschreiben? Du hast schließlich ein "Post" der Daten übergibt an den Server.
Aber auch hier, man darf sich nicht darauf verlassen, weil UserInput. Das heißt du solltest das kontrollieren, siehe a).


Nachtrag:
Eine Anmerkung noch, auch bei Variante a) solltest du nach wie vor die Eingaben überprüfen die vom Nutzer kommen.
Ob ein Feld gesetzt ist, ob die Werte wie erwartet sind und den ganzen "Jazz". ;)
 
Zuletzt bearbeitet:

werner

Suchtspielmacher (ehm.)

Registriert
20 Juli 2014
Beiträge
743
Ort
Mannheim
@theSplit ich mache es immer wie bei c), und prüfe dann serverseitig Datengröße, Typ, etc. Sollte was nicht stimmen im Sinne von &action=imageuploader fehlt bekommen die User knallhart ein Fehler geschmissen, da das imgrunde nur passiert, wenn die versuchen, mit der Seite Spielchen zu treiben.
 

RedlightX

Bekannter NGBler

Registriert
18 Juli 2013
Beiträge
1.185
  • Thread Starter Thread Starter
  • #4
Hallo zusammen,
danke für die Antworten :-)

Im Grunde wollte ich Variante C) nehmen und in der Form-Action folgendes machen:
<form action="router.php?action=imageuploader" class="dropzone" method="post">

Allerdings kriege ich dann einen 404er geschmissen, weil die URL so nicht passt.

Als Workaround habe ich nun eine Datei namens userimageprocessing angelegt, wo alles reinläuft und entsprechend ausgewertet wird. Elegant ist erstmal anders, aber ich hasse es, mich immer an Kleinigkeiten aufzuhalten...
 

werner

Suchtspielmacher (ehm.)

Registriert
20 Juli 2014
Beiträge
743
Ort
Mannheim
404 sollte nur kommen, wenn er die router.php nicht findet. Die GET Infos stören das doch nicht? Oder habe ich dein Problem nicht richtig verstanden?
 

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.573
@werner
Es kann ein Server Problem sein das die Parameter im POST (in einem method="post" sind es POST-Parameter, nicht nach GET Methode zu erfragen, sondern zu POSTen) ;) nicht verarbeitet werden... aber da kann ich auch nur raten warum ausgerechnet bei ihm nicht.

Hatte dazu auch noch einmal recherchiert und es wird eigentlich empfohlen so etwas über Hidden inputs zu machen, da dies nicht so Fehleranfällig ist wie man hier sieht, was auch als Grund genannt wurde auf Stack Overflow, weil der Fragende das fast gleiche Problem damit hatte.
 

Timon3

Team ModMii

Registriert
17 Juli 2013
Beiträge
499
Im schlimmsten Fall sollte sich das Problem relativ einfach debuggen lassen, indem du dir die Request in der Konsole genau anschaust. Dann kannst du die URL reproduzieren und du siehst, wie genau der Server angesteuert wird.

Ich würde dir übrigens empfehlen, auf ein ordentliches (nicht dateibasiertes) Routing-System umzusteigen. Klein kann ich beispielsweise wärmstens empfehlen.
 
Oben