Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten Ansicht
  #1  
Alt 17.11.06, 10:44
Benutzerbild von El Rolando
Forum Newbie
 
Registriert seit: 26.07.06
Ort: Schweiz
Alter: 30
Beiträge: 34
Warnung: Cannot modify header information!!

Hallo Forum,

Ich habe eine kleine Extension geschrieben, gemäss einem Tutorial...
Marlies' Creative Universe: Form Extension Tutorial
Es handelt sich um ein Formular, welches Daten in die Datenbank übertragen soll!

Ich denke, dass ich eigentlich alles richtig gemacht habe...
Die Extension wird angezeigt und funktioniert...
Schalte ich aber zu Testzwecken den Debug Modus hinzu...:
"t3lib_div::debug($this->piVars);"

Wird das Formular nicht mehr angezeigt und ich erhalte ich im FE folgenden Fehler:
Code:
Warning: Cannot modify header information - 
headers already sent by (output started at /usr/share/typo3/typo3_src-4.0/t3lib/class.t3lib_div.php:2742)
in /usr/share/typo3/typo3_src-4.0/typo3/sysext/cms/tslib/class.tslib_fe.php on line 2767
Leider kann ich aber damit nicht gerade viel anfangen.-
Wenn ich das richtig verstehe, besagt die Warnung, dass eine Headeranweisung nicht gesendt werden konnte, da bereits in der Zeile 2742 eine solche Ausgabe erfolgte!?

Dazu hier die PHP-Zeilen:

class.t3lib_div.php Zeile 2741-2743: (Fehler in 2742!)
Code:
2741 function print_array($array_in)	{
2742      echo t3lib_div::view_array($array_in);
2743 }
class.tslib_fe.php Zeile 2765-2769: (Fehler in 2767!)
Code:
2765 // Set header for charset-encoding unless disabled
2766	if (!$this->config['config']['disableCharsetHeader'])	{
2767	$headLine = 'Content-Type:text/html;charset='.trim($this->metaCharset);
2768	header($headLine);
2769}
Ich denke nicht, dass der Fehler mit der von mir geschriebenen Extension zusammenhängt... hatte schon mal Probleme damit, weis aber nicht mehr genau unter welchen Bedingungen!?!

Hatte schon mal jemand diesen Fehler und kann helfen??
Oder weis jemand, gerade, was hier das Problem ist?? Bzw. wie man ein solches Problem angeht?
Wäre äusserst froh, merci!

Freundliche Grüsse,
El Rolando

Geändert von El Rolando (17.11.06 um 10:55 Uhr). Grund: Nachtrag
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
Sponsored Links
  #2  
Alt 17.11.06, 11:05
Forum Newbie
 
Registriert seit: 16.06.06
Alter: 26
Beiträge: 13

Hallo,

"Warning: Cannot modify header information -
headers already sent by..." heißt, dass in einer (wohl deiner) php Datei eine Ausgabe erfolgt ist.
Dazu reicht schon ein
PHP-Code:
print " "
oder aber ein "new line" am Ende eines includierten php.
PHP-Code:
<?php 
// Inhalt
?>
...
Gruß

Dennis
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #3  
Alt 17.11.06, 12:15
Benutzerbild von El Rolando
Forum Newbie
 
Registriert seit: 26.07.06
Ort: Schweiz
Alter: 30
Beiträge: 34

Hi Dennis,

Danke für den Tipp, ich hab das mal geprüft!

In meinem PHP file gibt es weder ein "print" noch ein "echo" oder so!?
Und keines der PHP Files hat eine Leerzeile am Ende... !?! Zumindest die 3 Files nicht!?

Hier sonst mal mein PHP-File... vielleicht sieht ja jemand mehr als ich... bin noch nicht wirklich sattelfest in PHP...
PHP-Code:
<?php
/***************************************************************
*  Copyright notice
*
*  (c) 2006 Roland
*  All rights reserved
*........
*  This copyright notice MUST APPEAR in all copies of the script!
***************************************************************/

require_once(PATH_tslib.'class.tslib_pibase.php');


/**
 * Plugin 'Test Extension' for the 'user_testext' extension.
 *
 * @author    Rolando
 * @package    TYPO3
 * @subpackage    user_testext
 */
class user_testext_pi1 extends tslib_pibase {
    var 
$prefixId 'user_testext_pi1';        // Same as class name
    
var $scriptRelPath 'pi1/class.user_testext_pi1.php';    // Path to this script relative to the extension dir.
    
var $extKey 'user_testext';    // The extension key.
    
    /**
     * The main method of the PlugIn
     *
     * @param    string        $content: The PlugIn content
     * @param    array        $conf: The PlugIn configuration
     * @return    The content that is displayed on the website
     */
    
function main($content,$conf)    {
        
$this->conf=$conf;
        
$this->pi_setPiVarDefaults();
        
$this->pi_loadLL();
        
$this->pi_USER_INT_obj=1;    // Configuring so caching is not expected. This value means that no cHash params are ever set. We do this, because it's a USER_INT object!
#################################################
    
if(isset($this->piVars['submit_button'])) {
     
// WHAT TO DO if content is submitted
      
t3lib_div::debug($this->piVars);
    } else {
#################################################
        
$content='
    
            <h3>This is a form:</h3>
            <form action="'
.$this->pi_getPageLink($GLOBALS['TSFE']->id).'" method="POST">
                <input type="hidden" name="no_cache" value="1">
                <input type="text" name="'
.$this->prefixId.'[DATA][fieldtitle]" value="">
                <textarea name="'
.$this->prefixId.'[DATA][description]"></textarea>
                <input type="submit" name="'
.$this->prefixId.'[submit_button]" value="Los, weg damit!">
            </form>
        '
;
    
        return 
$this->pi_wrapInBaseClass($content);
    }
}
}


if (
defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/user_testext/pi1/class.user_testext_pi1.php'])    {
    include_once(
$TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/user_testext/pi1/class.user_testext_pi1.php']);
}

?>
Zur Erklärung: Ich habe zur Verdeutlichung die Zeilen in denen der Debugmodus aktiviert wird zwischen ###-Linien geschrieben!
Diese sind im Original natürlich nicht vorhanden und wenn man diese Zeilen auskommentiert funktioniert es ja auch!?!?

Hmmm, sonst noch irgendwelche Tipps und/oder Ideen??

Danke und Grüsse

El Rolando

Geändert von El Rolando (25.02.07 um 13:13 Uhr).
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #4  
Alt 17.11.06, 12:34
Forum Newbie
 
Registriert seit: 16.06.06
Alter: 26
Beiträge: 13

Hallo,
Versuche doch mal das "manuelle debug", und schaue dann mal was passiert:
PHP-Code:
#################################################
    
if(isset($this->piVars['submit_button'])) {
     
// WHAT TO DO if content is submitted
      
$content t3lib_div::view_array($this->piVars);  
    } else {
################################################# 


ist halt ohne "debug", dafür mit "view_array".
Achja, die debug Informationen sollten auch irgendwo hin,... ($content)

Grüße
Dennis
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #5  
Alt 17.11.06, 12:37
Benutzerbild von El Rolando
Forum Newbie
 
Registriert seit: 26.07.06
Ort: Schweiz
Alter: 30
Beiträge: 34
Ausrufezeichen Bin ich ein Vollidiot??????

Werde das gleich versuchen....

Habe aber eben noch was bemerkt...
Vielleicht ist es ja gar kein Fehler... sondern muss, bzw. sollte so sein!!? Und ich bin einfach ein Idiot!

Habe jetzt mal den Cache gelöscht und die Seite neu anzeigen lassen...

Und siehe da, sie wird auch richtig angezeigt...!
Wenn ich nun die Formularfelder ausfülle und auf den Submit_Butten klicke, um die Daten zu übermitteln... dann erscheint wieder die Warnung... aber oben erscheint dann auch das „Debug Feld“... mit den zu übermittelten Angaben!!

D.h. wäre das so zu sagen gar kein Fehler sondern ist jetzt einfach der Debug –Mode? Und die Daten werden statt übermittelt oben ausgegeben??
Und dann ist diese „doppelte Ausgabe“ einfach die Ausgebe ins Debug-Feld? (Statt die Übermittlung in die Datenbank… welche keine Warnung hervorrufen würde??)

Ist das so?? …d.h. bin ich einfach ein Vollidiot, der erst den Cache nicht gelöscht hat?

Oder stimmt da wirklich etwas nicht? Und diese Meldung sollte nicht erscheinen??

Bin jetzt doch etwas verwirrt… habe halt noch nie mit dem Debug-Modus gearbeitet!?

... aber ich werde auch noch schnell Deinen Vorschlag ausprobieren!!

Thanks!!!! -melde mich gleich wieder wie es damit aussieht!
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #6  
Alt 17.11.06, 12:52
Benutzerbild von El Rolando
Forum Newbie
 
Registriert seit: 26.07.06
Ort: Schweiz
Alter: 30
Beiträge: 34
Hmmmmm????

Also, hab das mal nach Deinen Vorgaben umgeschrieben und nochmals versucht:
(Mit view_array statt debug... )

Also, die Seite wird richtig angezeigt... aber wenn ich die Felder ausfülle und auf "übermitteln" drücke, bekomme ich einfach eine leere Seite... diese Seite, die ID ist dieselbe!?

So sieht dann der Quelltext des Plugins aus...
Code:
<!--  CONTENT ELEMENT, uid:69/list [begin] -->
	<span class="bodytext">
	<!--  Plugin inserted: [begin] -->

	<!--  Plugin inserted: [end] -->
		</span>
<!--  CONTENT ELEMENT, uid:69/list [end] -->
!?!?

Vermutlich hab ich ja was vergessen, habe gerade noch gesehen...
Zitat:
Achja, die debug Informationen sollten auch irgendwo hin,... ($content)
Wie meinst Du das, bzw. wie mach ich das?

Eben, bin kein PHP-Hisch!?

Geändert von El Rolando (17.11.06 um 12:56 Uhr). Grund: Was vergessen
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #7  
Alt 17.11.06, 13:04
Forum Newbie
 
Registriert seit: 16.06.06
Alter: 26
Beiträge: 13

Moin,

die $content Variable ist die Variable, wo du den Seiteninhalt reinschreibst.

PHP-Code:
#################################################
    
if(isset($this->piVars['submit_button'])) {
     
// WHAT TO DO if content is submitted
   
$content 'Array: '.t3lib_div::view_array($this->piVars);  
//oder:
//  $content = 'Debug: '.t3lib_div::debug($this->piVars); 
// der Content wird also mit dem array/debug Inhalt gefüllt.


    
} else {
#################################################
        
$content='  HIER STEHT DEIN HTML FORMULAR ';
    
        return 
$this->pi_wrapInBaseClass($content); 

versuch das mal, (natürlich mit dem Code für das Formular), dann müsste dann nach dem Submit mindestens "Array: " ausgegeben werden.

Wenn die Debug Ausgabe funktioniert hat, ist doch aber alles in Ordnung, ob das jetzt schön aussieht oder nicht...


Gruß
Dennis
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #8  
Alt 17.11.06, 13:45
Benutzerbild von El Rolando
Forum Newbie
 
Registriert seit: 26.07.06
Ort: Schweiz
Alter: 30
Beiträge: 34

Also ich hab das PHP nach Deinen Angaben umgeschrieben...
Zitat:
$content = 'Array: '.t3lib_div::view_array($this->piVars);
Es sieht aber genau gleich aus wie vorher... es folgt eine leere Seite... nichts von Array: oder so!?

....
Aber wenn das mit dem Debug trotz Warnung okay ist, dann kann ich ja wenigstens mal weiterbasteln!! Oder!?

Ich habe mal den ganzen Debug-Mode ausgeschaltet und versucht, ob Daten in die Datenbank geschrieben werden...
Die Tabelle ist vorhanden, bzw. wurde erstellt... Inhalte sind aber noch keine drinn...!? Aber vielleicht, bin ich ja noch nicht soweit, oder hab noch Fehler oder so drin... das Tutorial war ja auch noch nicht zu ende... als meine Probleme entstanden... werde einfach mal versuchen weiter zu kommen...

Werden mich ja später nochmals melden...

Danke schon mal für die fachkundige und prompte Hilfe... äusserst nett! Merci!

Gruzz

El Rolando
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
Antwort


Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Trackbacks are An
Pingbacks are An
Refbacks are An


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Suche Information lechus HTML & CSS 0 18.06.08 18:59
Warning: Cannot modify header information evchen TYPO3 4.x Fragen und Probleme 6 08.11.07 19:19
Warning: Cannot modify header information Faircamion TYPO3 4.x Fragen und Probleme 4 24.06.07 17:22
cannot modify header tiroler TYPO3 4.x Fragen und Probleme 0 12.08.06 12:30
fehler meldung im frontend Cannot modify header information cyberload TYPO3 3.x Fragen und Probleme 6 11.01.06 14:14


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:42 Uhr.


Powered by vBulletin® Version 3.6.8 Patch Level 2 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.1.0
Template-Modifikationen durch TMS