+ Antworten
Ergebnis 1 bis 12 von 12

Thema: $_POST-Variablen empfangen mit Hooks nicht möglich?

  1. #1
    TP-Supporter Katjusha macht alles soweit korrekt Avatar von Katjusha
    Registriert seit
    Feb 2008
    Beiträge
    392

    $_POST-Variablen empfangen mit Hooks nicht möglich?

    Huhu,

    ich erstelle eine Extension, welche tt_news erweitert und verwende dafür den extraItemMarkerProcessor Hook. Eigentlich ist das kein Problem für mich, in diesem Fall möchte ich aber gerne einen extra Marker einfügen, welcher ein Formular enhält, TYPO3 scheint hier Probleme mit dem empfangen von $_POST-Variablen zu haben.
    In diesem Fall geht es um ein Formular mit unobstruktivem javascript, den js teil habe ich schon fertig, aber nun wollte ich grad eben noch den non-script Version fertig machen, aber seit gestern zickt dieses TYPO3 rum, und will einfach nicht die Post-Parameter erkennen, die von dem Formular agesendet werden.
    Ist eine solche Problematik bekannt? Ist es nicht möglich in Hooks mit $_POST-Parametern zu arbeiten?

    PS: wenn ich mit var_dump checke, sind die variablen vorhanden. von daher verstehe cih das nicht so ganz. warum geht es nicht mit $_POST['variable']?

    Gruß, Katjusha

  2. #2
    TP-Junior Vannen macht alles soweit korrekt
    Registriert seit
    Mar 2010
    Beiträge
    17
    Hi,

    wenn ich dich richtig verstanden habe, hast du einen Marker erstellt, den du über tt_news per Hook durch ein Formular ersetzen willst.
    Wenn du dieses Formular dann abschickst, bekommst du die $_POST Daten nicht?
    Die Frage ist wohin schickst du die POST Daten. Ich nehme mal an, an deine eigene Extension?
    Hast du die input Felder richtig benannt. Sprich "extension[varname]" ?

    Welche Typo und tt_news Version ist installiert und hast du vielleicht ein online Beispiel wo an sich das ansehen kann oder könntest du bitte mal etwas Code zum besseren Verständnis posten.

  3. #3
    TP-Supporter Katjusha macht alles soweit korrekt Avatar von Katjusha
    Registriert seit
    Feb 2008
    Beiträge
    392
    Hi Vannen,

    genau, habe einen Marker, der ein Formular enthält. Ich schicke die Daten dann an die selbe Adresse, wobei ich dann noch den Parameter "abgeschickt=1" dranhänge. Müßte das der Name der Extension sein?
    Die Felder habe ich denke ich richtig bennant, habe es mit meiner Extension versucht und auch schon mit tt_news... Hm, hier nochmal der Code fürs Formular:

    HTML-Code:
     <form action="index.php?id='.$GLOBALS["TSFE"]->id.'&tx_ttnews[tt_news]='.$row['uid'].'&abgeschickt=1" method="post" name="eingabeform">
    <input type="text" name="surname"/>
    <input type="submit" name="senden" value="send"/>
    </form>
    Und weiter unten in der selben Datei habe ich dann:

    Code:
    ...if(t3lib_div::_GET(abgeschickt)) {
    $markerArray['###TEST###']  = $_POST['surname']; //bzw
    $markerArray['###TEST###'] = t3lib_div::_POST('surname');
    ...
    Die MArker werden nur leer ausgegeben. Wenn ich aber teste mit var_dump[$_POST] dann bekomme ich halt diese ganze Reihe mit Arrays, wo auch die richtigen Werte drin sind.

  4. #4
    TP-Junior Vannen macht alles soweit korrekt
    Registriert seit
    Mar 2010
    Beiträge
    17
    ich würde tippen, dass die Marker leer sind weil die if Abfrage nicht geht:
    Statt:
    PHP-Code:
    if(t3lib_div::_GET(abgeschickt)) { 
    einmal bitte mit Anführungsstrichen
    PHP-Code:
    if(t3lib_div::_GET('abgeschickt')) { 
    und mach mal bitte ein
    PHP-Code:
    var_dump(t3lib_div::_GET('abgeschickt')); 
    und so einen
    PHP-Code:
    var_dump($_GET('abgeschickt')); 
    Wenn ich richtig liege, dann sollte der erste var_dump null zurück liefern und der zweite 1

  5. #5
    TP-Supporter Katjusha macht alles soweit korrekt Avatar von Katjusha
    Registriert seit
    Feb 2008
    Beiträge
    392
    HTML-Code:
    if(t3lib_div::_GET('abgeschickt')) {
    Daran liegt es definitiv nicht, da andere Bereiche in der Bedingung ausgeführt werden.
    Aber ich sehe grade das ich hier ien Beispiel ohne die Extension-Prefixes in den Feldern gepostet habe. Mit Prefix, also zb "tx_meineextension[surname] habe ich allerdings auch schon probiert, leider ohne Erfolg. Muss ich die den Prefix innerhalb des Hooks ncoh irgendwo anmelden oder so? ODer muss ich von tt_news den Prefix verwenden? naja, habe das eigentlich auch schon probiert, bin etwas ratlos grade.

  6. #6
    TP-Supporter Katjusha macht alles soweit korrekt Avatar von Katjusha
    Registriert seit
    Feb 2008
    Beiträge
    392
    habe mir jetzt extra das firefox-addon TamperData runtergeladen, es bestätigt mir das die post-variablen definitiv verschickt werden, also existieren. Allerdings kommen die einfach nicht in der Extension an, bzw lassen sich nicht auslesen egal welche Syntax ich verwende.

    so sieht die Ausgabe von var_dump($_POST); aus, wenn ich test eingebe:

    array(2) { ["surname"]=> string(4) "test" ["senden"]=> string(4) "send" } array(2) { ["surname"]=> string(4) "test" ["senden"]=> string(4) "send" } array(2) { ["surname"]=> string(4) "test" ["senden"]=> string(4) "send" } array(2) { ["surname"]=> string(4) "test" ["senden"]=> string(4) "send" }

  7. #7
    TP-Junior Vannen macht alles soweit korrekt
    Registriert seit
    Mar 2010
    Beiträge
    17
    Mh, es ist etwas schwierig so aus der Ferne und ohne das Ganze testen zu können wirklich zu helfen.

    Nehmen wir mal an, dass die Daten im POST sind (was der var_dump ja zeigt)
    Nehmen wir weiter an, dass in die if Bedingung rein gegangen wird (da ja andere Code auch ausgeführt wird)
    Dann versuch mal bitte ein var_dump auf den Marker:
    Sprich:

    PHP-Code:
    if(t3lib_div::_GET('abgeschickt')) {
      
    $markerArray['###TEST###']  = $_POST['surname']; 
      
    var_dump($markerArray['###TEST###']);

    Kommt dort der gewünschte Wert heraus, kann es noch sein, dass das markerArray vielleicht später gelöscht/überschrieben wird und es gar kein Problem mit den POST Daten gibt.

  8. #8
    TP-Supporter Katjusha macht alles soweit korrekt Avatar von Katjusha
    Registriert seit
    Feb 2008
    Beiträge
    392
    Es ist echt dubios. Ich habe jetzt folgenden code in der Condition:
    PHP-Code:
    $test $_POST["surname"].'noch ein test'
    Es wird "noch ein test" ausgegeben, mit der Ausgabe ist also alles in Ordnung und wird auch nix überschrieben.
    Wenn ich jetzt den var_dump auf $_POST["surname"] anwende:

    PHP-Code:
    var_dump($_POST["surname"]); 
    bekomme ich halt folgende Fehlermeldung:

    Code:
    string(8) "eingabe " string(8) "eingabe " string(8) "eingabe " string(8) "eingabe "
    Warning: Cannot modify header information - headers already sent by...
    Aber wie man sieht, die Postvariable, in diesem Fall "eingabe" ist übermittelt worden, wenn ich das Prinzip richtig verstanden habe.
    Ich vermute das es mit irgendeiner sehr TYPO3-spezifischen Sache zu tun hat, was es aber genau ist weiß ich grad leider gar nicht.

  9. #9
    TP-Junior Vannen macht alles soweit korrekt
    Registriert seit
    Mar 2010
    Beiträge
    17
    Dann habe ich leider auch keine Idee mehr.

    Das einzige was ich dir jetzt noch anbieten kann ist, dass du mir deine Extension schickst und mir sagst welche typo3 und tt_news version du benutzt.
    Dann schau ich mal drüber.

  10. #10
    TP-Supporter Katjusha macht alles soweit korrekt Avatar von Katjusha
    Registriert seit
    Feb 2008
    Beiträge
    392
    Jo, kein Problem. Danke dir auf jeden Fall für deine Hilfe. Ich glaube ich werde nun method="get" verwenden, das hatte bei einem vorherigen test funktioniert. Ist zwar schade, dases nicht mit POST geht und ich wüßte immer noch gerne woran das nun liegt, aber ich kann auch nicht wochenlang an solchen trivialen Sachen rumprobieren. Wenn irgendjemadn noch eine Idee hat wo hier das problem liegen könnte, würde ich mich sehr freuen.

    PS: ich benutze tt_news version 2.5.2 und TYPO3 4.2.6

    Gruß, Katjusha
    Geändert von Katjusha (17.03.2010 um 18:14 Uhr)

  11. #11
    TP-Supporter Katjusha macht alles soweit korrekt Avatar von Katjusha
    Registriert seit
    Feb 2008
    Beiträge
    392
    scheinbar liegt es an cooluri. wenn ich es im ts deaktiviere funktioniert die übergabe der Post-Variablen.

  12. #12
    TP-Supporter Katjusha macht alles soweit korrekt Avatar von Katjusha
    Registriert seit
    Feb 2008
    Beiträge
    392
    Der Author von cooluri, jan bednarik hat mir einen sehr guten Tipp gegeben, mit dessen hilfe ich die Post-Variable schließlcih doch ncoh korrekt übertragen bekommen habe. Es lag wohl an der unterschiedlichen seite oder so, um ehrlich zu sein weiß ich immer noch nicht so richtig woran es lag, aber es funktioniert nun. hier der veränderte Wert für das action-attribut im formular:

    PHP-Code:
    $actionUrl =
    $this->obj->typolink_URL(Array('parameter'=>$GLOBALS['TSFE']->id,'additionalParams'=>'&tx_ttnews[tt_news]='.$row['uid'].'&param=1')); 
    Also ins action-attribut dann nur noch die variable $actionUrl rein und es klappt.

    Gruß, Katjusha

+ Antworten

Ähnliche Themen

  1. Antworten: 3
    Letzter Beitrag: 17.09.2009, 13:14
  2. SQL / Update / $_POST und $_GET Variablen
    Von T:-)M im Forum Traum-Dynamik
    Antworten: 6
    Letzter Beitrag: 08.10.2006, 23:49
  3. {Outlook} eine Nachricht nicht empfangen
    Von Biber im Forum Betriebssysteme
    Antworten: 2
    Letzter Beitrag: 05.10.2004, 09:35
  4. Texte durch Variablen tauschen - möglich?
    Von havelmaeuse im Forum Dreamweaver & andere Webeditoren
    Antworten: 6
    Letzter Beitrag: 24.05.2004, 11:13
  5. PHP 4.2.1, $_POST und md5() - ein Bug oder nicht?
    Von Boris im Forum Traum-Dynamik
    Antworten: 6
    Letzter Beitrag: 11.07.2002, 00:41

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51