Avatar billede jkn83 Praktikant
02. maj 2010 - 00:29 Der er 7 kommentarer og
1 løsning

Få username sat i en textbox som value?

Hej...

Jeg har en login form der sender dig til en login.php side som registrerer brugernavnet som en session, hvilket giver dig adgang til nogle sider...

  session_start();
  session_register('username');

Jeg har så en anden side der skal bruge brugernavnet, derfor starter jeg med at kalde session på siden, og bruger en input der ser sådan ud:

<input type="text" name="username" value="<? echo $_POST["username"]; ?>" />

Men når man bruger siden er der intet der vises... Nogen der kan forklare hvordan man får det til at fungere?

Yderligere bliver denne input samt andre input bokse sendt til en side der sætter det i en database, men den kommer med en fejl og viser at der ikke sættes noget brugernavn i databasen i denne forbindelse...
Avatar billede jkn83 Praktikant
02. maj 2010 - 00:31 #1
Det skal lige siges at så snart man logger ind har jeg valgt at echo disse input bokse på login siden med en velkomst hilsen hvor session jo starter... Og så snart man logger ind, vises brugernavnet. Efterfølgende hvis man opdaterer siden og session stadig er registreret, gør den ikke...

Der bruger den så heller ikke login.php siden mere da man jo er logget ind...
Avatar billede inctor Nybegynder
02. maj 2010 - 00:37 #2
Først og fremmest..

<?php SESSION_START(); ?>

på linie 1 i de filer du skal have beskyttet..

Derefter, når folk ER logget ind, så skal du gøre sådan her istedet:

<?php
$_SESSION["username"] = $_POST["username"]; // Eller $_GET["username"];
?>
alt efter hvad du bruger, du forstår nok hvad jeg mener..

Derefter når du skal bruge indholdet af denne session, skal du IGEN huske session_start(); på linie 1 i filen, og du kan hente denne variabel ud ligesom:

<?php
echo $_SESSION["username"];
?>

eller
<?=$_SESSION["username"];?>

Så for at lave et input felt, med indholdet af username, kan du gøre således:

<?php
echo '<input type="text" name="username" value="'.$_SESSION["username"].'" />';
?>

ELLER
<input type="text" name="username" value="<?php echo $_SESSION["username"]; ?>" />

ELLER
<input type="text" name="username" value="<?=$_SESSION["username"];?>" />


Håber du forstår :) - Ellers må du sige til.
Avatar billede jkn83 Praktikant
02. maj 2010 - 01:13 #3
Altså i stedet for at bruge
  session_start();
  session_register('username');
i min login.php fil (som de bliver sendt til via form), skal jeg bruge
  $_SESSION["username"] = $_POST["username"]; // Eller $_GET["username"];
som registrerer brugernavnet i $_SESSION["username"] ?

skal lige have den forklaret :)
Avatar billede inctor Nybegynder
02. maj 2010 - 01:21 #4
Har du MSN? Så kan vi tage den der, og så smider vi løsningen ind her bagefter, mener det står i reglerne at løsningen skal være tilgængelig for alle..

inctor [at] hotmail [dot] com
Avatar billede jkn83 Praktikant
02. maj 2010 - 01:41 #5
Ok fik en hurtig lektion...
session_register blev skiftet ud med
$_SESSION["username"] = $_POST["username"];

Og bliver kaldt i input form med value="<? $_SESSION['username'];" ?>"

Smid et svar :)
Avatar billede inctor Nybegynder
02. maj 2010 - 01:42 #6
her er et svar :)
Avatar billede dkfire Nybegynder
02. maj 2010 - 21:01 #7
Du kan ikke <? $_SESSION['username'];" ?>, du bør skrive
<?php echo $_SESSION['username'];" ?>

Og lige en note:
Gør det til en vane ikke at bruge <? (short open tag) men altid at bruge <?php, da muligheden for short open tag med garanti ikke er til stede på alle servere og sikkert vil forsvinde i nærmeste fremtid.
Avatar billede jkn83 Praktikant
03. maj 2010 - 11:01 #8
det fungerer fint med <? $_SESSION['username'];" ?>
men skal da lige have det i tankerne med short open tag.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester