Anzeige - [Hier werben / Mediadaten]
(?) Tags raten (?) (edit)
 
Reply to this topicStart new topicStart Poll
> Variable in PHP, Variable in PHP aus .inc nich erreichbar
VoinG
www.design4u.org
Geschrieben am: Sa 10.11.2007, 22:18
Report PostQuote Post

AyomRank 5
**********

Gruppe: Member (aktiv)
Beiträge: 282
Mitglied seit: 9.02.2006


Hallo!
Eine ganz blöde Frage, sowas kam mir noch nie vor.. unsure.gif

Ich habe eine .php-Datei in der eine Variable
CODE
$var=$x+$y;

existiert.
Diese Variable bekomme ich irgendwo im Code, die ist also nicht vom Anfang an definiert.

Dann habe ich eine .inc-Datei die im gleichen Ordner auf dem Server liegt.
In dieser Datei möchte ich den Wert der Variable $var nutzen.

hier ist klar und deutlich zu lesen:
QUOTE
Die Variable $a ist auch in der eingebundenen Datei b.inc verfügbar.


Bei mir ist es aber nicht der Fall! Woran kann es bitte liegen? An Hoster? Daran vielleicht dass ich blöd bin? biggrin.gif Hatte schon jemand so ein Problem?

Danke!


--------------------
Wenn Sie nach einem Webdesigner oder Suchmaschinenoptimierer in Köln oder Umgebung suchen - Webdesign & Suchmaschinenoptimierung in Köln Benutzerfreundliches Webdesign und SEO aus einer Hand. Auf Wunschkennzeichen Discount die Zulassungsstelle finden, Ihr Wunschkennzeichen reservieren und preiswerteste Autokennzeichen online bestellen. Suchmaschinenoptimierung gefällig? Suchmaschinenoptimierung. Schamane SEO-Agentur hilft:)

Linktausch?
Webdesign, SEO, Köln, Essen, Auto, Zulassung, Geschenke, Hotels, Unterkunft, Mediation, Coaching, Musik, Medizin und andere. PM reicht!
Top
PMEmail PosterUsers WebsiteICQ
Top
 
 
Sven K
#2 Geschrieben am: Sa 10.11.2007, 23:09 (+00:51)
Report PostQuote Post

AyomRank 4
********

Gruppe: Member (aktiv)
Beiträge: 143
Mitglied seit: 27.10.2006


das geht ganz sicher und ist auch nicht umgebungsabhängig, paste mal relevante stellen deines codes


--------------------
idiot confusion device | Computer Forum
Top
PMEmail Poster
Top
 
Christian H
Hummer & Engelhardt
#3 Geschrieben am: Sa 10.11.2007, 23:16 (+00:07)
Report PostQuote Post

AyomRank 2
****

Gruppe: Member (aktiv)
Beiträge: 15
Mitglied seit: 14.07.2006


Versuchs mal mit einem
CODE
global $var;
vor der Verwendung der Variable in der inkludierten Datei.
Top
PMEmail Poster
Top
 
Sven K
#4 Geschrieben am: Sa 10.11.2007, 23:35 (+00:18)
Report PostQuote Post

AyomRank 4
********

Gruppe: Member (aktiv)
Beiträge: 143
Mitglied seit: 27.10.2006


also wenn man ein file included und danach die variable benutzt benötigt man afaik kein global. das braucht man nur wenn man den eigentlich scope überschreiten möchte (z.b. funktionsweit) was aber heutzutage nicht mehr verwendet werden sollte (mal über design patterns und oop informieren)


--------------------
idiot confusion device | Computer Forum
Top
PMEmail Poster
Top
 
VoinG
www.design4u.org
#5 Geschrieben am: So 11.11.2007, 03:45 (+04:10)
Report PostQuote Post

AyomRank 5
**********

Gruppe: Member (aktiv)
Beiträge: 282
Mitglied seit: 9.02.2006


Danke für die schnelle Hilfe, ich seh aber nichts...
Der Code:
1. in der Hauptdatei:
CODE

$kaz.= $_REQUEST['a'] . "*" . $_REQUEST['b'] . " " . $_REQUEST['c'];
include("kss.inc");  
$ausgabe.= bildc(); //usw.....
echo $kaz;    //!


Die Funktion bild() befindet sich in der .inc-Datei. Aber wenn ich an dieser Stelle mit echo die Variable ausgebe, funktioniert das!

2. in der .inc-Datei befindet sich die Funktion bildc(); , aber egal, wenn ich hier
QUOTE
<?php
function bildc()
{
echo $kaz;
}

probiere, funktioniert das nicht, die Variable ist leer! Wie kann das sein?
Danke!

Gerade jetzt habe ich noch etwas festgestellt! Wenn ich die Variable $kaz außer Funktion bildc() definiere, dann gibt es die und die ist nicht leer! Und wenn in der Funktion drin, dann geht es nicht! Die Frage ist dann wohl was ich machen soll damit die Variable auch IN der Funktion sichtbar ist. "global" habe ich ausprobiert, scheint nicht zu funktionieren

Bearbeitet von VoinG am So 11.11.2007, 03:51


--------------------
Wenn Sie nach einem Webdesigner oder Suchmaschinenoptimierer in Köln oder Umgebung suchen - Webdesign & Suchmaschinenoptimierung in Köln Benutzerfreundliches Webdesign und SEO aus einer Hand. Auf Wunschkennzeichen Discount die Zulassungsstelle finden, Ihr Wunschkennzeichen reservieren und preiswerteste Autokennzeichen online bestellen. Suchmaschinenoptimierung gefällig? Suchmaschinenoptimierung. Schamane SEO-Agentur hilft:)

Linktausch?
Webdesign, SEO, Köln, Essen, Auto, Zulassung, Geschenke, Hotels, Unterkunft, Mediation, Coaching, Musik, Medizin und andere. PM reicht!
Top
PMEmail PosterUsers WebsiteICQ
Top
 
Florian Hodel
#6 Geschrieben am: So 11.11.2007, 08:56 (+05:11)
Report PostQuote Post

AyomRank 4
********

Gruppe: Member (aktiv)
Beiträge: 194
Mitglied seit: 7.09.2006


Das ist in der Eigenschaft von Funktionen so festgelegt, dass die Variabeln darin unabhängig vom Restcode sind smile.gif Wenn du eine Variable an die Funktion übergeben willst, dann musst du das in die Klammern schreiben.

Beispiel:

Funktion anlegen:
CODE
function function_name($varxy)
{
}

Funktion aufrufen:
CODE
$varqz = function_name($input);


$input wird dann Variabelnintern als $varxy angesehen, damit kannst du arbeiten (ausgeben, rechnen oder was auch immer). Wenn du einen return-Wert hast wird dieser in $varqz abgelegt.

Mit globalen Variabeln müsste es auch gehen, das mache ich persönlich aber nicht so gerne.


--------------------
Gruss Florian

Informatiklehrling


floho.ch Startseite
floho.ch Forum
Top
PMUsers WebsiteMSN
Top
 
polonius
#7 Geschrieben am: So 11.11.2007, 10:43 (+01:46)
Report PostQuote Post

AyomRank 4
********

Gruppe: Member (aktiv)
Beiträge: 78
Mitglied seit: 19.03.2006


Das PHP Manual erklärt die Sache mit den Gültigkeitsbereichen relativ gut:
http://ch2.php.net/manual/de/language.variables.scope.php

Entweder übergibst du die Variable als Argument an die Funktion oder du verwendest das Schlüsselwort global, um die Variable aus dem globalen Scope zu verwenden. Die erste Variante ist zu bevorzugen, da sie u.a. den Vorteil hat, dass die Funktion unabhängig vom übrigen Code bleibt.
Top
PMEmail Poster
Top
 
VoinG
www.design4u.org
#8 Geschrieben am: So 11.11.2007, 12:30 (+01:46)
Report PostQuote Post

AyomRank 5
**********

Gruppe: Member (aktiv)
Beiträge: 282
Mitglied seit: 9.02.2006


Vielen Dank, das hat nun funktioniert! smile.gif


--------------------
Wenn Sie nach einem Webdesigner oder Suchmaschinenoptimierer in Köln oder Umgebung suchen - Webdesign & Suchmaschinenoptimierung in Köln Benutzerfreundliches Webdesign und SEO aus einer Hand. Auf Wunschkennzeichen Discount die Zulassungsstelle finden, Ihr Wunschkennzeichen reservieren und preiswerteste Autokennzeichen online bestellen. Suchmaschinenoptimierung gefällig? Suchmaschinenoptimierung. Schamane SEO-Agentur hilft:)

Linktausch?
Webdesign, SEO, Köln, Essen, Auto, Zulassung, Geschenke, Hotels, Unterkunft, Mediation, Coaching, Musik, Medizin und andere. PM reicht!
Top
PMEmail PosterUsers WebsiteICQ
Top
 
VoinG
www.design4u.org
#9 Geschrieben am: So 11.11.2007, 22:00 (+09:30)
Report PostQuote Post

AyomRank 5
**********

Gruppe: Member (aktiv)
Beiträge: 282
Mitglied seit: 9.02.2006


Heh, gerade hat das funktioniert und ich habe wieder das ähnliche Problem smile.gif
Wie soll ich eine Variable zwischen 2 Seiten übergeben?

Ich habe eine Variable $a die ich in der Datei schritt2.php ermittle. Dann muss ich unbedingt eine Bestätigung bekommen und danach diese Variable (und noch ein paar) in die Datei schritt3.php übergeben wo das Ganze nochmals verarbeitet wird.

Mit global $a geht es nicht, mit $GLOBALS["$a"] auch nicht. Ich möchte es ohne get oder post hinkriegen, das ist schließlich kein Formular mehr. Geht es nur mit Sessions oder gibt es andere Möglichkeiten?

Danke!


--------------------
Wenn Sie nach einem Webdesigner oder Suchmaschinenoptimierer in Köln oder Umgebung suchen - Webdesign & Suchmaschinenoptimierung in Köln Benutzerfreundliches Webdesign und SEO aus einer Hand. Auf Wunschkennzeichen Discount die Zulassungsstelle finden, Ihr Wunschkennzeichen reservieren und preiswerteste Autokennzeichen online bestellen. Suchmaschinenoptimierung gefällig? Suchmaschinenoptimierung. Schamane SEO-Agentur hilft:)

Linktausch?
Webdesign, SEO, Köln, Essen, Auto, Zulassung, Geschenke, Hotels, Unterkunft, Mediation, Coaching, Musik, Medizin und andere. PM reicht!
Top
PMEmail PosterUsers WebsiteICQ
Top
 
jAuer
Jürgen Auer - freiberufl. Programmierer
#10 Geschrieben am: So 11.11.2007, 22:46 (+00:45)
Report PostQuote Post

AyomRank 9
Group Icon

Gruppe: Experten Entwicklung
Beiträge: 2409
Mitglied seit: 4.02.2006


QUOTE (VoinG @ So 11.11.2007, 22:00)
Mit global $a geht es nicht, mit $GLOBALS["$a"] auch nicht.

Laut dem von dir im Eröffnungsbeitrag geposteten Link müßte es

CODE
$GLOBALS["a"]


heißen.

Abgesehen davon scheint mir dein Code irgendwie merkwürdig zu sein. Unabhängig von der Programmiersprache (PHP nutze ich nicht) genügt es doch, wenn eine eingebundene Datei nur Funktionsdefinitionen enthält (hier JavaScript-Syntax):

CODE
function erste_funktion(p1, p2, p3) { viel Code; }

function zweite_funktion(q1, q2, q3) { noch mehr Code; }

...


und selbst keinen Code ausführt, also auch nur die übergebenen bzw. lokalen Variablen kennt. Die aufrufende Codeseite übergibt alle notwendigen Parameter (eventuell per Referenz) und wertet das Ergebnis aus.

Mir scheint, daß Du Dateien so includierst, daß sie beim Einbinden sofort eigenständig Code ausführen - und da ergeben sich dann diverse Probleme. Läßt Du das dagegen weg, dann verschwinden auch alle Probleme - Werte werden nur explizit übergeben.


--------------------
Web-Anwendung 3.0: Ein Online-Kalender für Termine vieler Filialen.

server-daten - die Single-Data-Solution: Web-Datenbanken als Online - CRM - Lösung.
Ihre Geschäftsprozesse entscheiden, was Ihre Online-Datenbank macht. Sie konzentrieren sich auf Ihr Kerngeschäft - Ihre Datenbank funktioniert.
Top
PMEmail PosterUsers Website
Top
 
VoinG
www.design4u.org
#11 Geschrieben am: So 11.11.2007, 23:12 (+00:25)
Report PostQuote Post

AyomRank 5
**********

Gruppe: Member (aktiv)
Beiträge: 282
Mitglied seit: 9.02.2006


Sorry, ich hab mich vertippt, genauso steht es in meinem Code
CODE
$GLOBALS["a"]
und geht nicht.. Ich hab's grade nochmals nachgeprüft, geht nicht!

Und wenn ich mir überlege, sollte das auch nicht gehen. Weil wenn's gehen würde, könnte man auf falsche Variablen ungewollt zugreifen.. Ich glaub, ich löse mein Problem dadurch dass ich die Variable $a aus der Datei schritt2.php an sich selber schicke mit Hilfe von "PHP_SELF" und angehängter URL, so ungefähr wie schritt2.php?aktion=erfolgreich usw.

Danke!

PS. Aber das hier
QUOTE
Mir scheint, daß Du Dateien so includierst, daß sie beim Einbinden sofort eigenständig Code ausführen - und da ergeben sich dann diverse Probleme

hast du ganz richtig erkannt, so sollte es nicht sein!


--------------------
Wenn Sie nach einem Webdesigner oder Suchmaschinenoptimierer in Köln oder Umgebung suchen - Webdesign & Suchmaschinenoptimierung in Köln Benutzerfreundliches Webdesign und SEO aus einer Hand. Auf Wunschkennzeichen Discount die Zulassungsstelle finden, Ihr Wunschkennzeichen reservieren und preiswerteste Autokennzeichen online bestellen. Suchmaschinenoptimierung gefällig? Suchmaschinenoptimierung. Schamane SEO-Agentur hilft:)

Linktausch?
Webdesign, SEO, Köln, Essen, Auto, Zulassung, Geschenke, Hotels, Unterkunft, Mediation, Coaching, Musik, Medizin und andere. PM reicht!
Top
PMEmail PosterUsers WebsiteICQ
Top
 
VoinG
www.design4u.org
#12 Geschrieben am: Mo 12.11.2007, 15:27 (+16:15)
Report PostQuote Post

AyomRank 5
**********

Gruppe: Member (aktiv)
Beiträge: 282
Mitglied seit: 9.02.2006


Nun verstehe ich das überhaupt nicht..
Warum funktioniert dieser Code nicht? Warum ist $a leer? Es geht doch nur um eine Datei!

CODE

<?php

// ----- wird erst ausgeführt nachdem man auf "GO" geklickt hat.
if ($_REQUEST['action']=='go')
{
echo "action - " . $_REQUEST['action']; //  hier überprüfe ich mich, action ist wirklich gleich "go"
echo "<br> a - " .  $a;    // $GLOBALS["a"] geht auch nicht, die Frage ist WARUM A AN DIESER STELLE LEER IST?
exit();  //  wichtig, weiter muss es nicht gehen
}
----- //

$a=2;
echo "a - " . $a;  // --- Überprüfung, $a existiert hier wirklich!

echo "<br>";
echo "<a href=" . $_SERVER['PHP_SELF'] . "?action=go>GO</a>";   // man klickt auf den Link, dann wird der Code oben ausgeführt
?>


--------------------
Wenn Sie nach einem Webdesigner oder Suchmaschinenoptimierer in Köln oder Umgebung suchen - Webdesign & Suchmaschinenoptimierung in Köln Benutzerfreundliches Webdesign und SEO aus einer Hand. Auf Wunschkennzeichen Discount die Zulassungsstelle finden, Ihr Wunschkennzeichen reservieren und preiswerteste Autokennzeichen online bestellen. Suchmaschinenoptimierung gefällig? Suchmaschinenoptimierung. Schamane SEO-Agentur hilft:)

Linktausch?
Webdesign, SEO, Köln, Essen, Auto, Zulassung, Geschenke, Hotels, Unterkunft, Mediation, Coaching, Musik, Medizin und andere. PM reicht!
Top
PMEmail PosterUsers WebsiteICQ
Top
 
polonius
#13 Geschrieben am: Mo 12.11.2007, 16:51 (+01:24)
Report PostQuote Post

AyomRank 4
********

Gruppe: Member (aktiv)
Beiträge: 78
Mitglied seit: 19.03.2006


Wenn du die Variable zwischen zwei Seitenaufrufen behalten möchtest, gibt es 2 Möglichkeiten
a) du hängst die Variable der URL als GET-Parameter an: seite2.php?variable=wert
b) du schreibst die Variable in die Session

Grund für dieses Vorgehen: HTTP ist stateless und nach Abarbeitung des Requests wird auch das PHP-Skript beendet, wobei logischerweise auch die Variablen gelöscht werden.

$GLOBALS["a"] hat nichts mit dem Übergeben von Variablen zwischen zwei Seiten zu tun, es ruft ja nur die Variable aus dem globalen Namensraum ab, genau wie das Schlüsselwort global (als Ersatz, sozusagen).

Was du hier fragst sind eigentlich absolut elementare Sachen, die IMHO doch in jedem halbwegs vernünftigen Tutorial stehen müssten.
Top
PMEmail Poster
Top
 
VoinG
www.design4u.org
#14 Geschrieben am: Mo 12.11.2007, 17:05 (+00:13)
Report PostQuote Post

AyomRank 5
**********

Gruppe: Member (aktiv)
Beiträge: 282
Mitglied seit: 9.02.2006


Vielen Dank für eure Antworten! Ich bleibe bei Sessions smile.gif
Mit dem Problem war ich irgendwie nie konfrontiert, die Variablen habe ich früher nur mit GET/POST übergeben.
Das ganze ist neu für mich, so die Überraschung. Nochmals danke für eure Hilfe!


--------------------
Wenn Sie nach einem Webdesigner oder Suchmaschinenoptimierer in Köln oder Umgebung suchen - Webdesign & Suchmaschinenoptimierung in Köln Benutzerfreundliches Webdesign und SEO aus einer Hand. Auf Wunschkennzeichen Discount die Zulassungsstelle finden, Ihr Wunschkennzeichen reservieren und preiswerteste Autokennzeichen online bestellen. Suchmaschinenoptimierung gefällig? Suchmaschinenoptimierung. Schamane SEO-Agentur hilft:)

Linktausch?
Webdesign, SEO, Köln, Essen, Auto, Zulassung, Geschenke, Hotels, Unterkunft, Mediation, Coaching, Musik, Medizin und andere. PM reicht!
Top
PMEmail PosterUsers WebsiteICQ
Top
 
Florian Hodel
#15 Geschrieben am: Mi 14.11.2007, 18:17 (+2d 01:11)
Report PostQuote Post

AyomRank 4
********

Gruppe: Member (aktiv)
Beiträge: 194
Mitglied seit: 7.09.2006


Funktioniert jetzt alles?

Falls ja, am Besten nicht mehr weiter lesen, ansonsten könnte dich das verwirren smile.gif

Falls nein möchte ich nochmals Bezug nehmen zum letzten Code-Post von VoinG(Dir)...

Da wird $a unterhalb vom IF-Code definiert. Ein PHP-Programm wird von oben nach unten abgearbeitet! Folglich kann es im Fall IF=true gar nichts beinhalten, wenn es nicht via POST o.ä. übergeben wird.

Nur so aus Neugier: Wie lange arbeitest du schon mit PHP?


--------------------
Gruss Florian

Informatiklehrling


floho.ch Startseite
floho.ch Forum
Top
PMUsers WebsiteMSN
Top
 
VoinG
www.design4u.org
#16 Geschrieben am: Mi 14.11.2007, 18:59 (+00:42)
Report PostQuote Post

AyomRank 5
**********

Gruppe: Member (aktiv)
Beiträge: 282
Mitglied seit: 9.02.2006


Heh, ich programmiere wirklich nur gelegentlich, fast ausschließlich für mich, für meine Projekte.. Deswegen gibt es viele einfache Sachen die ich überhaupt nicht kenne da ich damit noch nie konfrontiert wurde, einfach nie gesehen smile.gif
Das Problem hat sich erledigt, ich benutze Sessions und das funktioniert gut.

Wenn du
CODE
if ($_REQUEST['action']=='go')
meinst dann wird's im URL über GET übergeben.


--------------------
Wenn Sie nach einem Webdesigner oder Suchmaschinenoptimierer in Köln oder Umgebung suchen - Webdesign & Suchmaschinenoptimierung in Köln Benutzerfreundliches Webdesign und SEO aus einer Hand. Auf Wunschkennzeichen Discount die Zulassungsstelle finden, Ihr Wunschkennzeichen reservieren und preiswerteste Autokennzeichen online bestellen. Suchmaschinenoptimierung gefällig? Suchmaschinenoptimierung. Schamane SEO-Agentur hilft:)

Linktausch?
Webdesign, SEO, Köln, Essen, Auto, Zulassung, Geschenke, Hotels, Unterkunft, Mediation, Coaching, Musik, Medizin und andere. PM reicht!
Top
PMEmail PosterUsers WebsiteICQ
Top
 
Thema wird von 0 Benutzer(n) gelesen (0 Gäste und 0 anonyme Benutzer)
0 Mitglieder:
Trackback-Url: http://www.ayom.com/track/t/21537

Topic Options Reply to this topicStart new topicStart Poll

 


> Ähnliche Themen
Php-Variable in einer Javascript-Datei Jan_cmp 297 3 Fr 25.07.2008, 17:34
Variable füllen mr_sepp 107 0 Mi 29.08.2007, 23:16
variable aus datei anzeigen ! ThePosterity 212 5 Fr 3.08.2007, 01:46
[PHP] Variable nach Wort durchsuchen Thomas G. 313 2 Fr 8.06.2007, 12:03
Variable Weite René Weber 329 2 Mo 13.11.2006, 18:43
PHP nur eine variable includen?! tobiausmarzahn 446 6 Di 19.09.2006, 17:33
Variable ausserhalb Funktion ungültig radarin 330 1 Sa 27.05.2006, 12:39
Session in Variable einfügen kekskruemel 431 8 Mi 26.04.2006, 19:27
Datei in Variable speichern Friedrich 1788 22 Mo 26.09.2005, 19:08
In einer Variable eines Datenbankeintrages ist ein Friedrich 390 3 Mi 21.09.2005, 19:13




Anzeige - [Hier werben / Mediadaten]



Anzeigen


[Hier werben / Mediadaten]