Zum Inhalt springen

Extension schreibt nicht in DB

Erstellt am 24. August 2012 · 7 Antworten · letzte Antwort am 27. August 2012

Tags: Datenbank, Frage

benzinkanister ·

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:

function main($content, $conf)	{
		
	$this->conf=$conf;
	$this->pi_setPiVarDefaults();
	$this->pi_loadLL();
	$this->id=$GLOBALS['TSFE']->id;
	 
	$content =  '<span>Test</span> 
				<form action="index.php?id=3" name="booking" method="POST" enctype="multipart/form-data">
				<input name="name" />
				<input type="submit" name="absenden" value="eintragen" />
				</form>';
		 
	if(t3lib_div::_GP('absenden')=='eintragen') {
	      				$fields_values=array(
	          			'pid' => '0',
	          			'crdate' => time(),
	          			'tstamp' => time(),
	          			'name' => t3lib_div::_GP('name')
	      				);
 
	      				$res = $GLOBALS['TYPO3_DB']->exec_INSERTquery('tx_embooking_embooking',$fields_values);
	      				$content = '<span>Daten wurden hinzugefügt</span>';
	}
		 
	return $this->pi_wrapInBaseClass($content);
}

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

Norman2k ·

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

Thomaslav schrieb

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

Wo?

TYPO3-API schrieb

_GP
Returns the 'GLOBAL' value of incoming data from POST or GET, 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

Thomaslav ·
TYPO3-API schrieb

_GP
Returns the 'GLOBAL' value of incoming data from POST or GET, 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

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

benzinkanister ·

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

benzinkanister ·

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.