Avatar billede style1 Nybegynder
11. januar 2005 - 16:56 Der er 28 kommentarer

Hjælp med session/print

Hej jeg har et lilleproblem.

Jeg har et login på min side og det virker helt fint.
Men så er problemet så vil jeg gerne have den skal skrive nogen data ud fra brugerne der logger ind det gør jeg sådan:

<?=$row['brugernavn']?> men så kommer problemet den printer alles bruger navne der er oprettet. Hvad er problemet ?
Avatar billede andersdp Nybegynder
11. januar 2005 - 17:05 #1
Lyder som om du skal have en WHERE på din select sætning.
Vis lige koden.
Avatar billede style1 Nybegynder
11. januar 2005 - 17:54 #2
Hmm Dette er min login kode;

<?php
if (!session_id()){
    session_start();
}
if ($_POST['login_udfyldt']=="!"){
    include "mysql.php";
    $sql = mysql_query("SELECT * FROM brugere WHERE brugernavn = '{$_POST['brugernavn']}' AND password = '{$_POST['password']}'");
    if (mysql_num_rows($sql)>0){
        $_SESSION['bruger']="ja";
        echo "Du er nu logget ind. Vent imens du overføres til brugersiden";
        echo "<meta http-equiv='refresh' content='3; URL=bruger.php' />";
    }else{
        $_SESSION['bruger']="nej";
        echo "Forkert bruger eller pass";
    }
}else{
?>
        <form action="login.php" method="post">
        <input name="login_udfyldt" type="hidden" value="!">
        Brugernavn:</td><td><input name="brugernavn" type="text">
        Adgangskode: <input name="password" type="password"><br />
        <input type="submit" value="Login">
<?php
}
?>

Dette er koden efter login, hvis alt er godkendt;

<?php
session_start();
if ($_SESSION['bruger']!="ja"){
echo "<meta http-equiv='refresh' content='3; URL=login.php' />";
die ("Du har ikke adgang her.<br>Du vil blive smidt tilbage til forsiden");
}
?>

<?php
include"mysql.php";

$ref = mysql_query("SELECT * FROM brugere WHERE brugernavn = '$_SESSION[bruger]'") or die (mysql_error());
while ($row = mysql_fetch_array($ref)) {
?>

Velkommen<?=$row['brugernavn']?>

<?php

}

?>

Som du kan se er der en WHERE på. Men den vil ikke hente lige "den" data fra "den" bruger der logger ind.
hvis i forstår?
Avatar billede andersdp Nybegynder
11. januar 2005 - 18:22 #3
indholdet i: $_SESSION['bruger']="ja"

Dvs. du henter alle resultater fra db'en hvor brugernavn er ja.

Du bør nok smide brugernavnet i en session og så tjekke på det istedet:
$_SESSION['brugernavn'] = $_POST['brugernavn'];
Avatar billede style1 Nybegynder
11. januar 2005 - 18:25 #4
Okay jeg prøver da lige så
Avatar billede style1 Nybegynder
11. januar 2005 - 18:30 #5
Hmm det virker ikke når jeg bruger den funktion til at printe det med
Avatar billede andersdp Nybegynder
11. januar 2005 - 18:32 #6
Din select skal se sådan ud:

"SELECT * FROM brugere WHERE brugernavn = '$_SESSION[brugernavn]'"
Avatar billede style1 Nybegynder
11. januar 2005 - 19:28 #7
hmm.

<?php
session_start();
if ($_SESSION['bruger']!="ja"){
echo "<meta http-equiv='refresh' content='3; URL=index.php?action=login' />";
die ("Du har ikke adgang her.<br>Du vil blive smidt tilbage til forsiden");
}
?>

<?php

include"mysql.php";

$ref = mysql_query("SELECT * FROM brugere WHERE brugernavn = '$_SESSION[brugernavn]'") or die (mysql_error());
while ($row = mysql_fetch_array($ref)) {

?>

<b>Velkommen:</b> <?php $_POST['brugernavn']; ?><br><br>


<?php
}
?>
Avatar billede andersdp Nybegynder
11. januar 2005 - 19:36 #8
Prøv med dette:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>

<body>
<?php
if (!session_id())
{
    session_start();
}
if ($_POST['login_udfyldt']=="!"){
    include "mysql.php";
    $sql = mysql_query("SELECT * FROM brugere WHERE brugernavn = '{$_POST['brugernavn']}' AND password = '{$_POST['password']}'");
    if (mysql_num_rows($sql)>0)
    {
        $_SESSION['bruger']="ja";
        $_SESSION['brugernavn']= $_POST['brugernavn'];
        echo "Du er nu logget ind. Vent imens du overføres til brugersiden";
        echo "<meta http-equiv='refresh' content='3; URL=bruger.php' />";
    }
    else
    {
        $_SESSION['bruger']="nej";
        echo "Forkert bruger eller pass";
    }
}else{
?>
        <form action="login.php" method="post">
        <input name="login_udfyldt" type="hidden" value="!">
        Brugernavn:</td><td><input name="brugernavn" type="text">
        Adgangskode: <input name="password" type="password"><br />
        <input type="submit" value="Login">
<?php
}
?>

Dette er koden efter login, hvis alt er godkendt;

<?php
session_start();
if ($_SESSION['bruger']!="ja"){
echo "<meta http-equiv='refresh' content='3; URL=login.php' />";
die ("Du har ikke adgang her.<br>Du vil blive smidt tilbage til forsiden");
}
?>

<?php
include"mysql.php";

$ref = mysql_query("SELECT * FROM brugere WHERE brugernavn = '$_SESSION[brugernavn]'") or die (mysql_error());
while ($row = mysql_fetch_array($ref)) {
?>

Velkommen<?php ech ($row['brugernavn']);?>

<?php

}

?>

</body>
</html>
Avatar billede style1 Nybegynder
11. januar 2005 - 20:36 #9
vil du være sød og skrive hvad der er ændret ?
Avatar billede andersdp Nybegynder
11. januar 2005 - 20:43 #10
Det er næsten ingenting.
Har tilføjet denne her: $_SESSION['brugernavn']= $_POST['brugernavn'];
Og rettet denne linie: Velkommen<?php echo ($row['brugernavn']);?>

Har du prøvet det?
Avatar billede style1 Nybegynder
11. januar 2005 - 21:01 #11
Det virker ikke, det jeg tilføjer i db printer den ikke ud bare blank side...
Avatar billede andersdp Nybegynder
11. januar 2005 - 21:08 #12
Prøv at skrive din session ud på de sider den skal bruges, så vi kan se om den er tom eller ej.

<?php echo ($_SESSION['brugernavn']);?>
Avatar billede style1 Nybegynder
12. januar 2005 - 16:13 #13
Den virker ikke koden ser sådan ud her:

<?php
session_start();
if ($_SESSION['bruger']!="ja"){
echo "<meta http-equiv='refresh' content='3; URL=login.php' />";
die ("Du har ikke adgang her.<br>Du vil blive smidt tilbage til forsiden");
}
?>

<?php
include"mysql.php";

$ref = mysql_query("SELECT * FROM brugere WHERE brugernavn = '$_SESSION[brugernavn]'") or die (mysql_error());
while ($row = mysql_fetch_array($ref)) {
?>

Velkommen <?php echo ($_SESSION['brugernavn']);?>

<?php

}

?>

</body>
</html>
Avatar billede andersdp Nybegynder
12. januar 2005 - 16:24 #14
Udskriv lige brugernavn fra sessionen udenfor while løkken...

Sådan her:
<?php
session_start();
if ($_SESSION['bruger']!="ja"){
echo "<meta http-equiv='refresh' content='3; URL=login.php' />";
die ("Du har ikke adgang her.<br>Du vil blive smidt tilbage til forsiden");
}
?>
<?php echo ($_SESSION['brugernavn']);?>
<?php
include"mysql.php";

$ref = mysql_query("SELECT * FROM brugere WHERE brugernavn = '$_SESSION[brugernavn]'") or die (mysql_error());
while ($row = mysql_fetch_array($ref)) {
?>

Velkommen <?php echo ($row['brugernavn']);?>

<?php

}

?>


Får du ingen fejlmeldinger?
Avatar billede style1 Nybegynder
12. januar 2005 - 16:29 #15
Blank side. Vil du have sql kode ?
Avatar billede andersdp Nybegynder
12. januar 2005 - 16:34 #16
Det har ikke noget med sql'en at gøre lige umiddelbart.

Du skal stadig have din session værdi skrevet ud. Det gør man med det her: <?php echo ($_SESSION['brugernavn']);?>

Skriver den brugernavnet ud?
Avatar billede style1 Nybegynder
12. januar 2005 - 17:04 #17
Nej det virker ikke,
Avatar billede andersdp Nybegynder
12. januar 2005 - 17:38 #18
Ok, så tager vi den lige fra starten.

På den side hvor du har din login form, skal du hvis brugernavn og password godkendes
(altså findes i databasen) oprette en session værdi lig med brugernavnet -> $_SESSION['brugernavn']= $_POST['brugernavn'];


Så er det på plads, og så kan du så på resten af siderne bruge den værdi til forskellige formål....
Men det er vigtigt, at alle sider starter med session_start(); i toppen af dokumentet...

Hvis alt det er ok, så skal det virke.
Avatar billede style1 Nybegynder
12. januar 2005 - 18:07 #19
Anders jeg har selv kodet hele det script så jeg tror godt jeg kan session, Men det du siger der virker jo bare ikke.
Avatar billede andersdp Nybegynder
12. januar 2005 - 18:11 #20
Ok.

Men kan du så ikke få udskrevet værdien af din session variabel?

Ellers så send lige filerne i en zip til anders[at]adpape.net
Avatar billede style1 Nybegynder
12. januar 2005 - 19:19 #21
øhh det er jo filerne det der. de 2 filer som jeg skrev i starten. ER det ik lettere bare at tage ?
Avatar billede andersdp Nybegynder
12. januar 2005 - 19:24 #22
ok, kigger på det.
Avatar billede andersdp Nybegynder
12. januar 2005 - 19:52 #23
login.php
-------------------------------------------------------------
<?php session_start();?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>login</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>

<body>
<?php
if ($_POST['login_udfyldt']=="!")
{
    $pass = $_POST['password'];
    $user = $_POST['brugernavn'];
    include "mysql.php";
    $sql = mysql_query("SELECT * FROM brugere WHERE brugernavn = '$user' AND password = '$pass'");
    if (mysql_num_rows($sql)>0)
    {
        $_SESSION['bruger']="ja";
        $_SESSION['brugernavn'] = $user;
        echo "Du er nu logget ind. Vent imens du overføres til brugersiden";
        echo "<meta http-equiv='refresh' content='3; URL=bruger.php' />";
    }
    else
    {
        $_SESSION['bruger']="nej";
        echo "Forkert bruger eller pass";
    }
}
else
{
?>
        <form action="login.php" method="post">
        <input name="login_udfyldt" type="hidden" value="!">
        Brugernavn: <input name="brugernavn" type="text">
        Adgangskode: <input name="password" type="password"><br />
        <input type="submit" value="Login">
        </form>
<?php
}
?>
</body>
</html>
-------------------------------------------------------------

bruger.php
-------------------------------------------------------------
<?php session_start();?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>bruger</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>

<body>
Test for at se om session med brugernavn er oprettet: <?php echo ($_SESSION['brugernavn']);?>
<?php
if ($_SESSION['bruger']!="ja")
{
echo "<meta http-equiv='refresh' content='3; URL=login.php' />";
die ("Du har ikke adgang her.<br>Du vil blive smidt tilbage til forsiden");
}
?>

<?php
include"mysql.php";

$ref = mysql_query("SELECT * FROM brugere WHERE brugernavn = ".$_SESSION['brugernavn']) or die (mysql_error());
while ($row = mysql_fetch_array($ref))
{
?>

Velkommen<?=$row['brugernavn']?>

<?php
}
?>
</body>
</html>
-------------------------------------------------------------

Dette der skal altså virke! Test dem lige nøjagtig som de er....
Avatar billede style1 Nybegynder
12. januar 2005 - 20:09 #24
okay når jeg logger ind står der:

Test for at se om session med brugernavn er oprettet: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
Avatar billede andersdp Nybegynder
12. januar 2005 - 20:14 #25
Ok, så lav:
"SELECT * FROM brugere WHERE brugernavn = ".$_SESSION['brugernavn']
Om til:
"SELECT * FROM brugere WHERE brugernavn = '$_SESSION[brugernavn]'"

Men det ser stadig ikke ud som om, den udskriver brugernavnet fra den session der oprettes....
Avatar billede style1 Nybegynder
12. januar 2005 - 21:31 #26
er der noget galt med mit login script jeg har lavet eller ?
Avatar billede andersdp Nybegynder
12. januar 2005 - 22:06 #27
Næh.
Men hvis ikke din session ikke sættes korrekt, er der noget med serveren..

Tester du lokalt eller på en tilgængelig server?
Avatar billede style1 Nybegynder
12. januar 2005 - 22:23 #28
på en rigtig server self.
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