Sessions bei Sprachwahl

G

GreenThunder

Hallo,

unter dem Motto "Studieren geht über Probieren" versuch ich mich verschiedenen Dingen im "Learning by Doing" zu nähern.

Ich erstelle eine Website, die zweisprachig sein soll. Entsprechend der Wahl des Users wird entweder eine deutsche oder eine englische Sprachdatei eingebunden. Standard ist deutsch.

Damit dies auch Seitenübergreifend funktioniert will ich Sessions nutzen. Leider klappt das irgendwie nicht, hab immer nur Englisch.

index.php:
PHP:
<?php 
session_start (); 
if (!isset ($_SESSION["lang"])) 
{ 
 include('includes/deu.lang.php'); 
} 
?>
...

<?
include('includes/'.$lang.'.lang.php');
?>

...

<li class="nav">
       <a href="index.php"<? $_SESSION['lang']=deu ?> ><img src="bilder/deutsch.gif" alt="<? echo $deutschefahne; ?>"/>&nbsp;<? echo $deutsch; ?></a>
</li>
<li class="nav">
       <a href="index.php"<? $_SESSION['lang']=eng ?>><img src="bilder/englisch.gif" alt="<? echo $englischefahne; ?>"/>&nbsp;<? echo $englisch; ?></a>
</li>
 
PHP:
<?php
session_start();
$allowed_langs = array('en', 'de');
if(!empty($_GET['lang']) AND in_array($_GET['lang'], $allowed_langs))
{
  $_SESSION['lang'] = $_GET['lang'];
}
switch($_SESSION['lang'])
  {
    case "en":
       include('english.php');
    break;
    case 'de':
    default:
      include('deutsch.php');
}
?>
<a href="skript.php?lang=en">Englisch</a>
<a href="skript.php?lang=de">Deutsch</a>

So sollte das funktionieren.
 
Ich nutze gleich mal den Thread, da es sich bei meinem jetzigen Problem wieder um Sessions handelt.

Zur Registration auf der Seite soll das Formular über 3 Seiten laufen. Dabei sollen die Werte alle per Session weitergeleitet werden. Von Seite 1 zu 2 klappt das auch, aber weiter auf Seite 3 wird es nichts. Kann mir jemand helfen?

Die Datei wird in die index.php includet, weswegen mMn kein extra Sessionstart erfolgen muss.
PHP:
<?

if ($_POST[schritt]==2)
	{
	$_SESSION[]= $_POST['UserUsername'];

	echo $_SESSION[0];
	
	?>
	<ul class="cont">
				<li class="conthead"><? echo $persoenlicheinfos; ?></li>
				<li class="cont"><h3><? echo $schritt; ?> 2/3</h3></li>
				<li class="cont"><form action="index.php?site=register" method="post">
		<table>        
		<tr>
			<td><label><? echo $geschlecht; ?>*:</label></td>
			<td><input type="radio" name="UserGeschlecht"  value="<? echo $mann; ?>"><? echo $mann; ?>
                <input type="radio" name="UserGeschlecht" value="<? echo $frau; ?>"><? echo $frau; ?></td>
		</tr>
		<tr>
			<td><label><? echo $vorname; ?>*:</label></td>
			<td><input type="text" size="30" maxlength="30" name="UserFirstname"></td>
		</tr>
		<tr>
			<td><label><? echo $nachname; ?>*:</label></td>
			<td><input type="text" size="30" maxlength="30" name="UserLastname"></td>
		</tr>
	        <tr>
		        <td><input type="hidden" name="schritt" value="3"> 
			<td><input type="submit" size="15" value="<? echo $weiter; ?>"></td>
		</tr>     
	</table>
	</form> 
	
	</li>
	<li class="contfoot"></li>
	</ul>
	
	<?
	}
	elseif($_POST[schritt]==3)
		{
		?>
        <ul class="cont">
            <li class="conthead"><? echo $aupairinfos; ?></li>
            <li class="cont"><h3><? echo $schritt; ?> 3/3</h3></li>
            <li class="cont">
			<?  echo $_SESSION[0];
 				             </li>
        <li class="contfoot"></li>
        </ul>
        <?
        }
		else{ 

			?>
			
			<ul class="cont">
			<li class="conthead"><? echo $accountinfos; ?></li>
			<li class="cont"><h3><? echo $schritt; ?> 1/3</h3></li>
			<li class="cont">
			<form action="index.php?site=register" method="post">
			<table>  
				<tr>
					<td> <label><? echo $nutzername; ?>*:</label></td>
					<td><input type="text" size="30" maxlength="30" name="UserUsername"></td>
				</tr>
				<tr>
					<td><label><? echo $email; ?>*:</label></td>
					<td><input type="text" size="30" maxlength="30" name="UserMail"></td>
				</tr>
				<tr>
					<td><label><? echo $passwort; ?>*:</label></td>
					<td><input type="password" size="30" maxlength="30" name="UserPass"></td>
				</tr>
				<tr>
					<td><label><? echo $passwortwdh; ?>*:</label></td>
					<td><input type="password" size="30" maxlength="30" name="UserPasswdh"></td>
				</tr>     
				<tr>
         		       <input type="hidden" name=" <? session_name() ?>" value="<? session_id() ?>" >
					<td> <input type="hidden" name="schritt" value="2"> </td>
					<td><input type="submit" size="15" value="<? echo $weiter; ?>"></td>
				</tr>     
			
			</table>    
			</form> 
			
			</li>
			<li class="contfoot"></li>
			</ul>
			<?
			} ?>
 
Hi,
blicke grad nicht wofür man das braucht, aber fehlt dir im Formular von Schritt 2 vielleicht die Session-Infos?:
PHP:
<input type="hidden" name=" <? session_name() ?>" value="<? session_id() ?>" >
 
Hi,
blicke grad nicht wofür man das braucht, aber fehlt dir im Formular von Schritt 2 vielleicht die Session-Infos?:
PHP:
<input type="hidden" name=" <? session_name() ?>" value="<? session_id() ?>" >

Hmm, braucht man scheinbar nicht, denn es klappt nicht egal ob mit oder ohne der Zeile in beiden Schritten.
 
Zurück