Avatar billede webgeek Nybegynder
26. juli 2004 - 14:49 Der er 32 kommentarer og
2 løsninger

Session start virker ik.

Jeg har login.php hvor jeg sætter <?php session_start(); ?> istarten af login.php, og ved den sider hvor man SKAL være logget ind siger jeg:

<?
session_start();
?>
og nederst
onload='script.location.href="ryk.php?brugernavn=<?=$_SESSION[brugernavn]?>";'>

Men hvorfor gider det ikke virke?
Avatar billede Slettet bruger
26. juli 2004 - 14:57 #1
På sider hvor du skal være logget ind, er det ikke nok at skrive session_start();

Der skal det være noget i stil med:

session_start();
if ($_SESSION['logged_in'] != true) {
    echo "Du skal logge ind for at se denne side.";
    exit;
}

Givet at du sætter logged_in til true, ved korrekt indlog.

--
pacroon
Avatar billede webgeek Nybegynder
26. juli 2004 - 15:00 #2
Hvad skal der være istedet for logget_ind skal det være brugernanv ?
Avatar billede webgeek Nybegynder
26. juli 2004 - 15:02 #3
Læg svar!
Avatar billede webgeek Nybegynder
26. juli 2004 - 15:03 #4
<?php
session_start();
if ($_SESSION['brugernavn'] != true) {
    echo "Du skal logge ind for at se denne side.";
    exit;
}
echo "<body onload='script.location.href=\"ryk.php?brugernavn=$_SESSION[brugernavn]\";'>
<iframe width=500 height=500 border=1 style=border: 1px #000000 dotted; frameborder=0 name='script'></iframe>
<div id='chat'></div>
</body>
</html>";
?>
Avatar billede webgeek Nybegynder
26. juli 2004 - 15:03 #5
Virker ikke.
Avatar billede webgeek Nybegynder
26. juli 2004 - 15:05 #6
Det virker ik! :@
Avatar billede webgeek Nybegynder
26. juli 2004 - 15:06 #7
Har prøvet:

<?php
session_start();
if ($_SESSION['brugernavn'] != true) {
    echo "Du skal logge ind for at se denne side.";
    exit;
}
echo "<body onload='script.location.href=\"ryk.php?brugernavn=$_SESSION['brugernavn']\";'>
<iframe width=500 height=500 border=1 style=border: 1px #000000 dotted; frameborder=0 name='script'></iframe>
<div id='chat'></div>
</body>
</html>";
?>
Avatar billede avlund Nybegynder
26. juli 2004 - 15:07 #8
Så vidt jeg husker kan du vist ikke vise arrayværdier inde i strings (er ikke 100% dog).

Så altså:

echo "<body onload='script.location.href=\"ryk.php?brugernavn=$_SESSION[brugernavn]\";'>

skal være:

echo "<body onload='script.location.href=\"ryk.php?brugernavn=".$_SESSION[brugernavn]."\";'>
Avatar billede webgeek Nybegynder
26. juli 2004 - 15:11 #9
Parse error: parse error in /web/www/frac/users/hotelnet/chat/chat.php on line 32

ja, eller noget.
Avatar billede webgeek Nybegynder
26. juli 2004 - 15:16 #10
<?php } ?> ,nederst men den siger det samme.
Men så er der jo ryk.php og den har jeg også sat

session_start();
include "db.php";
if ($_SESSION['brugernavn'] != true) {
    echo "Du skal logge ind for at se denne side.";
    exit;
}


Øverst i, men den siger bare jeg ikke er loggeet ind
Avatar billede avlund Nybegynder
26. juli 2004 - 15:23 #11
Jamen, er dit brugernavn ikke en string i stedet for en boolean?

Så skal du da skrive

if( $_SESSION["brugernavn"] == null ) {
  osv.
}
Avatar billede webgeek Nybegynder
26. juli 2004 - 15:25 #12
Siger bare jeg ikke er logget ind.
Avatar billede webgeek Nybegynder
26. juli 2004 - 15:27 #13
session_start();
if( $_SESSION["brugernavn"] == null ) {
    echo "Du skal logge ind for at se denne side.";
    exit;
}
alt andet kodning her..


Det virker ikke!!! ARGH! :D
Avatar billede webgeek Nybegynder
26. juli 2004 - 15:29 #14
Se her..

Login.php:

<?php
session_start();
?>

Alt koding her..

Også i chat.php:

<?php
session_start();
if( $_SESSION["brugernavn"] == null ) {
    echo "Du skal logge ind for at se denne side.";
    exit;
}
echo "<body onload='script.location.href=\"ryk.php?brugernavn=".$_SESSION[brugernavn]."\";'>
<iframe width=500 height=500 border=1 style=border: 1px #000000 dotted; frameborder=0 name='script'></iframe>
<div id='chat'></div>
</body>
</html>";
?>


Og ryk.php:
<?php
session_start();
include("db.php");
if( $_SESSION["brugernavn"] == null ) {
    echo "Du skal logge ind for at se denne side.";
    exit;
}
kodening
Avatar billede m_els Nybegynder
26. juli 2004 - 15:30 #15
en hurtig ting ( det kan godt være jeg har overset det)... Sætter du overhovedet sessions variablen når man logger ind?
Avatar billede m_els Nybegynder
26. juli 2004 - 15:34 #16
i login.php burde du have:
session_register('brugernavn');
$_SESSION['brugernavn'] = $brugernavn;
Avatar billede webgeek Nybegynder
26. juli 2004 - 15:34 #17
Ja..
<?php
session_start();
?>

øverst i login.php
Avatar billede m_els Nybegynder
26. juli 2004 - 15:38 #18
det er ikke nok bare med session_start();...det starter bare sessionen, du mangler at tilføje variabler til sessionen
Avatar billede webgeek Nybegynder
26. juli 2004 - 15:40 #19
Så hjælp mig =)

I login, hvad så?
Avatar billede avlund Nybegynder
26. juli 2004 - 15:50 #20
if( [BRUGER ER VALIDERET I DATABASEN OG SESSION SKAL REGISTRERES] )
  $_SESSION['brugernavn'] = $bruger; // $bruger er brugerdata fra DB
else
  $_SESSION['brugernavn'] = null;


og så når du tjekker:

if( !isset( $_SESSION['brugernavn'] ) ) {
  // bruger er logget ind
}
else
  header( "Location:login.php" ); // send til login-side

session_start() skal selvfølgelig være kaldt i starten af alle sider der bruger sessions som sædvanlig.
Avatar billede webgeek Nybegynder
26. juli 2004 - 15:56 #21
<?php
if ($_SESSION['brugernavn'] = $brugernavn; // $bruger er brugerdata fra DB
else
  $_SESSION['brugernavn'] = null;
 
  ?>

Øverst i login.php virker ikke.
Avatar billede webgeek Nybegynder
26. juli 2004 - 15:57 #22
manglede session_start(); men virker stadig ik
Avatar billede webgeek Nybegynder
26. juli 2004 - 15:58 #23
Koden i login.php øverst ser sådan her ud nu:
<?php
session_start();
if ($_SESSION['brugernavn'] = $brugernavn; // $bruger er brugerdata fra DB
else
  $_SESSION['brugernavn'] = null;
 
  ?>
Avatar billede m_els Nybegynder
26. juli 2004 - 16:04 #24
prøv at se her

login.php:

session_start();

$brugernavn = $_POST['brugernavn']; //værdierne fra din login form
$pass = $_POST['pass'];

$sql = mysql_query("SELECT * FROM tabelnavn WHERE brugernavn='$brugernavn' AND pass='$pass'"); //skal rettes til, så den passer til din db
$login_check = mysql_num_rows($sql);

if($login_check > 0){
  session_register('brugernavn');
  $_SESSION['brugernavn'] = $brugernavn;
} else {
  header("Location: login_side.php"); //login eksisterer ikke, gå til login side
}
Avatar billede webgeek Nybegynder
26. juli 2004 - 16:09 #25
Login.php er i én fil
Avatar billede webgeek Nybegynder
26. juli 2004 - 16:11 #26
Hvad så når det er i en helt anden fil?

Feks. chat.php ?
Avatar billede m_els Nybegynder
26. juli 2004 - 16:13 #27
hvorfor laver du ikke således at din login form er ligger i en fil, som poster værdierne fra formen til login.php, som tjekker om bruger og pass eksisterer?
Avatar billede m_els Nybegynder
26. juli 2004 - 16:14 #28
mener du når du skal tjekke om brugeren er logget ind?
Avatar billede avlund Nybegynder
26. juli 2004 - 16:15 #29
Når hvad er i en helt anden fil?

Det jeg gav dig lige før burde virke, du skal bare tilføje databaseadgang á la det m_els skrev. Du skrev det vist op forkert.
Avatar billede m_els Nybegynder
26. juli 2004 - 16:17 #30
på de sider hvor man skal være logget ind gør du ligesom avlund skrev (taget fra avlunds post 26/07-2004 15:50:12):

session_start();

if( !isset( $_SESSION['brugernavn'] ) ) {
  // bruger er logget ind
}
else
  header( "Location:login_side.php" ); // send til login-side
Avatar billede webgeek Nybegynder
26. juli 2004 - 16:25 #31
Ja, men her er chat.php

<?php
session_start();

if( !isset( $_SESSION['brugernavn'] ) ) {
  // bruger er logget ind
}
?>
  <?php

echo "<body onload='script.location.href=\"ryk.php?brugernavn=".$_SESSION[brugernavn]."\";'>
<iframe width=500 height=500 border=1 style=border: 1px #000000 dotted; frameborder=0 name='script'></iframe>
<div id='chat'></div>
</body>
</html>";
?>
<?php
} else {
header( "Location:login.php" ); // send til login-side
?>




Den siger bare

Parse error: parse error in /web/www/frac/users/hotelnet/chat/chat.php on line 35
Avatar billede webgeek Nybegynder
26. juli 2004 - 16:30 #32
Tror jeg vil lave en loading.. sådan at når man logger ind opdater den online til ja og logger ud til nej, men i får lige point!
Avatar billede m_els Nybegynder
26. juli 2004 - 16:31 #33
så vidt jeg ved så må man ikke bruge header() efter man har udskrevet noget til browseren
Avatar billede terrak Nybegynder
26. juli 2004 - 17:04 #34
Her er en lille kode du måske kunne studere lidt.

http://80.197.67.74/session_view.php

(Ovenstående kode i link er ikke gennemtestet 100%)

I stedet for at kalde session_register() og teste for om brugernavn og kodeord er sat, så includer du da bare din fil, efter du har testet.
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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