PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   PHP Developer Forum (https://www.php-resource.de/forum/php-developer-forum/)
-   -   Webseite 2-Sprachig (https://www.php-resource.de/forum/php-developer-forum/83652-webseite-2-sprachig.html)

noob_in_php 04-05-2007 04:45

Weil ich noch ein Anfänger bin vielleicht. Hab ich doch erwähnt! für euch mag das hier alles selbstverständlich sein, für mich nicht. erkenne aber gerade selbst den fehler und werds nochmal probieren.

noob_in_php 04-05-2007 04:48

Habe den link jetzt geändert und auf index.php?lang=de und en gesetzt aber weder default noch nach klicken auf den links weden die texte angezeigt.


edit:
übrigens der platz für die texte ist vergeben das merke ich anhand den breaks aber wie gesagt sie werden nich angezeigt.

DivDax 04-05-2007 04:48

Anfänger hin oder her, das tut relativ wenig zur Sache.
Selbst du solltest Forenregeln lesen und anwenden können, oder etwa nicht? ;)

Es wird auch vielen Anfängern geholfen, wenn man sieht, dass Eigeninitiative vorhanden ist. ;)

EDIT:
Poste den gesamten Code, sonst kann man nichts nachvollziehen... ;)

noob_in_php 04-05-2007 05:03

Ja da hast du recht... habe ich übersehen..

so das ist meine index.php

1. Versuch

index.php

PHP-Code:

switch ($_GET["lang"]) {
    case 
"de":
        include(
"http://www.domäne.de/lang_de.php");
        break;
    case 
"en":
        include(
"http://www.domäne.de/lang_en.php");
        break;
    default:
        include(
"http://www.domäne.de/lang_de.php");
        break;



aufruf der daten aus der text datei:
PHP-Code:

echo $info[5]; </H3>
<
P>
echo 
$info[0]; <BR>
echo 
$info[1]; <br>
echo 
$info[2]; <br>
echo 
$info[3];<br>
echo 
$info[4]; </P>


echo 
$allgemeininfo[0]; 
<
A href="link.de"> echo $allgemeininfo[1];</A>
<
A href="link.de"> echo $allgemeininfo[2]; </A>
<
A href="link.de"> echo $allgemeininfo[3]; </A>
<
A href="link.de"> echo $allgemeininfo[4]; </A

Textdateien:
PHP-Code:

$info=array(
//0
  //0
  
"text",
  
//1
  
"text",
  
//2
  
"text",
  
//3
  
"text",
  
//4
  
"text",
  
//5
  
"text",
  );

$allgemeinlinfo=array(
//0
  //0
  
"text",
  
//1
  
"text",
  
//2
  
"text",
  
//3
  
"text",
  
//4
  
"text",
  ); 

^^
das gleiche nochmal in englisch

die links für den sprachwechsel habe ich noch nicht. wollte erstmal das es überhaupt funktioniert bevor man die sprache noch umstellen kann. wie schon erwähnt müsste ich auch den sprachwechsel in eine javascript datei einbetten nur das halt php in einem javascript nicht läuft. und eine session läuft schon auf meiner seite wegen dem login.

noob_in_php 04-05-2007 05:14

Habe was rausgefunden:

wenn ich anstatt:
index.php
PHP-Code:

switch ($_GET["lang"]) {
case 
"de":
include(
"http://www.domäne.de/lang_de.php");
break;
case 
"en":
include(
"http://www.domäne.de/lang_en.php");
break;
default:
include(
"http://www.domäne.de/lang_de.php");
break;


--->
index.php
PHP-Code:

switch ($_GET["lang"]) {
case 
"de":
include(
"lang_de.php");
break;
case 
"en":
include(
"lang_en.php");
break;
default:
include(
"lang_de.php");
break;


schreibe, dann werden wenigstens die deutschen texte als default geladen und angezeigt! möchte aber nicht für jedes tpl 2 lang_ dateien haben.

irgendwas mit den register_globals? wo schreibe ich das hin und wie siehts genau aus?

noob_in_php 04-05-2007 05:20

So langsam wird es was!

habe jetzt den link von dir wieder eingebaut:

<a href="index.php?lang=de">Deutsch</a> - <a href="index.php?lang=en">English</a>

jetzt lässt sich die sprache schon umschalten funkt problemlos!!

jetzt fehlt nur noch das mit dem pfad der lang dateien! ich möchte die gerne auf root liegen haben und mit alle tpls drauf zugreifen können. nur das dann kein text angeueigt wird. denke das liegt an den register_globals!

wie schreibe ich diese funktion und wohin? in die index, textdatei??

noob_in_php 04-05-2007 05:32

Habe jetzt versucht den befehl register_globals einzubinden!

zum einen in der index.php
PHP-Code:

register_globals $firmeninfo$allgemeininfo

switch ($_GET["lang"]) {
    case 
"de":
        include(
"http://www.domäne.de/lang_de.php");
        break;
    case 
"en":
        include(
"http://www.domäne.de/lang_en.php");
        break;
    default:
        include(
"http://www.domäne.de/lang_de.php");
        break;




zum anderen in der text datei

PHP-Code:

register_globals $firmeninfo$allgemeininfo

$firmeninfo
=array(
//0
  //0
  
"text",
  
//1
  
"text",
  
//2
  
"text",
  
//3
  
"text",
  
//4
  
"text",
  
//5
  
"text",
  );

$allgemeininfo=array(
//0
  //0
  
"text",
  
//1
  
"text",
  
//2
  
"text",
  
//3
  
"text",
  
//4
  
"text",
  ); 

Folgender fehler kommt dann zustande:
Parse error: syntax error, unexpected T_VARIABLE in /is/htdocs/wp1050442_I4VP0FSVFT/lang_en.php on line 3

EDIT:
Brauche ich das register_globals überhaupt oder ist das unnötig? liegt es an was anderem, das die texte nicht eingebunden werden wenn ich mit der url arbeite?
wenn die textdateien im gleichen ordner liegen, dann funkt es bestens.

das problem ist, dass ich auf verschiedenen subseiten immer wieder die gleichen lang_ dateien einbinden möchte. so müsste ich dann für jedes tpl eigene lang dateien schreiben oder jedesmal die pfade anpassen.
mit dem einmaligen pfad http://domäne.de/lang_de.php für die switch funktion wäre alles viel einfacher.

Habs jetzt auch mit global, $global["info"] usw ausprobiert es funktioniert gar nichts. die texte werden einfach nicht übernomen. hat denn keiner mehr eine idee oder seit ihr schon alle schlafen gegangen? :)

stekoe2000 04-05-2007 07:56

http://de3.php.net/register_globals das willst du dir durchlesen.

Ricola 04-05-2007 13:10

ich würde sagen wenn
allow_url_fopen
auf 0 also Null steht in deinem server dann läuft das eventuell mit
deiner " include("http://www.domäne.de/lang_de.php"); " nicht
desewegen habe ich mir solch sachen damit erspart,
PHP-Code:

<?php
function outride($item) {
$absolute_include="$item";
$folder_depth substr_count($_SERVER["PHP_SELF"] , "/");
if(
$folder_depth == false$folder_depth 1;
include(
str_repeat("../"$folder_depth 1) . $absolute_include);
}

if ( !isset(
$_SESSION['lang']) )
{
outride("lang_en.php");
$_SESSION['lang'] = "en";
}
else
{
outride("lang_".$_SESSION['lang'].".php");
}
?>

das ist soetwas wie ein absoluter include, sollte mal die aktuelle
seite ein paar order tiefer stehen hast trotzdem erfolgreich includiert =)


zu dem thema mit den case, also ich bin icht script faulm aber warum
immer rmehr arbeit machen als nötig?
der CASE fall: <a></a> einfügen, case erweitern, und datei anlegen-> 3 schritte
mein fall: <a></a> einfügen und datei anlegen-> 2 schritte

und zu dem was DivDax meinte, warum zur action.php verlinken:
ich bin keine grösse freudin von request salate in der adress zeile
des browosers, meine projekte sind suchmachinen-freundlich
(das sie auch noch eine routine habe die prüft welche sprache der
user bzw bot läuft) (das hier sind nur snippets von) dewegen sind unsere projekte auch auf
verschiedensprachigen suchmachinen in ihren jeweiligen sprachen
zu finden, (die spracherkennungs-routine ist aber gleich eines der
ersten scripts die starten, wenn der user trotzdem eine andere
sprache wählen möchte kann er das auch tun ;)
wie war das, um so kürzer die url um so besser kann man sich die
merken, also ich finde so schlecht ist sie nicht aber ich wollte nur
informieren ;P

noob_in_php 04-05-2007 14:49

Hallo habe jetzt mal deine variante probiert. es ist wie vorher, es kommen keine fehlermeldung, es wird aber auch kein text eingefügt.

hier der code im index:

PHP-Code:

<?php


function outride($item) {
$absolute_include="$item";
$folder_depth substr_count($_SERVER["PHP_SELF"] , "/");
if(
$folder_depth == false$folder_depth 1;
include(
str_repeat("../"$folder_depth 1) . $absolute_include);
}

if ( !isset(
$_SESSION['lang']) )
{
outride("lang_en.php");
$_SESSION['lang'] = "en";
}
else
{
outride("lang_".$_SESSION['lang'].".php");
}
?>


die links zum sprahwechsel.:

PHP-Code:

<a href="index.php?lang=de">Deutsch</a> - <a href="index.php?lang=en">English</a


die text dateien:

PHP-Code:

<?php

$firmeninfo
=array(
//0
  //0
  
"text",
  
//1
  
"text",
  
//2
  
"text",
  
//3
  
"text",
  
//4
  
"text",
  
//5
  
"text",
  );

$allgemeininfo=array(
//0
  //0
  
"text",
  
//1
  
"text",
  
//2
  
"text",
  
//3
  
"text",
  
//4
  
"text",
  );
?>

aufruf der daten von der index
PHP-Code:

<H3><?php echo $firmeninfo[5]; ?></H3>
<P><?php echo $firmeninfo[0]; ?><BR><?php echo $firmeninfo[1]; ?><br><?php echo $firmeninfo[2]; ?><br><?php echo $firmeninfo[3]; ?><br><?php echo $firmeninfo[4]; ?></P>


Ricola 04-05-2007 15:14

Zitat:

Original geschrieben von noob_in_php
Hallo habe jetzt mal deine variante probiert. es ist wie vorher, es
kommen keine fehlermeldung, es wird aber auch kein text eingefügt.

stell mal
PHP-Code:

error_reporting(E_ALL);
var_dump($_SESSION); 

nach ganz oben i der index,
dann schliesse bitte den browser damit die sessions geleert werden,
so die emedungen di edu jetzt bekommst poste diese mal,
und genau so klicke mal auf einen link mit action.php,
udn poste diese meldungen auch mal,
ansonsten geb mir mal nen anhang mit, ich schau mir das mal an =)

EDIT:
ich denke mal dass die kombination bei dir nicht ganz so möchte
deswegen, naj bei mir laufen alle =)


noob_in_php 04-05-2007 15:21

Habe das mal probiert und ganz oben vor dem html syntax geschrieben.

jetzt kommen auch mal ein paar nützliche meldungen (für euch zumindestens).



PHP-Code:

NoticeUndefined variable_SESSION in /is/htdocs/wp1050442_I4VP0FSVFT/phptest/index2.php on line 3
NULL 


Notice
Undefined variablefirmeninfo in /is/htdocs/wp1050442_I4VP0FSVFT/phptest/index2.php on line 130


Notice
Undefined variablefirmeninfo in /is/htdocs/wp1050442_I4VP0FSVFT/phptest/index2.php on line 131


Notice
Undefined variablefirmeninfo in /is/htdocs/wp1050442_I4VP0FSVFT/phptest/index2.php on line 131


Notice
Undefined variablefirmeninfo in /is/htdocs/wp1050442_I4VP0FSVFT/phptest/index2.php on line 131


Notice
Undefined variablefirmeninfo in /is/htdocs/wp1050442_I4VP0FSVFT/phptest/index2.php on line 131


Notice
Undefined variablefirmeninfo in /is/htdocs/wp1050442_I4VP0FSVFT/phptest/index2.php on line 131




Notice
Undefined variableallgemeininfo in /is/htdocs/wp1050442_I4VP0FSVFT/phptest/index2.php on line 134


Notice
Undefined variableallgemeininfo in /is/htdocs/wp1050442_I4VP0FSVFT/phptest/index2.php on line 135


Notice
Undefined variableallgemeininfo in /is/htdocs/wp1050442_I4VP0FSVFT/phptest/index2.php on line 136


Notice
Undefined variableallgemeininfo in /is/htdocs/wp1050442_I4VP0FSVFT/phptest/index2.php on line 137


Notice
Undefined variableallgemeininfo in /is/htdocs/wp1050442_I4VP0FSVFT/phptest/index2.php on line 138 

hoffe du kannst was mit anfangen.?

Kropff 04-05-2007 15:32

das sind keine fehler sondern nur hinweise auf schlampige programmierung. infos dazu findest du hier

aber das hier sollte dir zu denken geben:
PHP-Code:

NoticeUndefined variable_SESSION 

da fehlt ja wohl was.

gruß
peter

Ricola 04-05-2007 15:37

ich würde sagen das deine index die arrays nicht sieht, weil dies nicht
einen standard entspricht denn man beim programieren haben sollte ;P
ich bastel mal schnell was zusammen und lerne etwas draus =)
aber nutze das, weil nicht jeder würde so helfen ;)
bis gleich

Ricola 04-05-2007 15:37

ups was war das denn ein doppel post?
lol xD


Alle Zeitangaben in WEZ +2. Es ist jetzt 18:59 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG