php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 08.07.2008, 17:40  
Neuer Benutzer
 
Registriert seit: 08.07.2008
Beiträge: 10
drachenmagie befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] session wird nicht uebernommen

Hallo,

nachdem ich nun mehr als eine Woche gebastelt und mich durch so ziemlich saemtliche Foren gesucht habe, brauch ich vllt doch mal eine kompetente Loesung.

Folgendes Projekt steht an, man soll sich auf der Seite Templates (vorgefertigte Briefe) aufrufen koennen und zwar in verschiedenen Spachen.

Das ganze ist bis jetzt wie folgt geregelt:

hier kann man zu naechst sehen wie es aussehen soll:
Kodak Intranetdas ende der url sieht so aus:
index.php?site=template&sub=template2&lang=XXX

und da wo die 3 grossen xxx stehen sollte eigentlich die jeweilige Sprache stehen. Bisher in php4 ging das auch. Seit es geaendert wurde in php5 geht es nicht mehr. das Script dazu sieht so aus.

das ist das startscript in der Indexphp:
PHP-Code:
<?php
session_start
();
session_regenerate_id();

include(
"content/language.php");

?>
die eigentlichen templatedateien sehen so aus:
PHP-Code:
<?php 

include("content/tech/techtemp1.php");


?>
<div id="content">
<pre>
<textarea id="template" cols="120" rows="60" readonly>

<?php print $inhalt?>

<?php print $telefonnummer ?>

</textarea>

</pre>
</div>
und die links dazu sehen so aus:
PHP-Code:
<div class="subItem"><a href="index.php?site=template&sub=techtemplate1&lang=<?php $LANG?>">AIO - cleaning-calibrating </a></div>
findet er nix soll er
PHP-Code:
<?php
 
if(isset($_GET[sub]) && file_exists("templates/".$_GET[sub].".php"))
      include(
"templates/".$_GET[sub].".php");
     else
      include(
templates/nixda.php);
?>
</div>
das ausgeben.

Im Moment ist es so, das er nur die deutschen Templates anzeigt. Das sind die ersten in den Templatedateien und das er die durch anklicken der Sprache erzeugte Session vergisst.
Leider hab ich ziemlich wenig Ahnung und habe das Projekt bisher mit einem Freund realisiert, leider ist der auch mit seinem Latein am ende.
Wo liegt der Fehler und was muesste geaendert werden?

Vielen Dank fuer die Hilfe.
Kathy

Geändert von drachenmagie (08.07.2008 um 18:49 Uhr).
drachenmagie ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 08.07.2008, 18:33  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

Hallo und willkommen im Forum!

Als erstes das hier session_regenerate_id(); ist veraltet.
Dafür nutzt man heutzutage dieses hier
PHP-Code:
$_SESSION 
Wo kommen $LNAG , $telefonnummer und $inhalt her?

Benutze in Zukunft bitte die PHP Tags aus dem Editor um PHP Code darzustellen,das macht das lesen des Codes einfacher für uns!

mfg der Litter
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline  
Alt 08.07.2008, 18:34  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Hallo Kathy, willkommen im Forum.

Bitte editiere Dein Posting und setze sämtliche Codebstandteile in [php] BB Tags.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--

Geändert von nikosch (08.07.2008 um 18:43 Uhr).
nikosch ist gerade online  
Alt 08.07.2008, 18:44  
Neuer Benutzer
 
Registriert seit: 08.07.2008
Beiträge: 10
drachenmagie befindet sich auf einem aufstrebenden Ast
Standard

danke fuer die schnelle antwort. $LNAG ,
$telefonnummer kommt aus der datei languages.php in der alle footer drin sind
PHP-Code:
<?php

 
if(!isset($_GET[lang]) || ($_GET[lang]!="en" && $_GET[lang]!="de"))
  
$_GET[lang]="de";
 
$LANG=$_GET[lang];
if(
$LANG=="de")
{

$telefonnummer 
Telefon:     0800 100 3416
Fax
:    00353 61 70 10 51
$inhalt setzt sich aus den verschiedenen templatdateien zusammen....
PHP-Code:
<?php

 
if(!isset($_GET[lang]) || ($_GET[lang]!="en" && $_GET[lang]!="de"))
  
$_GET[lang]="de";
 
$LANG=$_GET[lang];

if(
$LANG=="de")
{
$inhalt 
Unsere Bearbeitungs-/Referenznummer:


Betr.: Ihr Drucker.....
und daher kommt auch die $LANG.

was muss ich ausser $_SESSION noch angeben, wenn es veraltet ist? 9ch hab zu der session geschichte schon ne menge gefunden, aber nicht wirklich verstanden. sry

danke Kathy

Geändert von drachenmagie (08.07.2008 um 18:48 Uhr).
drachenmagie ist offline  
Alt 08.07.2008, 18:45  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Bitte nicht ignorieren!
Zitat:
Bitte editiere Dein Posting und setze sämtliche Codebstandteile in [php] BB Tags.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online  
Alt 08.07.2008, 18:48  
Neuer Benutzer
 
Registriert seit: 08.07.2008
Beiträge: 10
drachenmagie befindet sich auf einem aufstrebenden Ast
Standard

ich bin dabei
drachenmagie ist offline  
Alt 08.07.2008, 18:52  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Es muß nicht zwingend an der Session liegen.
Zuallererst solltest Du
PHP-Code:
$_GET[lang]
$_GET[sub
durch
PHP-Code:
$_GET['lang']
$_GET['sub'
ersetzen.

Das
PHP-Code:
if($LANG=="de")
{

$telefonnummer 
Telefon:     0800 100 3416 
kann so auch schon mal nicht funktionieren und sollte einen Parser Error werfen.

Die nächste wichtige Aktion wäre
PHP-Code:
error_reporting (E_ALL E_STRICT); 
an den Anfang des Hauptscripts zu setzen.

Dann solltest Du mal testhalber $_GET['lang'] mit var_dump ausgeben lassen.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--

Geändert von nikosch (08.07.2008 um 18:55 Uhr).
nikosch ist gerade online  
Alt 08.07.2008, 19:06  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
Zitat von litterauspirna Beitrag anzeigen
Als erstes das hier session_regenerate_id(); ist veraltet.
Dafür nutzt man heutzutage dieses hier
PHP-Code:
$_SESSION 
Du meinst wohl eher session_register.

Trotzdem: Was macht session_regenrate_id denn in Deinem Code? Weil:
Zitat:
bool session_regenerate_id ( [bool delete_old_session] )

session_regenerate_id() will replace the current session id with a new one, and keep the current session information.
Und wo wird überhaupt $LANG in die Session geschrieben, wie Du oben behauptest?
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online  
Alt 08.07.2008, 19:06  
Neuer Benutzer
 
Registriert seit: 08.07.2008
Beiträge: 10
drachenmagie befindet sich auf einem aufstrebenden Ast
Standard

das resultat von den vorgenommenen veraenderungen sind erstmal ne menge fehlermeldungen:

PHP-Code:
Notice:  Use of undefined constant templates assumed 'templates' in /var/www/web24/html/Kodak/files/template.php on line 100

Notice
:  Use of undefined constant nixda assumed 'nixda' in /var/www/web24/html/Kodak/files/template.php on line 100

Warning
:  Division by zero in /var/www/web24/html/Kodak/files/template.php on line 100

Notice
:  Use of undefined constant php assumed 'php' in /var/www/web24/html/Kodak/files/template.php on line 100

Warning
:  include(php) [function.include]: failed to open streamNo such file or directory in /var/www/web24/html/Kodak/files/template.php on line 100

Warning
:  include() [function.include]: Failed opening 'php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear'in /var/www/web24/html/Kodak/files/template.php on line 100 
und das ist das stueck code was er anmeckert

PHP-Code:
<?php
 
if(isset($_GET['sub']) && file_exists("templates/".$_GET['sub'].".php"))
      include(
"templates/".$_GET['sub'].".php");
     else
      include(
templates/nixda.php);
?>
drachenmagie ist offline  
Alt 08.07.2008, 19:09  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Was soviel bedeutet wie: templates/nixda.php gehört in einen String, sonst werden templates und nixda als Strings interpretiert, dann in INT umgewandelt und durcheinander dividiert. Zum Ergebnis wird php konkateniert und dann versucht das ganze Ergebnis zu includen. Ein gutes Beispiel, warum man sich nicht auf die Ersetzung von Konstanten in Strings verlassen sollte.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online  
 


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
[Erledigt] SESSION Probleme webdino PHP-Fortgeschrittene 8 26.06.2008 18:55
[Erledigt] Session - Variablenübergabe AndiM PHP Tipps 2008 3 04.06.2008 09:23
[Erledigt] Session Problem karina_02 PHP Tipps 2008 6 18.05.2008 22:37
[Erledigt] Session, Cookies, Subdomain ayti PHP Tipps 2008 7 29.04.2008 15:05
Problem bei session Lifetime Cyberbob_at_tot PHP Tipps 2007 5 05.06.2007 17:47
session nach seitenwechsel leer... GELight PHP Tipps 2006 8 17.09.2006 15:17
Frage zur Anwendung einer Session mehrfach... GELight PHP Tipps 2006 10 12.03.2006 16:47
[Erledigt] php session problem :( PHP Tipps 2005-2 5 21.10.2005 16:37
Session wird nicht angelegt PHP Tipps 2005-2 7 24.07.2005 13:35
Kreieren einer Session PHP Tipps 2005 11 28.05.2005 15:16
Session error nach Umstellung auf PHP 5 PHP Tipps 2005 15 13.05.2005 14:35
Session Problem PHP-Fortgeschrittene 3 18.02.2005 14:37
[Erledigt] Formulardaten in einer Session speichern, per Link übergeben PHP Tipps 2004-2 2 29.12.2004 15:47
[Erledigt] Hilfe...PhpBB Session Problem!! PHP Tipps 2004-2 2 15.12.2004 18:28

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php vergisst session id, php vergisst session, session vergisst inhalt, session_regenerate_id no such file or directory

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:54 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