pragmaMx Support Forum

pragmaMx => Coder und Bastlerecke => Thema gestartet von: reddragon in 09 September 2009, 19:58:53

Titel: Notice: Undefined variable
Beitrag von: reddragon in 09 September 2009, 19:58:53
HI,

ich versuche gerade mir aus einem Block ein Modul zu stricken. Allerdings habe ich da ein Problem:

ZitatNotice: Undefined variable: content in /www/modules/mein_modul/index.php on line 71

Ich habe in dem Bereich eine for-Schleife laufen, die ihre Daten in der Variabel $content unterbringt.
Das ganze schaut so aus:

$content .="blabla";

weiter unten lasse ich den Inhalt ausgeben:

         OpenTable();
echo $content;
   CloseTable();

Wenn ich oben in der while-Schleife das Leerzeichen, und den Punkt entferne, ist die Meldung weg. Allerdings wird dann aus der for-Schleife nur der letzte Wert angezeigt.

Was läuft denn hier falsch?
Titel: Re: Notice: Undefined variable
Beitrag von: JoergK in 09 September 2009, 20:45:04
Hoi ;)

Schau mal dort: http://www.php-faq.de/q-fehler-variable.html

Zitat
Der Hinweis wird ausgegeben, weil mit einer nicht definierten Variablen hantiert wird, d. h. der Name der Variablen existiert nicht, ein konkreter Wert ist folglich auch nicht verfügbar. Durch die automatische Typ-Konvertierung wird der angenommene "Wert" NULL dann zwar in einen passenden Datentyp verwandelt - das ist aber nur ein "Notbehelf", damit das Script weiterlaufen kann.

...

Handelt es sich um Script-interne Variablen, sollten diese vor der Verwendung definiert werden. Bevor man also $foo .= "bla"; schreibt, um an $foo etwas anzuhängen, ist ein $foo = ""; nötig, um die Variable zu definieren und ihr einen leeren String zuzuweisen.
Titel: Re: Notice: Undefined variable
Beitrag von: reddragon in 09 September 2009, 22:23:05
hmmm... ja, damit habe ich das auch schon probiert, aber das müsste doch auch irgendwie anders zu bewerkstelligen sein, weil diese Meldung beim Block nicht ausgegeben wird, und da das Teil auch nicht seperat definiert wurde.. :puzzled:
Titel: Re: Notice: Undefined variable
Beitrag von: JoergK in 10 September 2009, 20:53:42
Hoi ;)

Von welchem Block ist denn die Rede?

Sobald in PHP einer Variablen ein String angehängt werden soll:
/* Beisiel 1 */
for ($x=0; $x < 10; $x++) {
    $content .= 'Irgend etwas';
}

und diese Variable ist noch nicht deklariert worden, dann hat das eine Meldung zur Folge. Das läßt sich nur mit einer vor dieser Anweisung liegenden Deklaration (= Zuweisung) abstellen:
/* Beisiel 2 */
$content = '';
for ($x=0; $x < 10; $x++) {
    $content .= 'Irgend etwas';
}


Wenn jedoch nur eine Zuweisung (= Deklaration) erfolgt, dann gibt es natürlich keine Meldung:
/* Beisiel 3 */
$content = 'Irgend etwas';

Titel: Re: Notice: Undefined variable
Beitrag von: reddragon in 10 September 2009, 22:29:38
ZitatSobald in PHP einer Variablen ein String angehängt werden soll [...]und diese Variable ist noch nicht deklariert worden, dann hat das eine Meldung zur Folge[...]

:BD:  Okay, ich dachte zumindest der Block läuft ohne Probleme. Der, den cih gecheckt hatte, basierte nicht auf dem, dich ich verwendet hatte....

ZitatVon welchem Block ist denn die Rede?

http://www.pragmamx.org/Forum-topic-21605-start-msg146189.html#msg146189


Edit:
ich habe da zwar nun noch eine Variabel, aber es funktioniert  :thumbup:


Edit: Edit:
Diese Meldung erscheint allerdings nicht, wenn der Block im deaktivierten Zustand über die MX-tabs geladen werden....
Titel: Re: Notice: Undefined variable
Beitrag von: siggi in 11 September 2009, 03:52:21
:JC_coffee: moin

Ich würde mal einen Blick in die user.php des mxTabs-Downloads (http://www.pragmatized.com/plugin/Downloads/view_download/8) werfen.
Code (user.php) Auswählen

<?php
 
* --------------------------------------------------------------------
 * 
Centerblock mxTabs 1.1 for pragmaMx 0.1.10
 
written by (c2008 Siggi Braunerthttp://www.sb-websoft.com
 
* --------------------------------------------------------------------
 **/
if (!
defined("mxMainFileLoaded")) die ("access denied");

error_reporting(0); // falls Warnungen in den Bloecken die Meldung unterdruecken
:
:


Logisch, daß dann ...
ZitatDiese Meldung erscheint allerdings nicht, wenn der Block im deaktivierten Zustand über die MX-tabs geladen werden....

  :crazy:    :BD:
Titel: Re: Notice: Undefined variable
Beitrag von: Andi in 11 September 2009, 14:13:04
Hoi :)

ZitatIch würde mal einen Blick in die user.php des mxTabs-Downloads werfen.
Warum?
Die Fehlerbehandlung wird global von pragmaMx geregelt.   :crazy:  :BD:
Eine solche Fehlerunterdrückung ist unnötig bzw. sogar unsinnig und es kann von keinem Coder/Bastler erwartet werden, sämtliche Dateien nach solchen Fallstricken zu durchsuchen.


@ reddragon

Schau mal hier, evtl. hilft dir das, die Ausführungen von Jörg zu verstehen:
http://de2.php.net/manual/de/language.operators.string.php
Titel: Re: Notice: Undefined variable
Beitrag von: siggi in 11 September 2009, 15:24:26
Hi :)

abgesehen davon, ob das, was da im Code steht Sinn macht oder nicht ( auch du codest Dinge, die zu seiner Zeit Sinn machen und zu einem späteren Zeitpunkt  unsinnig erscheinen) war mein Beitrag diesbezüglich völlig wertfrei,  lediglich ein Hinweis, warum es keine Fehlermeldung ausgibt .... :cul:

Zitatund es kann von keinem Coder/Bastler erwartet werden, sämtliche Dateien nach solchen Fallstricken zu durchsuchen

was meinst du, was ich nicht schon für "Fallstricke" in Quellcodes anderer "Bastler/Coder" aufgeknotet habe  :puzzled: :BD:  Schönes WE  :pardon:
Titel: Re: Notice: Undefined variable
Beitrag von: Andi in 11 September 2009, 20:13:31
ZitatIch würde mal ...
  ...  Logisch, daß dann ... 
     ...   :crazy:  :BD:

Wertfrei?  :gruebel:
Naja, lassen wir's mal so stehen....

auch schönes WE  :bye2: