zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Serveradministration und serverseitige Scripte
Seite neu laden global Variable wird nicht angezeigt ...

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 08.10.2007, 22:36
Benutzerbild von paracelsus
be simple
XHTMLforum-Kenner
Thread-Ersteller
 
Registriert seit: 16.07.2007
Ort: Bruck an der Mur - Austria, einige meinen am "Anus Mundi"
Beiträge: 4.786
paracelsus ist einfach richtig nettparacelsus ist einfach richtig nettparacelsus ist einfach richtig nettparacelsus ist einfach richtig nett
Standard global Variable wird nicht angezeigt ...

Grüß euch!
Ich habe in einem script (A) eine Variable:
PHP-Code:
global $prevl
Inhalt dieser Variable ist 0 oder &preview=1
Die Variable kommt aus script(B), dieses includet nun das script(A) um das es geht.
Im script(A) wird diese Variable an alle möglichen Strings angehängt.
Funktioniert auch, bis auf diesen hier:


PHP-Code:
echo $prevl;
$helpsite "<div class=\"skiplink\">
<a href=\"index.php?pageid=100&amp;sel=0&amp;bezug=help"
.$prevl."\"> ...
</div>"

das echo ist bloss Kontrolle, wird auch ausgegeben.
Aber wenn ich nun im script(B) die Variable $helpseite aufrufe ist auf der Website ab "help" der GET zu Ende,
der Inhalt von $prevl wird nicht ausgegeben, obwohl das echo den richtigen Wert anzeigt. Kann ja nicht einfach eine Zeile später keinen Wert mehr haben?

Woran liegt´s denn, dass ich mehrere String variablen damit bestücken kann, aber diese eine nimmt das nicht auf?
Im G**gle find i nix zu.

Danke
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 08.10.2007, 22:59
Benutzerbild von Scheppertreiber
Chaot und Nonkonformist.
XHTMLforum-Kenner
 
Registriert seit: 13.03.2007
Ort: Steinmark im Spessart
Beiträge: 7.457
Scheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein Lichtblick
Standard

PHP ist ja an C angelhnt, vielleicht packt er die "\" nicht und man muß sie zu
"\\" mappen ? Oder die Reihenfolge stimmt nicht ?
__________________
Grüße aus dem Spessart, Joe

{ table-layout: biertischistbesser; }
Der Mausinator
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 08.10.2007, 23:05
Benutzerbild von paracelsus
be simple
XHTMLforum-Kenner
Thread-Ersteller
 
Registriert seit: 16.07.2007
Ort: Bruck an der Mur - Austria, einige meinen am "Anus Mundi"
Beiträge: 4.786
paracelsus ist einfach richtig nettparacelsus ist einfach richtig nettparacelsus ist einfach richtig nettparacelsus ist einfach richtig nett
Standard

Zitat:
Zitat von Scheppertreiber Beitrag anzeigen
PHP ist ja an C angelhnt, vielleicht packt er die "\" nicht und man muß sie zu
"\\" mappen ? Oder die Reihenfolge stimmt nicht ?
Nö is es leider nicht.
Hab es schon mehrmals getestet, der Link funkt ja, die übergabe dieses Parameters geht auch in 6 anderen Links (sind alle " mit \ maskiert), dieser ist der 7ente, da geht es nun nicht.

Mit Zitat antworten
  #4 (permalink)  
Alt 08.10.2007, 23:09
Benutzerbild von Scheppertreiber
Chaot und Nonkonformist.
XHTMLforum-Kenner
 
Registriert seit: 13.03.2007
Ort: Steinmark im Spessart
Beiträge: 7.457
Scheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein Lichtblick
Standard

Ha ! Ich hab's !!! PHP kann nur 6 Variable
__________________
Grüße aus dem Spessart, Joe

{ table-layout: biertischistbesser; }
Der Mausinator
Mit Zitat antworten
  #5 (permalink)  
Alt 08.10.2007, 23:21
Benutzerbild von paracelsus
be simple
XHTMLforum-Kenner
Thread-Ersteller
 
Registriert seit: 16.07.2007
Ort: Bruck an der Mur - Austria, einige meinen am "Anus Mundi"
Beiträge: 4.786
paracelsus ist einfach richtig nettparacelsus ist einfach richtig nettparacelsus ist einfach richtig nettparacelsus ist einfach richtig nett
Standard



Zitat:
Zitat von Scheppertreiber Beitrag anzeigen
Ha ! Ich hab's !!! PHP kann nur 6 Variable
Das kann nicht sein, die Funktion die das Menü aufbaut - ein anderes Script - kreiiert in der Preview Ansicht 13 Links mit diesem Parameter.
Hab auch gerade - weil ich es ernst genommen hab - mal eine der oberen gelöscht - gleiches Ergebnis - nix....
hier mal auszugsweise das script:
PHP-Code:
#   ab hier nichts ändern   #
$kontakt_link_sel "<li><a href=\"index.php?pageid=400&amp;bezug=kontakt&amp;sel=400".$prevl."\" class=\"sel\">Kontakt</a></li>\n";
$kontakt_link "<li><a href=\"index.php?pageid=400&amp;bezug=kontakt&amp;sel=400".$prevl."\">Kontakt</a></li>\n";
#-------------------------------------------------------------------------------------------------------------
# Sitemap
$sitemap true;
# In welchem Menü soll Sitemap angezeigt werden?
# NICHT möglich im Menü nav1 - NUR die nav0,2,3, oder 4 angeben!
$sitemap_menu "nav0";
# Überschrift
$sitemap_header "Übersicht aller verfügbaren Seiten";
#   ab hier nichts ändern   #
$sitemap_link_sel "<li><a href=\"index.php?pageid=200&amp;bezug=sitemap&amp;sel=200".$prevl."\" class=\"sel\">Sitemap</a></li>\n";
$sitemap_link "<li><a href=\"index.php?pageid=200&amp;bezug=sitemap&amp;sel=200".$prevl."\">Sitemap</a></li>\n";

#-------------------------------------------------------------------------------------------------------------
# Gästebuch
$gbk true;
# In welchem Menü soll Gästebuch angezeigt werden?
# NICHT möglich im Menü nav1 - NUR die nav0,2,3, oder 4 angeben!
$gbk_menu "nav4";
# Überschrift
$gbk_header "Gästebuch";
# Überschrift im Eingabeformular
$gbk_header_edit "Ins Gästebuch schreiben";
$gbk_hinweis "<p>Dieses Gästebuch ist vor Mißbrauch geschützt.<br />
Ihre Eingabe wird mittels eines Filters nach unerlaubten Wörtern überprüft,<br />
nach erfolgreicher Annahme erhalten Sie an Ihre - von Ihnen angegebene - Mail-Adresse eine Nachricht, die Sie - durch Klick auf den Link darin - bestätigen müssen.<br />
Dies ist aus Sicherheitsgründen (Spamschutz) notwendig, wir bitten um Verständnis.</p>"
;
#   ab hier nichts ändern   #
$gbk_link_sel "<li><a href=\"index.php?pageid=600&amp;bezug=gbk&amp;sel=600&amp;offset=0".$prevl."\" class=\"sel\">Gästebuch</a></li>\n";
$gbk_link "<li><a href=\"index.php?pageid=600&amp;bezug=gbk&amp;sel=600&amp;offset=0".$prevl."\">Gästebuch</a></li>\n";
# Link zum eintragen
$gbk_eintrag "<a href=\"index.php?pageid=600&amp;sel=600&amp;eintrag=1\">Eintrag verfassen</a>\n";
#-------------------------------------------------------------------------------------------------------------
# Admin Link
# In welchem Menü soll der Admin Link angezeigt werden?
# NICHT möglich im Menü nav1 - NUR die nav0,2,3, oder 4 angeben!
$admin_menu "nav4";
$admin_link "<li><a href=\"cms/system/index.php\">Login</a></li>\n";
#-------------------------------------------------------------------------------------------------------------
# Hilfeseite - evtl aufgerufene klass ändern!
$helpsite "<div class=\"skiplink\"><a href=\"index.php?pageid=100&amp;sel=0&amp;bezug=help".$prevl."\"><img src=\"templ/img/layout/help.jpg\" alt=\"Hilfe\" title=\"Hilfe zur Seiten Navigation\" width=\"16\" height=\"16\" /></a></div>";
#------------------------------------------------------------------------------------------------------------- 
den vorletzten $prevl hab ich grad mal rausgenommen, aber es geht - wie gesagt trotzdem nich ...
Mit Zitat antworten
  #6 (permalink)  
Alt 08.10.2007, 23:45
Benutzerbild von paracelsus
be simple
XHTMLforum-Kenner
Thread-Ersteller
 
Registriert seit: 16.07.2007
Ort: Bruck an der Mur - Austria, einige meinen am "Anus Mundi"
Beiträge: 4.786
paracelsus ist einfach richtig nettparacelsus ist einfach richtig nettparacelsus ist einfach richtig nettparacelsus ist einfach richtig nett
Standard

Nachtrag:

Die Variable $helpsite wird in der templ.php so aufgerufen:
PHP-Code:
<? echo $helpsite ?>
Kann es hieran liegen?
Mit Zitat antworten
  #7 (permalink)  
Alt 08.10.2007, 23:52
Benutzerbild von Scheppertreiber
Chaot und Nonkonformist.
XHTMLforum-Kenner
 
Registriert seit: 13.03.2007
Ort: Steinmark im Spessart
Beiträge: 7.457
Scheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein Lichtblick
Standard

Das ist die Sorte Fehler wo man stundenlang vor dem Monitor grübelt ...
__________________
Grüße aus dem Spessart, Joe

{ table-layout: biertischistbesser; }
Der Mausinator
Mit Zitat antworten
  #8 (permalink)  
Alt 09.10.2007, 01:41
lässt grüßen
XHTMLforum-Mitglied
 
Registriert seit: 09.10.2007
Ort: Berlin
Beiträge: 189
code_junkie wird schon bald berühmt werden
Standard Vermutung

Zitat:
Zitat von paracelsus Beitrag anzeigen
Grüß euch!
Ich habe in einem script (A) eine Variable:
PHP-Code:
global $prevl
Inhalt dieser Variable ist 0 oder &amp;preview=1
Die Variable kommt aus script(B), dieses includet nun das script(A) um das es geht.
Im script(A) wird diese Variable an alle möglichen Strings angehängt.
Funktioniert auch, bis auf diesen hier:


PHP-Code:
echo $prevl;
$helpsite "<div class=\"skiplink\">
<a href=\"index.php?pageid=100&amp;sel=0&amp;bezug=help"
.$prevl."\"> ...
</div>"

das echo ist bloss Kontrolle, wird auch ausgegeben.
Aber wenn ich nun im script(B) die Variable $helpseite aufrufe ist auf der Website ab "help" der GET zu Ende,
der Inhalt von $prevl wird nicht ausgegeben, obwohl das echo den richtigen Wert anzeigt. Kann ja nicht einfach eine Zeile später keinen Wert mehr haben?
Ich kann zwar nich hellsehen, aber es hört sich an als wäre dieser Codeausschnitt ein Stück aus einer function() und als riefest du die variable außerhalb dieser Funktion auf. Wenn das so ist, dann ist $helpsite natürlich eine nicht globale Variable.. Ist die also schon vorher außerhalb der Funktion gesetzt worden, wird sie natürlich nicht überschrieben.
Wenn es daran liegt, hilft ein &$var..

MfG
Mit Zitat antworten
  #9 (permalink)  
Alt 09.10.2007, 08:49
Benutzerbild von mantiz
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 25.02.2007
Beiträge: 2.845
mantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz sein
Standard

Für mich liest es sich so, dass Du 2 Scripte hast, a.php und b.php.

Wenn Du jetzt in a.php eine Variable global machst, dann heisst das nicht, dass diese in b.php verfügbar ist, wenn Du erst a.php und anschließend b.php im Browser aufrufst.

global ist nur für Variablen in Funktionen gut, wo man innerhalb der Funktion die Variablen angeben kann, die man aus dem globalen Namespace verwenden will.

Beispiel:
PHP-Code:
$a 'blub';
function 
b() {
   echo 
$a;

Gibt nichts aus, oder aber ein Warning, weil die Variable $a innerhalb der Funktion nicht exisitert.
PHP-Code:
$a 'blub';
function 
b() {
   global 
$a;
   echo 
$a;

Gibt (wie erwartet) 'blub' aus. Du holst also mit global die hier globale Variable $a in den Namespace der Funktion rein.

In C und allen anderen mir bekannten Sprache läuft das genau andersherum, was schon sehr verwirrend sein kann.

// Edit: Sorry, hab' falsch gelesen und dementsprechend passt das natürlich nicht, was ich geschrieben habe. :-/

Geändert von mantiz (09.10.2007 um 08:54 Uhr) Grund: Post falsch gelesen
Mit Zitat antworten
Sponsored Links
  #10 (permalink)  
Alt 09.10.2007, 09:41
Benutzerbild von paracelsus
be simple
XHTMLforum-Kenner
Thread-Ersteller
 
Registriert seit: 16.07.2007
Ort: Bruck an der Mur - Austria, einige meinen am "Anus Mundi"
Beiträge: 4.786
paracelsus ist einfach richtig nettparacelsus ist einfach richtig nettparacelsus ist einfach richtig nettparacelsus ist einfach richtig nett
Standard

Hallo!

Nett das sich so viele Gedanken darüber machen!

Es geht um folgendes:
Das Template kann von 2 Seiten aus angestossen werden, einmal von Index.php aus dem www, und dann auch von index.php aus dem CMS.
Das CMS ist auf 2 DatenBanken aufgebaut, eine öffentliche und eine für Redakteure, das heisst Änderungen die gemacht werden sind erst sichtbar, wenn der Administrator die Änderungen - welche die Redakteure gemacht haben - explizit freigibt. Ist das der Fall wird die Seite in den Wartungsmodus geschickt (deaktiviert mit öffntlichem Hinweis) und die öffentliche DB mit dem Inhalt der Redaktions DB befüllt.

Um die Vorschau für Redakteure zu realisieren, muss ich allen Links aber o.a. Variable mitgeben, damit das Template weiss: ich muss nun auf die andere Datenbank zugreifen.

Obiges Schnippsel ist aus der Config.php, das ist eine Auflistung von Variablen und Array´s, keine Funktionen.
die $prevl wird in der templ.php mit werten befüllt.
Templ.php includiert config.php - in dieser ist die Variable global $prevl; gesetzt.

Somit ist $prevl ind der config.php verfügbar, was ja dadurch belegt wird, dass sich diese Variable an alle in der config anhängen lässt - an alle bis auf diese.
Mit Zitat antworten
Sponsored Links
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Fokus auf Checkbox wird nicht angezeigt krümel CSS 1 16.03.2009 23:55
Problem mit globaler Variable onkel-tom Javascript & Ajax 9 13.03.2009 11:36
error_reporting(E_ALL); paracelsus Serveradministration und serverseitige Scripte 37 05.06.2008 08:36
Text zu Groß für Box, Es soll ein Scrollbalken angezeigt werden michi-muc CSS 1 04.02.2008 21:41
Variable aus Datei in Klasse einbinden spacegaier Serveradministration und serverseitige Scripte 5 17.11.2007 00:41


Alle Zeitangaben in WEZ +2. Es ist jetzt 21:57 Uhr.