/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Problem efter flytning til nyt webhotel
Fra : Bertel Lund Hansen


Dato : 05-09-06 08:08

Hej alle

Jeg er ved at løse endnu et problem der er opstået efter at jeg
har flyttet til et webhotel.

Jeg har en 'styrefil' der opsætter rammer og menuer og så
inkluderer indhold alt efter menuvalget.

Et af menupunkterne er en side hvor man kan vælge mellem dansk og
engelsk sprog. Det valg skal kunne huskes på alle de tilhørende
sider (med bridgeberegninger).

Siden med sprogvalget indeholder noget forklaring og så denne her
formular (?page=sprogvalg sørger blot for at siden kalder sig
selv):

   <form action='?page=sprogvalg' method='post'>
   <p class='p_input'>
   <input type='submit' name='language' value='Dansk'>
   <input type='submit' name='language' value='English'>
   </p>
   </form>

Styrefilen starter således (idet session_start() er aktiveret i forvejen):

   // Hvis sprogvalg er foretaget af brugeren, skift da til valgte sprog:
   if (isset($_POST['language'])) $_SESSION['sprog'] = $_POST['language'];
   // Hvis der ikke er valgt et sprog, vælges standardsprog:
   if (!isset($_SESSION['sprog'])) $_SESSION['sprog'] = 'Dansk';

Det ser ud til at virke på siden med sprogvalg (der skiftes sprog
med det samme), men så snart man vælger en anden side, skifter
sproget over til dansk igen.

Jeg har også forsøgt at indsætte

   <? if (isset($_POST['language'])) $_SESSION['sprog'] = $_POST['language']; ?>

som første linje i siden med sprogvalg, men det gør ingen forskel.

Lige nu er det kun siden "Scorer" jeg prøver at få til at virke først.

--
Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/

 
 
Bertel Lund Hansen (05-09-2006)
Kommentar
Fra : Bertel Lund Hansen


Dato : 05-09-06 08:10

Bertel Lund Hansen skrev:

> Jeg er ved at løse endnu et problem der er opstået efter at jeg
> har flyttet til et webhotel.

Og så lige det nødvendige link:

http://bertel.lundhansen.dk/bridge/bridgeberegning.php

--
Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/

Jesper Brunholm (05-09-2006)
Kommentar
Fra : Jesper Brunholm


Dato : 05-09-06 09:48

Bertel Lund Hansen skrev:
> Et af menupunkterne er en side hvor man kan vælge mellem dansk og
> engelsk sprog. Det valg skal kunne huskes på alle de tilhørende
> sider (med bridgeberegninger).
>
> Siden med sprogvalget indeholder noget forklaring og så denne her
> formular (?page=sprogvalg sørger blot for at siden kalder sig
> selv):
>
>    <form action='?page=sprogvalg' method='post'>
>    <p class='p_input'>
>    <input type='submit' name='language' value='Dansk'>
>    <input type='submit' name='language' value='English'>
>    </p>
>    </form>
>
> Styrefilen starter således (idet session_start() er aktiveret i forvejen):
>
>    // Hvis sprogvalg er foretaget af brugeren, skift da til valgte sprog:
>    if (isset($_POST['language'])) $_SESSION['sprog'] = $_POST['language'];

Dvs. du lægger en variabel i $_SESSION['sprog'] som du ikke har
kontrolleret på nogen måde? (eller foregår kontrollen andetsteds?)

>    // Hvis der ikke er valgt et sprog, vælges standardsprog:
>    if (!isset($_SESSION['sprog'])) $_SESSION['sprog'] = 'Dansk';

Jeg ville tjekke at $_POST og $_SESSION indeholder det forventede med
print_r() funktionen. Det bliver pænest ved at sæt <pre> tags om:

echo '<pre>';
print_r($_POST);
echo '</pre>';

>    <? if (isset($_POST['language'])) $_SESSION['sprog'] = $_POST['language']; ?>

det er et banalt spørgsmål, men nu jeg ser den linje kode: du har
short-tags enabled ikke?

Har du en opsætning så du får fejlmeddelelser fra din PHP hvis der er
noget der ikke virker? Hvis ikke, vil jeg godt anbefale det, det gør
livet noget lettere hvis den brokker sig når man fx. bruger varibler som
den ikke kan genkende osv.

mvh

Jesper Brunholm

Bertel Lund Hansen (05-09-2006)
Kommentar
Fra : Bertel Lund Hansen


Dato : 05-09-06 10:02

Jesper Brunholm skrev:

> Dvs. du lægger en variabel i $_SESSION['sprog'] som du ikke har
> kontrolleret på nogen måde? (eller foregår kontrollen andetsteds?)

Kontrollen er irrelevant for problemet.

>>    <? if (isset($_POST['language'])) $_SESSION['sprog'] = $_POST['language']; ?>

> det er et banalt spørgsmål, men nu jeg ser den linje kode: du har
> short-tags enabled ikke?

Short-tags - det er det med at jeg kun skriver <? ? Hvis ja, så
er det enabled. Alle siderne virker som de skal med dansk sprog.

> Har du en opsætning så du får fejlmeddelelser fra din PHP hvis der er
> noget der ikke virker?

Ja, jeg får et praj og et linjenummer.

--
Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/

Jesper Brunholm (05-09-2006)
Kommentar
Fra : Jesper Brunholm


Dato : 05-09-06 10:22

Bertel Lund Hansen skrev:
>> Dvs. du lægger en variabel i $_SESSION['sprog'] som du ikke har
>> kontrolleret på nogen måde? (eller foregår kontrollen andetsteds?)
>
> Kontrollen er irrelevant for problemet.

enig, jeg undrede mig bare

>>>    <? if (isset($_POST['language'])) $_SESSION['sprog'] = $_POST['language']; ?>
>
>> det er et banalt spørgsmål, men nu jeg ser den linje kode: du har
>> short-tags enabled ikke?
>
> Short-tags - det er det med at jeg kun skriver <? ? Hvis ja, så
> er det enabled. Alle siderne virker som de skal med dansk sprog.

godt nok, jeg blev bare selv vældigt konfunderet da jeg på et tidspunkt
skiftede til et webhotel hvor mine <?= ikke virkede, men måtte udskiftes
med <?php echo fordi der ikke var short-tags enabled.

Når du også får fejlmeddelelser, kan jeg kun foreslå at kigge på session
og post - indholdet, hvis det er som forventet, kan jeg ikke komme med
flere ideer uden at se noget mere kode.

mvh

Jesper Brunholm

Bertel Lund Hansen (06-09-2006)
Kommentar
Fra : Bertel Lund Hansen


Dato : 06-09-06 11:01

Jesper Brunholm skrev:

>> Kontrollen er irrelevant for problemet.

> enig, jeg undrede mig bare

'Kontrollen' er i øvrigt at jeg har en switch der reagerer på
strengen "English" og som som default vælger dansk (kan udvides
senere til andre sprog). Så der er ikke noget sikkerhedsproblem.

Jeg forstår stadig ikke problemet, men nu har jeg løst opgaven på
en anden og mere brugervenlig måde. Det viste sig nemlig at jeg
bare kunne have en startfil hvor der kun stod:

   <?
   $_SESSION['sprog'] = 'Dansk';
   include 'beregning.inc';
   ?>

og en tilsvarende med 'English'.

Alle siderne switcher så på $_SESSION['sprog'], og det virker. I
stedet for at have en separat side med sprogvalg, har jeg nu
anbragt links i menuen til disse startfiler.

--
Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/

Jesper Brunholm (06-09-2006)
Kommentar
Fra : Jesper Brunholm


Dato : 06-09-06 14:29

Bertel Lund Hansen skrev:
> Jeg forstår stadig ikke problemet, men nu har jeg løst opgaven på
> en anden og mere brugervenlig måde. Det viste sig nemlig at jeg
> bare kunne have en startfil hvor der kun stod:
>
>    <?
>    $_SESSION['sprog'] = 'Dansk';
>    include 'beregning.inc';
>    ?>
>
> og en tilsvarende med 'English'.
>
> Alle siderne switcher så på $_SESSION['sprog'], og det virker. I
> stedet for at have en separat side med sprogvalg, har jeg nu
> anbragt links i menuen til disse startfiler.

det må da, udover at være en løsning, også bidrage med den fordel at man
kan linke til en given side på et specifikt sprog?

mvh

Jesper Brunholm

Bertel Lund Hansen (06-09-2006)
Kommentar
Fra : Bertel Lund Hansen


Dato : 06-09-06 15:03

Jesper Brunholm skrev:

> det må da, udover at være en løsning, også bidrage med den fordel at man
> kan linke til en given side på et specifikt sprog?

Hvordan det? Som det er nu kan man ikke, eller også er der noget
jeg ikke ved. Man kan da ikke sætte en sessionvariabel i et link?

--
Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/

Jesper Brunholm (06-09-2006)
Kommentar
Fra : Jesper Brunholm


Dato : 06-09-06 20:53

Bertel Lund Hansen skrev:
> Jesper Brunholm skrev:
>
>> det må da, udover at være en løsning, også bidrage med den fordel at man
>> kan linke til en given side på et specifikt sprog?
>
> Hvordan det? Som det er nu kan man ikke, eller også er der noget
> jeg ikke ved.

Nu vil jeg passe vældigt meget på, for jeg er _helt_ sikker på at jeg
ikke har bedre styr på din løsning end dig, men det ser for mig ud til at
<http://bertel.lundhansen.dk/bridge/bridgeberegning.php?page=hvilkenscore>
og
<http://bertel.lundhansen.dk/bridge/bridgecomputation.php?page=hvilkenscore>

er den samme side, men på hvert sit sprog, ligesom henholdsvis

<http://bertel.lundhansen.dk/bridge/bridgeberegning.php?page=pointfordeling>
og
<http://bertel.lundhansen.dk/bridge/bridgecomputation.php?page=pointfordeling>

Så vidt jeg kan se er såvel sprog- som ønsket-side- informationen lagret
i urlen (i kraft af henholdsvis filnavnet og page-variablen), men jeg
overfortolker måske det jeg ser?

> Man kan da ikke sætte en sessionvariabel i et link?

nej, et session id, men mig bekendt ikke en variabel, helt enig.

mvh

Jesper Brunholm

Bertel Lund Hansen (06-09-2006)
Kommentar
Fra : Bertel Lund Hansen


Dato : 06-09-06 21:13

Jesper Brunholm skrev:

> Så vidt jeg kan se er såvel sprog- som ønsket-side- informationen lagret
> i urlen (i kraft af henholdsvis filnavnet og page-variablen)

Nå ja. Jeg havde mine tanker et helt andet sted.

--
Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/

Søg
Reklame
Statistik
Spørgsmål : 177516
Tips : 31968
Nyheder : 719565
Indlæg : 6408629
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste