Avatar billede akki Nybegynder
06. maj 2005 - 09:31 Der er 18 kommentarer og
1 løsning

session virker ikke..

Jeg kan ikke få session til at virker..
hvad gør jeg galt

<?
session_start();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
    <title>Login</title>
    <link href="/style.css" rel="stylesheet" type="text/css">
</head>

<body style="font-family: tahoma;">
<?
require ("config.php");

if ($e ==  "1") {
echo "<p>Please Login</p>";
}
?>
<h3>Simple CMS Login</h3>
<p><img src='img/security.gif' title='please login'></p>
<form action="login.php" method="post" name="frm">
<table cellspacing="4" cellpadding="4" style="border-bottom-width: thin; border-left-width: thin; border-right-width: thin; border-top-width: thin; border-style: dotted; border-color: red;">
    <tr>
        <td>username</td>
        <td><input type="text" name="formlogin" class="cssborder"></td>
    </tr>
    <tr>
        <td>password</td>
        <td><input type="password" name="formpass" class="cssborder"></td>
    </tr>
</table>
<br> <input type="submit" value="login" class="cssborder">   
</form>

<?
echo "formlogin=$_POST[formlogin]";
echo "<br>formpass=$_POST[formpass]";
echo "<br>login=$login";
echo "<br>pass=$pass";

if ($_POST[formpass] == $pass && $_POST[formlogin] == $login) {
    $loggedin = "1";
    session_register("loggedin");
   
//logged in so run a javascript redirect to admin page.
?>
<script language="javascript">
<!--
location.replace("admin2");
-->
</script>

    <h4><a href='admin2'>you are now logged in, continue to the admin section</a></h4>
<?
}
?>
<? echo" $loggedin " ?>
<p><a href="login.php"><small>reload</small></a></p>
</body>
</html>
Avatar billede Slettet bruger
06. maj 2005 - 10:07 #1
Du starter sessioner rigtigt... Hvad er dit problem?
Avatar billede dulius Nybegynder
06. maj 2005 - 10:07 #2
session_register("variabel") er en forældret og frarådet metode. Sæt i stedet for dine sessions sådan her: $_SESSION["loggedin"] = 1;
Desuden bør du i stedet for at skrive $_POST[formpass] og $_POST[formlogin] skrive $_POST["formpass"] og $_POST["formlogin"]. Selvom det andet sikkert vil virke.
Avatar billede dulius Nybegynder
06. maj 2005 - 10:15 #3
Se desuden dette link: http://www.php.net/manual/en/function.session-register.php

Bid mærke i dette: " If you want your script to work regardless of register_globals, you need to instead use the $_SESSION array as $_SESSION entries are automatically registered. If your script uses session_register(), it will not work in environments where the PHP directive register_globals  is disabled." - kan være register_globals er slået fra? Så vil din måde at bruge sessions på ikke virke. Så skal du bruge $_SESSIONS arrayet i stedet.

Mvh. Julius
Avatar billede Slettet bruger
06. maj 2005 - 10:29 #4
ahh du har nok ret Julius. Jeg havde bare svært ved at finde en løsning på et problem der ikke var stillet :o)
Avatar billede akki Nybegynder
09. maj 2005 - 09:42 #5
koden ser nu sådan ud
virker dog stadig ikke
<?
session_start();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
    <title>Login</title>
    <link href="/style.css" rel="stylesheet" type="text/css">
</head>

<body style="font-family: tahoma;">
<?
require ("config.php");

if ($e ==  "1") {
echo "<p>Please Login</p>";
}
?>
<h3>Simple CMS Login</h3>
<p><img src='img/security.gif' title='please login'></p>
<form action="login.php" method="post" name="frm">
<table cellspacing="4" cellpadding="4" style="border-bottom-width: thin; border-left-width: thin; border-right-width: thin; border-top-width: thin; border-style: dotted; border-color: red;">
    <tr>
        <td>username</td>
        <td><input type="text" name="formlogin" class="cssborder"></td>
    </tr>
    <tr>
        <td>password</td>
        <td><input type="password" name="formpass" class="cssborder"></td>
    </tr>
</table>
<br> <input type="submit" value="login" class="cssborder">   
</form>

<?
//echo "formlogin=$formlogin";
//echo "<br>formpass=$formpass";
//echo "<br>login=$login";
//echo "<br>pass=$pass";

if ($_POST["formpass"] == $pass && $_POST["formlogin"] == $login) {
    $_SESSION["loggedin"] = "1";

    //session_register("loggedin");
    //$loggedin = "1";
//logged in so run a javascript redirect to admin page.
?>
<script language="javascript">
<!--
location.replace("admin2");
-->
</script>

    <h4><a href='admin'>you are now logged in, continue to the admin section</a></h4>
<?
}
?>

<p><a href="login.php"><small>reload</small></a></p>
</body>
</html>
Avatar billede fixxxer Nybegynder
09. maj 2005 - 09:48 #6
Adskil din HTML kode fra din PHP header

Hvis du sender en SESSION-header efter at headeren er sendt (og det er den når det første HTML sendes til browseren) så burde PHP faktisk melder fejl.. det kan dog være at en snarrådig server-administrator har slået alt debuging af på webserveren..

Et eks kunne være:


<?
session_start();
require ("config.php");

if ($_POST["formpass"] == $pass && $_POST["formlogin"] == $login)
{
    $_SESSION["loggedin"] = "1";
}

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
    <title>Login</title>
    <link href="/style.css" rel="stylesheet" type="text/css">
</head>

<body style="font-family: tahoma;">
<?
if ($e ==  "1") {
echo "<p>Please Login</p>";
}
?>
<h3>Simple CMS Login</h3>
<p><img src='img/security.gif' title='please login'></p>
<form action="login.php" method="post" name="frm">
<table cellspacing="4" cellpadding="4" style="border-bottom-width: thin; border-left-width: thin; border-right-width: thin; border-top-width: thin; border-style: dotted; border-color: red;">
    <tr>
        <td>username</td>
        <td><input type="text" name="formlogin" class="cssborder"></td>
    </tr>
    <tr>
        <td>password</td>
        <td><input type="password" name="formpass" class="cssborder"></td>
    </tr>
</table>
<br> <input type="submit" value="login" class="cssborder">   
</form>

<?
    if ($_SESSION["loggedin"] = "1")
    {
?>
<script language="javascript">
<!--
location.replace("admin2");
-->
</script>

    <h4><a href='admin'>you are now logged in, continue to the admin section</a></h4>
<?
    }
?>

<p><a href="login.php"><small>reload</small></a></p>
</body>
</html>
Avatar billede akki Nybegynder
09. maj 2005 - 09:53 #7
det virker ikke lige.. nu går siden bare i loop..
Avatar billede fixxxer Nybegynder
09. maj 2005 - 09:54 #8
Ok, så er der nok noget grundlæggende php, javascript og html der kokser for dig.

Hvorfor vil du i det hele taget redirect via javascript?
Avatar billede fixxxer Nybegynder
09. maj 2005 - 09:55 #9
Og hvis den går i loop er det jo godt, for så virker det :-)

Men du sender folk samme sted hen, så de bliver redirected igen, og igen og igen ...
Avatar billede akki Nybegynder
09. maj 2005 - 09:57 #10
har fået denne løsning, på filen som tjekker om du er logget ind.
Prøv at skift linjen "if ($loggedin != "1"){" ud med:


if ($_SESSION[loggedin] != "1"){
Avatar billede fixxxer Nybegynder
09. maj 2005 - 09:57 #11
<?
session_start();
require ("config.php");

if ($_POST["formpass"] == $pass && $_POST["formlogin"] == $login)
{
    $_SESSION["loggedin"] = "1";
}

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
    <title>Login</title>
    <link href="/style.css" rel="stylesheet" type="text/css">
</head>

<body style="font-family: tahoma;">
<?
if ($e ==  "1") {
echo "<p>Please Login</p>";
}
?>
<h3>Simple CMS Login</h3>
<p><img src='img/security.gif' title='please login'></p>
<form action="login.php" method="post" name="frm">
<table cellspacing="4" cellpadding="4" style="border-bottom-width: thin; border-left-width: thin; border-right-width: thin; border-top-width: thin; border-style: dotted; border-color: red;">
    <tr>
        <td>username</td>
        <td><input type="text" name="formlogin" class="cssborder"></td>
    </tr>
    <tr>
        <td>password</td>
        <td><input type="password" name="formpass" class="cssborder"></td>
    </tr>
</table>
<br> <input type="submit" value="login" class="cssborder">   
</form>

<?
    if ($_SESSION["loggedin"] = "1")
    {
?>
    <h4><a href='admin'>you are now logged in, continue to the admin section</a></h4>
<?
    }
?>

<p><a href="login.php"><small>reload</small></a></p>
</body>
</html>


Du havde INGEN gavn af den redirect. Det virker som det er her.
Avatar billede fixxxer Nybegynder
09. maj 2005 - 09:58 #12
Kikker du overhovedet i de eksempler jeg giver dig?

Det er lige præcis også det jeg gør i scriptet.. Copy/paste and you're all set.
Avatar billede fixxxer Nybegynder
09. maj 2005 - 10:01 #13
Kreativt...
Avatar billede akki Nybegynder
09. maj 2005 - 10:01 #14
ja.. det er en anden fil hvor fejlen har ligget. det fandt jeg ud af via den anden tråd jeg her inde har oprettet
Avatar billede fixxxer Nybegynder
09. maj 2005 - 10:04 #15
Tja, det må du vil selv om.. Din kode virker enormt dårligt sat sammen, men det må du selv finde ud af ...
Avatar billede akki Nybegynder
09. maj 2005 - 10:04 #16
ved ikke hvad fanden der sker med den fucking webserver hvor jeg for hostet tingene, men alt hvad der virker lokalt på min webserver, virker ikke på den side jeg bliver hostet på. har lige måtte oprette en anden trød herinde med et nyt problem.. forstå ikke hvad fanden der sker med min host
http://www.eksperten.dk/spm/616243
Avatar billede akki Nybegynder
09. maj 2005 - 10:05 #17
det er ikke min kode. det er et CMS system som jeg har downloadet, som jeg skal teste om det er noget vær
Avatar billede fixxxer Nybegynder
09. maj 2005 - 10:08 #18
Så kan jeg meget hurtigt afsløre at det er ikke det vær!

Læs noget omkring Sessions og headers på www.php.net og skriv noget selv fra bunden. Du bliver klogere og et lykkeligere menneske !-)


Hvad angår din host, så kan du jo kikke hans PHP configuration igennem mod din egen..

lav en php fil og have udelukkende følgende indhold i den:

<?
phpinfo();
?>

Åbn/kør den på din egen server og din hosts server og se hvor der er sat underlige ting op.. Hvem er din host?
Avatar billede akki Nybegynder
09. maj 2005 - 10:12 #19
det er en privat ven fra mit firma. Det hele har virket, men lige med et virker lortet ikke mere.
du ved evt ikke hvad der kan være galt siden denne fejl opstår: http://www.eksperten.dk/spm/616243
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