php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2007

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 16.02.2007, 14:32  
Erfahrener Benutzer
 
Registriert seit: 06.04.2006
Beiträge: 128
ruferp
Standard Gültigkeit einer Variable nur für ein Seitenaufruf

Ist bestimmt ganz einfach aber bei mir bockts grad.

Ich möchte eine Variable erstellen, die nur ein Seitenaufruf gültig ist (inklusiv in allen Funktionen). Sobald man die Seite aktualisiert soll die Variable nicht mehr vorhanden sein, bzw neu erstellt werden.

Wozu das gut sein soll?
Ich habe eine Seite in der eine Datei, welche eine Funktion enthält, included wird . In dieser Funktion (die mehrmals aufgerufen wird) wird wiederum eine Datei, welche eine Funktion enthält, included. In dieser Funktion soll nun eine Variable erstellt werden, sodass ich beim nächsten Aufruf mit isset prüfen kann.

Hier ein beispiel zur Verständigung:
PHP-Code:
function example(){
   
//mach das und das
   
if(isset($gesuchteVariable)){
      
//mach auch das noch (aber nur 1 mal!)
   
}

Da es sich um ein Plugin handelt, kann ich nur in dieser Seite coden, wesshalb ich nicht einfach am ende der Seite ein unset machen kann.

Ich hoffe, es ist klar was ich meine, sodass mir jemand helfen kann.
Gruss ruferp
ruferp ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 16.02.2007, 15:27  
Erfahrener Benutzer
 
Registriert seit: 09.03.2005
Beiträge: 219
webbi
Standard

Was meinst du mit "nur ein Seitenaufruf gültig ist"? Sobald die Webseite aktualisiert wird, verliert die Variable automatisch ihren alten Wert.
Wenn du prüfen willst, ob die Seite schonmal aufgerufen wurde und etwas nicht nochmal passieren soll, dann würde ich diese Information über eine Session weitergeben.

Da du aber etwas von Includes erzählst, gehe ich eher davon aus, dass bei dir die gleiche Datei mehrmals im Script eingebunden wird und du nur beim 1. Aufruf von include die Variable haben möchtest.
Ist das damit gemeint?
Aber du kannst doch einfach abfragen ob die Variable einen bestimmten Wert hat. Wenn ja, wird deine Funktion ausgeführt und die Variable bekommt einen anderen wert, so dass danach deine Funktion nicht mehr ausgeführt wird.

Da aber eine Variable nicht einfach so in einer Funktion verfügbar ist, sondern entweder übergeben werden muss oder als globale Variable verfügbar sein muss, verstehe ich deinen Script-Schnipsel erst recht nicht.

Vielleicht nochmal klar gegliedert beschreiben was du erreichen möchtest und wo das Problem liegt.
webbi ist offline  
Alt 16.02.2007, 15:57  
Erfahrener Benutzer
 
Registriert seit: 06.04.2006
Beiträge: 128
ruferp
Standard

Ok, du bist schon ziehmlich nahe dran...

Also hinter dem ganzen steckt (wieder mal) mein CMS. Das ganze ist modular aufgebaut, d.h. es können zusätzliche Module wie z.B. eine Bildergalerie oder in diesem Falle ein Counter installiert werden.

Nun zum Seitenaufbau einer Website mit integrierten Artikeln des CMS:
PHP-Code:
include ("cms/getcontent.php"); // Erstellt den Inhalt

// dann head, design usw...

write_text(3); // Text mit der id 3

// noch mehr design

write_text(5); // Text mit der id 5; diesmal soll der counter in der get_counter nicht mehr erhöht werden... 
Nun die getcontent.php:
PHP-Code:
function write_text($id){
   
   
// Text aus db holen
   
   // nun werden hier die dateien jedes vorhandenen modul included und deren funktionen aufgerufen
   // in diesem beispiel: get_counter.php
   // Nun der funktionsaufruf counter_init( Text ) aus der datei get_counter.php

   // Ausgabe des Textes

Zur get_counter.php:
PHP-Code:
function counter_initText ){
   
// löscht nun den Platzhalter (ein Bild) im Text

  
if ( !isset( $gesuchteVariable ) ){
      
page_counter++ // und in db speichern usw....
  
}


Ich hoffe damit ist nun klar was gemeint ist....

Hier noch mal ganz simpels beispiel, es ist einfach zu baechten das ich in diesem Beispiel nur in der funktion example() editieren kann:

PHP-Code:
function example(){
   if ( !isset( 
$gesuchteVariable ) ){
      
$count++;
   }
   echo 
$count;
}

example(); // hier $count erhöhen

example(); // hier nicht mehr erhöhen 
ruferp ist offline  
Alt 16.02.2007, 17:06  
Erfahrener Benutzer
 
Registriert seit: 09.03.2005
Beiträge: 219
webbi
Standard

OK, dann setz doch eine globale Variable. In deinem Beispiel:

PHP-Code:
<?php function example(){
   if ( !isset( 
$GLOBALS["gezaehlt"] ) ){
      
$GLOBALS["gezaehlt"] = true;
      
$count++;
   }
   echo 
$count;
}

example(); // hier $count erhöhen

example(); // hier nicht mehr erhöhen
webbi ist offline  
Alt 17.02.2007, 15:23  
Erfahrener Benutzer
 
Registriert seit: 06.04.2006
Beiträge: 128
ruferp
Standard

Sind diese Globalen Variablen dann nur ein Aufruf gültig?

Ich kenne mich da überhaupt nicht aus....
ruferp ist offline  
Alt 17.02.2007, 18:16  
Erfahrener Benutzer
 
Registriert seit: 20.01.2005
Beiträge: 1.557
PHP-Kenntnisse:
Fortgeschritten
Buhmann ist zur Zeit noch ein unbeschriebenes Blatt
Buhmann eine Nachricht über ICQ schicken Buhmann eine Nachricht über MSN schicken
Standard

ausser evtl der $_SESSION variable sind alle variablen nur einen Aufruf lang gültig.
Buhmann ist offline  
Alt 17.02.2007, 18:19  
Erfahrener Benutzer
 
Registriert seit: 06.04.2006
Beiträge: 128
ruferp
Standard

Vielen Dank für eure Hilfe!!!

Die GLOBALS sind dann wohl das richtige für mich....
Werde mich da nun einstudieren!
ruferp ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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 an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Variable in Datenbankentrag asa PHP Tipps 2008 11 22.07.2008 09:51
PHPMailer findet eigene Variable net seejay PHP Tipps 2007 6 04.01.2006 12:55
Variable durch 2. Variable bestimmen Quagga PHP Tipps 2005-2 11 26.10.2005 17:34
[Erledigt] Variable wird nicht erkannt bzw ausgegeben. PHP Tipps 2005-2 4 25.10.2005 18:54
Variable als Variable behandeln ohne den Wert zu verwenden Pain-maker PHP Tipps 2005-2 4 11.09.2005 17:28
Session Variable oder Globale Variable ? PHP Tipps 2005-2 3 27.06.2005 21:49
Variable in Objekt php1 HTML, Usability und Barrierefreiheit 2 25.06.2005 08:08
[Erledigt] Variable in DB Datenbanken 1 17.04.2005 15:01
Variable in Variable Matthiasnet PHP Tipps 2005 6 20.03.2005 23:28
[Erledigt] Fehlermeldung unterdrücken wenn keine variable übergeben... PHP Tipps 2005 6 20.03.2005 13:36
Variable in einer Variable Beatbox PHP Tipps 2005 7 15.01.2005 15:55
Warum wird Variable nicht übergeben??? Anuschka PHP Tipps 2005 2 06.01.2005 13:22
[Erledigt] $_SESSION verwandelt variable auf einem Server in ein Array PHP-Fortgeschrittene 2 16.12.2004 13:25
[Erledigt] Variable erst später definieren? PHP Tipps 2004-2 10 04.12.2004 20:23
variable Variablen requesten PHP Tipps 2004 5 08.06.2004 20:34

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php wenn variable einen bestimmten wert hat, variable php seitenaufruf um eins erhöhen, session variable erst beim aufruf einer funktion setzen, php variable gültig bei wiederaufruf, php variable nur gültig für einen aufruf, seitenaufruf mit variabe, seitenaufruf nur von definierten server gültig, php gültigkeit variablen beim aufruf, session nur für einen aufruf gültig, session variable bei seitenaufruf setzen, php variable bei jedem seitenaufruf 1, php variable nur bei seitenaufruf, php gültigkeitsdauer variable, php variable pro aufruf erhöhen, seitenaufruf definiert variable, php variable bei seiten aufruf um 1 erhöhen, session variable verliert sich, variable php nur eine datei gültig, variable nur im skript gültig php

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:44 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.