Extension schreibt nicht in DB [Gelöst]

  • 0 x
    21 Beiträge
    1 Hilfreiche Beiträge
    24. 08. 2012, 07:57

    Hallo,

    ich absoluter Neuling was Extensionprogrammierung betrifft und so hab ich mich mit dem Kickstarter versucht. Auf Eurer Seite habe ich folgenden Code gefunden und in class.tx_embooking_pi1.php eingefügt:

    1. function main($content, $conf) {
    2.  
    3. $this->conf=$conf;
    4. $this->pi_setPiVarDefaults();
    5. $this->pi_loadLL();
    6. $this->id=$GLOBALS['TSFE']->id;
    7.  
    8. $content = '<span>Test</span>
    9. <form action="index.php?id=3" name="booking" method="POST" enctype="multipart/form-data">
    10. <input name="name" />
    11. <input type="submit" name="absenden" value="eintragen" />
    12. </form>';
    13.  
    14. if(t3lib_div::_GP('absenden')=='eintragen') {
    15. $fields_values=array(
    16. 'pid' => '0',
    17. 'crdate' => time(),
    18. 'tstamp' => time(),
    19. 'name' => t3lib_div::_GP('name')
    20. );
    21.  
    22. $res = $GLOBALS['TYPO3_DB']->exec_INSERTquery('tx_embooking_embooking',$fields_values);
    23. $content = '<span>Daten wurden hinzugefügt</span>';
    24. }
    25.  
    26. return $this->pi_wrapInBaseClass($content);
    27. }

    Im Frontend wird das Inputfeld angezeigt, jedoch schreibt die Extension nichts in die Datenbank (in welcher bereits über das Backend 3 Datensätze angelegt wurden).

    Ich bin für jede Hilfe dankbar.

    VG
    Michael

    PS: Typo3 Version 4.7.2


  • 1
  • 0 x
    21 Beiträge
    0 Hilfreiche Beiträge
    24. 08. 2012, 09:44

    Dein Formular sendet Post Parameter, aber in deiner main function greifst du auf Get Parameter zu. ;)

  • Norman2k Norman2k
    Jedi-General
    0 x
    1635 Beiträge
    75 Hilfreiche Beiträge
    24. 08. 2012, 10:45

    Bei mir funktioniert dein Code. Ist denn auf der Seite mit der ID 3 (Action vom Formular) auch deine Ext. eingebunden? Wird der Code in deiner if-Anweisung ausgeführt, d.h. hast du dann im Frontend "Daten wurden hinzugefügt" stehen

    [quote="Thomaslav"]
    Dein Formular sendet Post Parameter, aber in deiner main function greifst du auf Get Parameter zu. ;)
    [/quote]
    Wo?

    [quote="TYPO3-API"]
    [b]_GP[/b]
    Returns the 'GLOBAL' value of incoming data from [b]POST or GET[/b], with priority to POST (that is equalent to 'GP' order) Strips slashes from all output, both strings and arrays. This function substitutes t3lib_div::GPvar() To enhancement security in your scripts, please consider using t3lib_div::_GET or t3lib_div::_POST if you already know by which method your data is arriving to the scripts! Usage: 537
    [/quote]

  • 0 x
    21 Beiträge
    0 Hilfreiche Beiträge
    24. 08. 2012, 11:14

    [quote="TYPO3-API"]
    [b]_GP[/b]
    Returns the 'GLOBAL' value of incoming data from [b]POST or GET[/b], with priority to POST (that is equalent to 'GP' order) Strips slashes from all output, both strings and arrays. This function substitutes t3lib_div::GPvar() To enhancement security in your scripts, please consider using t3lib_div::_GET or t3lib_div::_POST if you already know by which method your data is arriving to the scripts! Usage: 537
    [/quote]

    Ok, mein Fehler. Dachte die Funktion liefert nur Get Parameter.

  • 0 x
    21 Beiträge
    1 Hilfreiche Beiträge
    25. 08. 2012, 13:31

    Hallo,

    entschuldigt die Verspätung, und danke für Eure raschen Antworten.

    Also die Extension liegt auf der Seite mit der ID 3 und so wie's aussieht geht er nicht in die if-Schleife...

    Ich habs nochmal auf einer komplett leeren Seite ID 10 probiert und auch da wird nix in die DB geschrieben und die if-Schleife auch nicht aufgerufen...

    Viele Grüße

    Michael

  • 0 x
    21 Beiträge
    1 Hilfreiche Beiträge
    25. 08. 2012, 14:23

    Hallo zusammen,

    nun funktioniert es. Es lag am Inhalt der gecached wurde (und in welchem ich einen Fehler hatte). Nachdem ich das Caching der Seite deaktiviert habe funktioniert der oben stehende Code einwandfrei.

    Trotzdem vielen Dank nochmals.

  • aemka aemka
    Jedi-Ratsmitglied
    0 x
    562 Beiträge
    9 Hilfreiche Beiträge
    27. 08. 2012, 09:20

    leg deine extension als USER_INT an, dann brauchst du das caching nicht abstellen.

    http://www.aemka.de/

  • 0 x
    21 Beiträge
    1 Hilfreiche Beiträge
    27. 08. 2012, 17:19

    Danke für den Hinweis;)

  • 1