Seite 1 von 1

SET_VAR umgehen

Verfasst: 05.02.2016 19:57
von mps
Hallo zusammen,

gibt es eine Möglichkeit, die Funktion SET_VAR zu umgehen in der Funktion REQUEST_VAR zu umgehen?

Mal ganz davon zu schweigen, dass mein Latein bei PHPBB3.1.X am Ende ist mit dieser Funktion :mrgreen:

Es geht nämlich darum, dass später in meinem Script ein Array erzeugt werden soll, dass eine Eingabe aus einem Textfeld nach Zeilenbrüchen trennt und dann erneut multidimensionale Arrays erzeugt, wo dann die einzelnen Zeilen erneut durch \t (Tabulator) getrennt werden sollen. Dient zur Massendatenverarbeitung.

Leider scheint es der Fall zu sein, dass eben eine dieser Funktion alles raus löscht und zu einem einfach String konvertiert.

Vielen Dank.

Gruß,
mps

Re: SET_VAR umgehen

Verfasst: 06.02.2016 02:23
von gn#36
Ich verstehe nicht ganz was du willst, denke aber nicht, dass es nötig ist, die request_var Funktion zu ändern. Eine Eingabe, die aus einem Textfeld stammt sollte in meinen Augen ein String sein.

Wenn du ein Array von mehreren Textfeldern erwartest, weil dein Skript z.B. das z.B. vorverarbeitet und dann als array verschickt, kannst du auch ein Array von request_var bekommen, du musst nur dementsprechend deinen Standardwert angeben, z.B. array('') oder evtl. array('' => '').

Siehe auch https://wiki.phpbb.com/Function.request ... ted_to_int

Wenn du die Daten im client vorverarbeitest solltest du sie im Server validieren.

Übrigens würde ich dir empfehlen auf die Request Klasse umzusteigen, die request_var Funktion ist deprecated. Die Request Klasse verhält sich aber nahezu identisch, du nutzt lediglich statt request_var $request->variable.

Hilft dir das nicht werde mal etwas konkreter in dem was du tun willst (Beispiel mit ist und soll).

Re: SET_VAR umgehen

Verfasst: 06.02.2016 16:15
von mps
Das ist es noch nicht ganz.

Mein Soll (Eingabe in einem Textfeld):

Code: Alles auswählen

Hier steht text \t hier steht weiterer text \n
und so weiter \t und so fort
Mein Ist (gehe ich mal davon aus):

Code: Alles auswählen

Hier steht text hier steht weiterer text und so weiter und so fort
Mit der Funktion explode soll eigentlich die Eingabe aus dem Soll getrennt werden nach \n und \t in ein Array. Das geht aber nicht, da diese Zeichen von der Funktion anscheinend entfernt werden.

__________________

Zur PHP-Klasse noch einmal, wie sehe das konkrete Beispiel zum Beispiel dafür aus:

$hallo = request_var('hallo', true);

Danke sehr

Re: SET_VAR umgehen

Verfasst: 06.02.2016 16:56
von gn#36
Nein, Umbrüche werden nicht entfernt und Tabstops auch nicht. Die Beiträge laufen ja auch durch die request_var Funktion und da kannst du ebenfalls Umbrüche und Tabstops benutzen (wobei die Tabstops in HTML natürlich eh wirkungslos sind). Zeig' doch bitte mal deinen Code mit dem du die Daten verarbeitest, da ist vermutlich was drin falsch. Ein häufiger Fehler ist z.B. dass \n oder \t in einfachen Anführungszeichen genutzt wird.

Re: SET_VAR umgehen

Verfasst: 06.02.2016 17:14
von mps
Das war sogar schon der Fehler :D Danke sehr!

Manchmal kann es doch so einfach sein :oops:

BTW: Tap-Stopp-Zeichen benötigt man dann, wenn man Massendatenverarbeitungen machen will und Daten aus einer Excel-Tabelle kopieren will.

Re: SET_VAR umgehen

Verfasst: 06.02.2016 17:32
von gn#36
Klar, ich habe ja nicht behauptet dass man das Zeichen nicht nutzen kann.

Aber in einem Browser kann man es von Hand meist nicht eingeben, außer per Copy & Paste und wenn man nicht gerade vorformatierten Text - wie z.B. im "code" bbcode - hat, dann wird der bei der Darstellung einfach in ein Leerzeichen umgewandelt.