Avatar billede zity Nybegynder
23. september 2004 - 17:45 Der er 10 kommentarer og
1 løsning

Dele variable over flere scripts

Hej
Hvordan kan jeg dele en variable over alle de php sider der åbnes på webstedet. Så hvis jeg har en variable der heder $user på den ene side og så trykker på et link på siden og kommer over på en ny php side og vil kalde variablen med f.eks. "print $user".

Kan det lade sig gøre..?
Avatar billede m_els Nybegynder
23. september 2004 - 17:51 #1
Du kan bruge sessions...

Det første du skal gøre er at kalde session_start(); som det absolut første i php dokumentet. Dette skal gøres alle de steder du vil bruge variablerne.

herefter kan du registrere sessions variablen således:

session_register('user');
$_SESSION['user'] = $user;
Avatar billede zity Nybegynder
23. september 2004 - 18:02 #2
Får denne fejl:
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at E:\HTTP\test\dologin.php:9) in E:\HTTP\test\dologin.php on line 10
Avatar billede m_els Nybegynder
23. september 2004 - 18:07 #3
er det første efter <? tagget session_start(); ??
Avatar billede zity Nybegynder
23. september 2004 - 18:53 #4
Jeg logger in via en form i filen login.php som går over til dologin.php og session_start(); er den første php kode i dologin.php
Avatar billede m_els Nybegynder
23. september 2004 - 19:57 #5
kan du ikke poste din kode??
Avatar billede zity Nybegynder
23. september 2004 - 20:05 #6
dologin.php
----------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta name="Generator" content="FreeWEB Builder 0.3">
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>New Page</title>
</head>
<body>
<?php
$username = $_GET['username'];
$password = $_GET['password'];
$filename = 'users/' . $username . '.usr';
if (file_exists($filename))
{
$fid = fopen($filename, "r");
$tmpdb = fgets($fid,2048);
fclose($fid);
$usrdb = explode("|", $tmpdb);

if ($usrdb[1] == $password)
{
print "Logged in as: " . $username;
$Loggetind = "True";
}
else
{
print "Incorrect Password";
}

}
else
{
print "Incorrect Username";
}
?>
</body>
</html>

det er variablen
Avatar billede zity Nybegynder
23. september 2004 - 20:06 #7
det er varablen "$Loggetind = "True";" jeg godt vil kunne bruge på mine andre sider
Avatar billede m_els Nybegynder
23. september 2004 - 20:31 #8
<?php
session_start();

$username = $_GET['username'];
$password = $_GET['password'];
$filename = 'users/' . $username . '.usr';
if (file_exists($filename))
{
$fid = fopen($filename, "r");
$tmpdb = fgets($fid,2048);
fclose($fid);
$usrdb = explode("|", $tmpdb);

if ($usrdb[1] == $password)
{
print "Logged in as: " . $username;
$Loggetind = "True";
session_register('Loggetind');
$_SESSION['Loggetind'] = $Loggetind;
}
else
{
print "Incorrect Password";
}

}
else
{
print "Incorrect Username";
}
?>

Session_start(); skal være det absolut første, også før html...
Avatar billede zity Nybegynder
23. september 2004 - 20:33 #9
Tester det lige i morgen...
Avatar billede zity Nybegynder
24. september 2004 - 07:16 #10
Mange tak det virker... Smid et svar...
Avatar billede m_els Nybegynder
24. september 2004 - 12:46 #11
her kommer det...
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