[TYPO3-german] Eigene Extension, FEHLER bei Ausgabe! ECHO oder nicht????

Dominik Gesthuysen gesthuysen at fliks.net
Tue Sep 5 16:41:11 CEST 2006


Du könntest aber auch, um zu testen was für eine Ausgabe Du bekommst,
Dein "echo" in eine IP-Abfrage legen, so daß nur Du eine Ausgabe über 
das "echo" angezeigt bekommst.
Also sowas hier:

// Deine IP-Adresse für 0.0.0.0 eingeben
if($_SERVER["REMOTE_ADDR"] == "0.0.0.0")
{
    // Deine Augabe
    echo "";



    // Verarbeitungsprozess beenden, um Nachfolgende Fehler, wie das 
Problem mit dem header, zu verhindern.
    die("Ende der Ausgabe");
}

Das würde ich generell empfehlen, vor allem, wenn DU an einem System 
arbeiten musst, was live ist.

Greetings,
davadda

Randnotizen:
http://www.davadda.de



denis schrieb:
> Danke Chris,
>
> ich begreife jetzt auch langsam!
>
>
> Viele Grüße
>
> Denis
>
>
> Christian Wolff schrieb:
>   
>> Am 05.09.2006, 15:28 Uhr, schrieb denis <denisschulz at gmx.net>:
>>
>>     
>>> Christian Wolff schrieb:
>>>       
>>>> gibt deine funktion am entde content mit
>>>>
>>>> return $content;
>>>>
>>>> wieder?
>>>> hatte ich vergessen dazu zu sagen. sollte deine funktion natürlich tun.
>>>> gruss chris
>>>>
>>>> Am 05.09.2006, 13:45 Uhr, schrieb denis <denisschulz at gmx.net>:
>>>>
>>>>         
>>>>> Siegfried Schultz schrieb:
>>>>>           
>>>>>> Servus Dennis,
>>>>>>
>>>>>> nicht
>>>>>>                          echo "$row[vorname] 
>>>>>> $row[name]</a></b><br>\n";
>>>>>>
>>>>>> entweder
>>>>>>  echo $row["vorname"] $row["name"]
>>>>>>
>>>>>> oder aber
>>>>>>
>>>>>> echo" '".$row["vorname"]."''".$row["name"]."' </a></b><br>\n
>>>>>>
>>>>>>
>>>>>>
>>>>>> Denn du kannst eine Tabellenspalte nicht einfach nur mit $row[name]
>>>>>> abfragen
>>>>>> ;)
>>>>>>
>>>>>> Mit freundlichen Grüßen
>>>>>> Siggi
>>>>>>
>>>>>>
>>>>>> -----Ursprüngliche Nachricht-----
>>>>>> Von: typo3-german-bounces at lists.netfielders.de
>>>>>> [mailto:typo3-german-bounces at lists.netfielders.de] Im Auftrag von 
>>>>>> denis
>>>>>> Gesendet: Dienstag, 5. September 2006 12:00
>>>>>> An: typo3-german at lists.netfielders.de
>>>>>> Betreff: [TYPO3-german] Eigene Extension,FEHLER bei Ausgabe! ECHO oder
>>>>>> nicht????
>>>>>>
>>>>>> habe eine Ext. programmiert, die ausgewählte Personen ausgibt (aus
>>>>>> fe_user):
>>>>>>
>>>>>> Über FE-Plugin wähle ich die Person aus.
>>>>>>
>>>>>> Meine class_tx_personenliste_pi.php Datei:
>>>>>>
>>>>>> $num = mysql_numrows($result);
>>>>>>                  $row = mysql_fetch_array($result);
>>>>>>             if ($input2 == $row[uid])    {
>>>>>>
>>>>>>                  if (substr($row[namenstitel], 0, 1) == 'V')
>>>>>>                          echo "$row[vorname] 
>>>>>> $row[name]</a></b><br>\n";
>>>>>>                  else
>>>>>>                          echo "$row[namenstitel] $row[vorname]
>>>>>> $row[name]</a></b><br>\n";
>>>>>>                  echo "<b><i>$row[funktion]</i></b><br>\n";
>>>>>>                  echo "Fon: $row[telefon]<br>\n";
>>>>>>                  echo "Fax: $row[telefax]<br>\n";
>>>>>>                  echo "Raum: $row[raum], $row[strasse]<br>\n";
>>>>>>                  if (!$row[email] == '') {
>>>>>>                          echo " <a href=\"mailto:$row[email]\"><IMG 
>>>>>> src
>>>>>> = \"/pics/dreieck.gif\"";
>>>>>>                          echo " border =
>>>>>> \"0\">&nbsp;$row[email]&nbsp;</a><br>\n";
>>>>>>                  }
>>>>>>             }
>>>>>>
>>>>>> Und bei der Zeile, wo 1."ECHO" fängt, gibt er mir Fehler!
>>>>>> Sieht so aus:
>>>>>>
>>>>>> Warning: Cannot modify header information - headers already sent by
>>>>>> (output started at
>>>>>> C:\Programme\typo3\htdocs\yamlt3\typo3conf\ext\personenliste\pi2\class.tx_pe 
>>>>>>
>>>>>>
>>>>>> rsonenliste_pi2.php:71)
>>>>>>
>>>>>> in
>>>>>> C:\Programme\typo3\htdocs\yamlt3\typo3\sysext\cms\tslib\class.tslib_fe.php 
>>>>>>
>>>>>>
>>>>>> on line 2826
>>>>>>
>>>>>> =============================
>>>>>> Zeile 71 in meiner php Datei ist das erste Echo!
>>>>>>
>>>>>> Zeile 2826 in ....fe.php Datei sieht so aus (header($headLine);):
>>>>>>
>>>>>> function processOutput()    {
>>>>>>
>>>>>>             // Set header for charset-encoding unless disabled
>>>>>>         if (!$this->config['config']['disableCharsetHeader'])    {
>>>>>>             $headLine =
>>>>>> 'Content-Type:text/html;charset='.trim($this->metaCharset);
>>>>>>             header($headLine);
>>>>>>         }
>>>>>>
>>>>>>
>>>>>> ========================================================
>>>>>>
>>>>>>
>>>>>> Hat schon jemand so was gehabt????
>>>>>>
>>>>>>
>>>>>> Werde sehr dankbar sein für jeden Tipp!
>>>>>>
>>>>>> Grüße, Denis
>>>>>> _______________________________________________
>>>>>> TYPO3-german mailing list
>>>>>> TYPO3-german at lists.netfielders.de
>>>>>> http://lists.netfielders.de/cgi-bin/mailman/listinfo/typo3-german
>>>>>>
>>>>>>             
>>>>> Danke Christian und Siegfried,
>>>>>
>>>>> Habe was vergessen zu sagen, Ausgabe ging bei mir.
>>>>> Aber wenn ich mit euren Lösungen probiere, geht nicht!
>>>>> Und zeigt Syntax Fehler. Habe schon selber was probiert funkzt auch 
>>>>> ned.
>>>>>
>>>>> Muss ich mit $content probieren, aber er gibt mir die abgefragte
>>>>> Ergebnisse nicht aus!
>>>>>
>>>>> Hm.. bin ratlos!
>>>>> _______________________________________________
>>>>> TYPO3-german mailing list
>>>>> TYPO3-german at lists.netfielders.de
>>>>> http://lists.netfielders.de/cgi-bin/mailman/listinfo/typo3-german
>>>>>
>>>>>           
>>>>         
>>> Danke für Tipp,
>>>
>>> Hier ist meine Funktion noch mal:
>>> ============================================================
>>> function main($content,$conf)    {
>>>         $this->conf=$conf;
>>>         $this->pi_setPiVarDefaults();
>>>         $this->pi_loadLL();
>>>         $this->pi_initPIflexForm();
>>>         $input2 = $this->pi_getFFvalue($this->cObj->data['pi_flexform'],
>>> 'exampleQuery', 'sDEF');
>>>         $query = "SELECT * FROM tx_personenliste_personenliste";
>>>         $result = mysql(TYPO3_db,$query);
>>>        
>>>         while($row = mysql_fetch_assoc($result)){
>>>                if ($input2 == $row[uid])    {
>>>                 echo $row['name'].'<br>';
>>>                  }
>>>             }   
>>>      return $content;
>>>     }
>>> ==========================================================
>>>
>>> Wenn ich in
>>>
>>> while($row = mysql_fetch_array($result))
>>>
>>> statt "array" ein "assoc" schreibe, ändert sich nichts.
>>> und wenn ich statt "array" ein "row" schreibe, verschwindet Fehler, aber
>>> wird nicht ausgegeben!
>>> WARUM? Habe schon alle DOC-.... durchgeschaut, alle schreiben anders!
>>>
>>> Sehe nur den WALD vor lauter Bäumen!
>>>
>>> _______________________________________________
>>> TYPO3-german mailing list
>>> TYPO3-german at lists.netfielders.de
>>> http://lists.netfielders.de/cgi-bin/mailman/listinfo/typo3-german
>>>
>>>       
>> funktioniert es wenn du die funktion so abänderst:
>>
>>  ============================================================
>>  function main($content,$conf)    {
>>          $this->conf=$conf;
>>          $this->pi_setPiVarDefaults();
>>          $this->pi_loadLL();
>>          $this->pi_initPIflexForm();
>>          $input2 = $this->pi_getFFvalue($this->cObj->data['pi_flexform'],
>>  'exampleQuery', 'sDEF');
>>          $query = "SELECT * FROM tx_personenliste_personenliste";
>>          $result = mysql(TYPO3_db,$query);
>>         
>>          while($row = mysql_fetch_assoc($result)){
>>                 if ($input2 == $row[uid])    {
>>
>> /* Modfikation beginn */
>>                  $content .= $row['name'].'<br>';
>> /* Modifkation ende */
>>                   }
>>              }   
>>       return $content;
>>      }
>>  ==========================================================
>>
>> weil deine Meldung "Warning: Cannot modify header information - headers 
>> already sent by..."
>> kommt bestimmt nicht direct durch deine extension sondern durch eine andere
>> extension die versucht die HTTP header zu modifizieren du hast aber den 
>> "output" durch
>> dein echo schon gestartet. und sie kann deswegen nicht mehr den header 
>> modifizieren
>>
>> und die "empfolene" / korrekte variante ist eigendlich keine echo's in 
>> extensions zu verwenden.
>> jedenfalls soweit ich das verstanden habe (bin ja auch noch relativ neu 
>> bei typo3)
>> wenn du die vermutung hast dein datenbank fetch nix sinvolles zurück 
>> gibt kannst du kontent ja auch vorher mit
>> "testinhallt füttern" um zu überprüfen wo das problem liegt.
>> also vor er while schleife noch ein  $content .='test hier beginnt ein 
>> plugin'; oder ähnliches hinzufügen.
>> das sollte ja dann in jedem fall angezeigt werden uabängig von erfolg 
>> deines datenbank zugriffes.
>>
>> gruss chris
>>
>>     
> _______________________________________________
> TYPO3-german mailing list
> TYPO3-german at lists.netfielders.de
> http://lists.netfielders.de/cgi-bin/mailman/listinfo/typo3-german
>
>
>   




More information about the TYPO3-german mailing list