Ich krisch mit der <Form></Form> plaque

Flame

Erfahrenes Mitglied
Hallo an alle.

Kann mir jemand sagen, was daran falsch ist?

PHP:
echo '<FORM action="<?php=$_SERVER['PHP_SELF']?>">'
   . '<input type="hidden" name="<?=session_name()?>" value="<?=session_id()?>">'
   . '<select name="language">'
   . '<option value="de">Deutsch'
   . '<option value="en">English'
   . '</select>'
   . '<input type="submit">'
   . '</form>';

Ich bekomm folgende Meldung: Parse error: parse error, expecting `','' or `';'' in c:\apache\htdocs\layouts24\temp\scripte\functions\search.inc.php on line 6

MfG
:FLAmE:
 
Wie wäre es mit:
PHP:
<?php
echo '<FORM action="'.$_SERVER['PHP_SELF'].'">'
   . '<input type="hidden" name="'.session_name().'" value="'.session_id().'">'
   . '<select name="language">'
   . '<option value="de">Deutsch'
   . '<option value="en">English'
   . '</select>'
   . '<input type="submit">'
   . '</form>';

?>

mfg, snuu
 
Danke funktioniert super.

Nur habe ich jetzt noch ein Problem.

Wie Ihr sicher mitbekommen habt, versuche ich ne bilinguale Seite zu erstellen.

Nur ***** das mit meiner Session nit. Ich seh die im Browser nicht. :(

Ich habe 2 Seiten.

Seite 1. Ist meine Search.inc.php
In der habe ich ne Suchbox und das Auswahlfenster für die Sprache.

PHP:
session_start (); // Session starten.

include('pathes.inc.php');
include('Sprache.php');
echo '<FORM action="'.$_SERVER['PHP_SELF'].' " method="post">'
   . '<input type="hidden" name="<?=session_name()?>" value="<?=session_id()?>">'
   . '<select name="language">'
   . '<option value="de">Deutsch'
   . '<option value="en">English'
   . '</select>'
   . '<input type="submit">'
   . '</form>';

echo "$text1";

Die 2. Seite heißt Sprache.php
PHP:
<?php 
session_start();

if($language == "en")
    {
$user['Language'] = 'en';
$_SESSION["user_language"] = "en";
    }
  else
    {
$user['Language'] = 'de';
$_SESSION["user_language"] = "de";
    }
$lang = array();
if(!file_exists($lfile = "sprachen/".$user['Language'].".lang.php"))
 { die("Language file '".$lfile."' not found!!"); }
include($lfile);
session_register ("Language");
?>

Demnach müsste ich doch nach Ausführung eine Variable namens $Language haben oder?
Da ja session_register ("Language"); registriert wird.

Warum zeigt er mir diese abder dann in der 1. Seite nicht an?

Ich meine. die Variable $text1 ändert sich je nach ausgewählter Sprache. *grml*
 
Und was bedeutet diese Fehlermeldung?

Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in c:\apache\htdocs\layouts24\temp\scripte\functions\search.inc.php on line 16


Ich kann nix zu finden.

MfG :FLAmE:
 
1. wenn du eine variable regestrierst, dann kannst du sie über $_SESSION['var'] aus wieder abrufen. außerdem regestrierst du Language und hast aber nur die variable language (mit kleinem L)

2. '<input type="hidden" name="<?=session_name()?>" value="<?=session_id()?>">'

du hast dort php-einleitungszeichen drin, die da nicht hingehören. wenn du das mit echo aufrufst, dann dürfen keine einleitungszeichen drin sein, da das sonst falsch interpretiert wird.

das dürfte eigentlich der fehler sein.

PS: ich glaube sogar es gibt gar kein <?= sondern nur <?
 
Zum Fehler:
Mach mal statt
PHP:
<input type="hidden" name="<?=session_name()?>" value="<?=session_id()?>">
dash hier:
PHP:
<input type="hidden" name="<? echo session_name() ?>" value="<? echo session_id() ?>">
 
ich nehme alles zurück. baut den galgen auf, ich hänge mich für mein unwissen ;)

zum thema:

PHP:
   <FORM action="<?php=$_SERVER['PHP_SELF'];?>">
   <input type="hidden" name="<?=session_name();?>" value="<?=session_id();?>">
   <select name="language">
   <option value="de">Deutsch
   <option value="en">English
   </select>
   <input type="submit">
    </form>

mal alles ohne echo usw. und nen semikolon hinter die variablen, weil das dürfte wohl auch der eigentliche fehler sein.
 
Zurück