Zum Inhalt springen

In Datenbank schreiben

Erstellt am 9. Mai 2011 · 2 Antworten · letzte Antwort am 10. Mai 2011

Tags: PHP, Datenbank, Frage

lil-trick ·

Hallo, hab mir eine kleine Extension gebaut:

function main($content, $conf)	{
$this->conf=$conf;
$this->pi_setPiVarDefaults();
$this->pi_loadLL();
$this->id=$GLOBALS['TSFE']->id;
			
$content =  '<form action="index.php?id=13" method="post"><input name="name"><input type="submit" name="absenden" value="eintragen" />';
			
if(t3lib_div::_GP('absenden')=='eintragen') {
      				$fields_values=array(
          			'pid' => $this->conf['storagePID'],
          			'crdate' => time(),
          			'tstamp' => time(),
          			'title' => t3lib_div::_GP('name')
      				);
      				
      				$res=$GLOBALS['TYPO3_DB']->exec_INSERTquery('tx_item_produkt',$fields_values,$no_quote_fields=FALSE);
      				$content.= 'Daten wurden eingetragen';
   			}
   			
return $this->pi_wrapInBaseClass($content);
}

Mein Problem = immer wenn ich das Formular absende schreibt er mir den Eintrag drei mal in die Datenbank 🙁

Bild: test-typo3.de/input.png

hab schon alles überprüft aber ich finde den Fehler irgendwie nicht 🙁 was kann das sein?

dann noch ne Frage - wie kann ich überprüfen ob das Formular abgesand wurde, denn if(t3lib_div::_GP('absenden')=='eintragen') ist ja nicht gerade schön - $this->piVars['submit'] funktionier bei mir irgendwie nicht 🙁

danke

vince ·

Hallo,

Submit button:
müsste heißen name="extkey_piX[absenden]" statt name="absenden"

(gleiches gilt für die andern input felder)

dann klappt's auch mit den piVars.

Warum der Kram 3 mal in die DB geschrieben wird weiß ich auch nich.

Gruß,
Vince.

aemka ·

Mach mal Debug-Ausgaben bei der Zeile mit exec_INSERTquery. Wenn das Debug auch 3 mal kommt, ist das PLugin 3 mal in der Seite eingebunden.