[TYPO3-german] Eigene Extension, FEHLER bei Ausgabe! ECHO oder nicht????
Christian Wolff
chris at connye.com
Tue Sep 5 16:07:20 CEST 2006
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\"> $row[email] </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
More information about the TYPO3-german
mailing list