cInclude macht mich wahnsinnig

projumper
Beiträge: 73
Registriert: Do 5. Jun 2008, 09:58
Kontaktdaten:

cInclude macht mich wahnsinnig

Beitrag von projumper » Di 25. Nov 2008, 22:34

hi @ all,

ich versuche über cInclude eine datei *.php einzu binden. diese hat ein paar variablen $var1 $var2. jetzt will ich nach dem include darauf zu greifen von einem anderen script welches die datei cincluded hat .... und das funktioniert einfach nicht!!!!

kann mir mal bitte jemanden helfen oder wenigstens in die richtige richtung weisen !!!!

wo liegt der unterscheid zw include von php und cInclude? und wofür seteht das c für Contenido oder class ???

mfg

und besten dank im voraus !!!

MichFress
Beiträge: 750
Registriert: Mo 5. Jan 2004, 22:32
Wohnort: Bochum
Kontaktdaten:

Beitrag von MichFress » Mi 26. Nov 2008, 08:50

Auch wenn ich deiner Problembeschreibung nicht völlig folgen kann: Warum nimmst du nicht einfach include statt cInclude?

cInclude ist einfach eine Hilfsfunktion von Contenido:

Code: Alles auswählen

cInclude("classes", "tolleklasse.class.php");
ist nichts weiter als ein Inkludieren der tolleklasse.class.php-Datei im classes-Verzeichnis der Contenido-Installation. Für die genaue Benutzung schau dir am besten die Funktion im Code an - oder schau nach, wie sie in Contenido benutzt wird.
"Es wird keine Handlung geben, keine Geschichte mit ihrer Versprechung auf einen Anfang und ihrer Hoffnung auf ein Ende." (Andrzej Stasiuk)

projumper
Beiträge: 73
Registriert: Do 5. Jun 2008, 09:58
Kontaktdaten:

Beitrag von projumper » Mi 26. Nov 2008, 10:36

das dachte ich auch....

jetzt habe ich eine datei test.php

Code: Alles auswählen

<?php

$variable="test";

?>
und einen andere:

Code: Alles auswählen

<?php

cInclude("class", "test.php");

echo $variable; //wird noicht ausgegeben

?>
habe ich irgendwie total den falschen ansatz dem mit include ging das doch immer so !!!!

warum ich cInclude nehme ist eine gute frage: wahrscheinlich weil ich damit besser die verzeichnisse angeben kann... weiss ich nicht gaenau.... aber jetzt gehts um die ehre .... ist ja nicht so das es ein wahnsinnig komplexes problem ist !!!!

mfg

projumper
Zuletzt geändert von projumper am Mi 26. Nov 2008, 12:32, insgesamt 2-mal geändert.

MichFress
Beiträge: 750
Registriert: Mo 5. Jan 2004, 22:32
Wohnort: Bochum
Kontaktdaten:

Beitrag von MichFress » Mi 26. Nov 2008, 11:51

Es würde eventuell noch helfen, wenn du uns die Fehlermeldung sagst, die da kommt...
"Es wird keine Handlung geben, keine Geschichte mit ihrer Versprechung auf einen Anfang und ihrer Hoffnung auf ein Ende." (Andrzej Stasiuk)

Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Beitrag von Dodger77 » Mi 26. Nov 2008, 11:55

@projumper: Nur, um das auszuschließen, du nutzt für die cInclude-Anweisung schon Anführungszeichen wie MichFress das gepostet hat?

projumper
Beiträge: 73
Registriert: Do 5. Jun 2008, 09:58
Kontaktdaten:

Beitrag von projumper » Mi 26. Nov 2008, 12:26

das ist ja das problem der server liefert keine fehlermeldung!!!

das script wird fehler frei übersetzt ohne syntax fehler, ....


ich habe sogar

Code: Alles auswählen

echo error_reportin(E_ALL)
angemacht!!!

das problem ist das ich nicht auf die variablen zugreifen kann die mit cInclud includiert worden sind

wie oben beschrieben:

Code: Alles auswählen

echo "----->".$variable."<------";


dann ist die Ausgabe : -----><------

wobei $variable="test1" ist (siehe oben 2 post)

@Dodger77: ja natürlich. habe die [ " " ] nur hier vergessen !!!!

mfg

projumper

OliverL
Beiträge: 870
Registriert: Do 28. Jun 2007, 09:28
Kontaktdaten:

Beitrag von OliverL » Mi 26. Nov 2008, 19:13

Wenn es hier um die Ehre geht schalte ich mich mal dazu!!!! 8)

mal ne ganz doofe frage:
Wo liegt die Datei?

Und "class" funktioniert schon mal gar nicht!!!
Wenn dann "classes"

Das erste Attribut zeigt auf ein bestimmtes Verzeichnis, Wenn die Datei nicht in dem Verzeichnis ist wird es nicht gehen

Daten für Attribut #1:
WERT | BASE-DIR
"frontend" <- $cfgClient[$client]["path"]["frontend"]
"wysiwyg" <- $cfg['path']['wysiwyg']
"all_wysiwyg" <- $cfg['path']['all_wysiwyg']
"conlib" & "phplib" <- $cfg['path']['phplib']

Default:
$cfg['path']['contenido'].$cfg['path'][ Attribut #1 ]. Attribut #2

Alles zu $cfg['path'] in contenido/includes/config.path.php


mfg OliverL

boeckers
Beiträge: 23
Registriert: Mi 25. Okt 2006, 23:52
Wohnort: Bochum
Kontaktdaten:

Beitrag von boeckers » Mi 26. Nov 2008, 19:45

Hallo,

ich denke das liegt evtl. an den Geltungsbereichen der Variablen.

Der normale Include wird ja meistens außerhalb einer Funktion verwendet.
Dadurch sind Variablendeklarationen dort auch global.
Beim Verwenden von der function 'cinclude' wird der include ja innerhalb einer Funktion benutzt. Also sind normal definierte variablen nicht global sondern locale Variablen der functionsinstanz.

Versuche doch einmal die Variablen in der Datei mit global bzw. $GLOBALS zu definieren.

z.B.

Code: Alles auswählen

global $name;
$name = 'test';
oder

Code: Alles auswählen

$GLOBALS['name'] = 'test';
Gruss

Boeckers

projumper
Beiträge: 73
Registriert: Do 5. Jun 2008, 09:58
Kontaktdaten:

Beitrag von projumper » Do 27. Nov 2008, 20:05

hallo @ all,


sorry wegen der verzögerung.. war noch mit einem anderen problem beschäftigt..... jetzt aber wieder dieses

@boeckers: ist aber include von php nicht auch eine ganz normale funktion? ich werde aber trotzdem deine variante testen... melde mich spätestens morgen !!!

@olivel die datei liegt unter includes. das was ich hier gepostet habe war ein fektives beispiel.


mfg

projumper

boeckers
Beiträge: 23
Registriert: Mi 25. Okt 2006, 23:52
Wohnort: Bochum
Kontaktdaten:

Beitrag von boeckers » Do 27. Nov 2008, 20:24

Hallo Projumper,

der normale include ist eine interne Function von php. Sie ist in den Dateien von der PHP-Api fest einkompiliert.

cInclude ist eine selber definierte Funktion und wird ja bei dem Aufruf der Datei interpretiert.

Dadurch ist das Verhalten von internen Funktionen und selbst definierten Funktionen unterschiedlich.


Gruss

boeckers

projumper
Beiträge: 73
Registriert: Do 5. Jun 2008, 09:58
Kontaktdaten:

Beitrag von projumper » Do 27. Nov 2008, 20:48

aber dann müsste es doch reichen wenn ich vor der variable ein global setze in meinenm script ? oder?

das geht aber nicht ... habe nämlich schon probiert.

mfg

projumper

boeckers
Beiträge: 23
Registriert: Mi 25. Okt 2006, 23:52
Wohnort: Bochum
Kontaktdaten:

Beitrag von boeckers » Do 27. Nov 2008, 20:53

hallo projumper,

hast du es schon einmal mit der $GLOBALS variante versucht ?

gruss

boeckers

OliverL
Beiträge: 870
Registriert: Do 28. Jun 2007, 09:28
Kontaktdaten:

Beitrag von OliverL » Do 27. Nov 2008, 20:57

Also wenn die Datei unter dem Include-Dir des Madaten ist ist der aufruf:

Code: Alles auswählen

<?php
// Entspricht: http://www.domain.tld/cms/includes/test.php
cInclude("frontend", "includes/test.php");
?> 
Bei Contenido so:

Code: Alles auswählen

<?php
// Entspricht: http://www.domain.tld/contenido/includes/test.php
cInclude("includes", "test.php");
?> 
Man sollte es auch testen können in dem man in test.php einfach mal das rein macht:
echo "Haaaaallllllllooooooo! Ich bin da!";

Wenn das ausgegeben wird kann man sich gedanken mit den Globals machen 8)

mfg OliverL

projumper
Beiträge: 73
Registriert: Do 5. Jun 2008, 09:58
Kontaktdaten:

Beitrag von projumper » Do 27. Nov 2008, 21:34

OliverL hat geschrieben: Wenn das ausgegeben wird kann man sich gedanken mit den Globals machen 8)

mfg OliverL
das wird ausgegeben!!!

@boeckers leider noch nicht ... wie immer kommt was dazwischen ... werde morgen spätesten bis 1200 mein test ergebnis posten !!!

vielen dank !!!!

mfg

projumper

MPSN
Beiträge: 3
Registriert: Mo 26. Mai 2008, 11:51
Kontaktdaten:

Re: cInclude macht mich wahnsinnig

Beitrag von MPSN » Mi 9. Dez 2009, 15:52

Hallo alle zusammen,

der Thread ist zwar schon älter, es fehlt aber noch eine Antwort. Hatte das gleiche Problem (echo funktioniert, Variablenwerte werden aber nicht bereitgestellt). Globale Variablen (siehe Beitrag von boeckers) funktionieren dann aber...

Grüße
Michael

Gesperrt