Avatar billede tgaard Nybegynder
29. maj 2007 - 16:01 Der er 23 kommentarer og
1 løsning

Problem med login i PHP

Jeg har denne PHP-fil (login.php):

<?php

$user = "$_POST[user]";
$pass = "$_POST[pass]";

// Brugernavn
$us = "THG";

// Password
$pa = "kontor";

$login = "$us$pa";

$data = "$user$pass";

if ($user == "") {
die("Du skal indtaste et brugernavn");
}

if ($pass = "") {
die("Du skal indtaste et password");
}

if ( $data == "$login"){
print("    <script language='javascript'>
        location.href='page1.asp'
        </script>");
}
else
{
print("    <script language='javascript'>
        location.href='error.html'
        </script>");
}
?>


Login skal foretages på www.varde.nu
Siden - der skal beskyttes: www.varde.nu/page1.asp

Hvad er der galt?
Avatar billede tgaard Nybegynder
29. maj 2007 - 16:02 #1
Ekstra info: Filen page1.asp starter med følgende linie:

<!--#include file="login.php"-->
Avatar billede tgaard Nybegynder
29. maj 2007 - 16:04 #2
....og selvom jeg HAR indtastet rigtig brugernavn og password kommer flg. besked:

Brugernavn og/eller adgangskode er forkert - Prøv igen
Avatar billede 0xffff Nybegynder
29. maj 2007 - 17:00 #3
$user = "$_POST[user]";
$pass = "$_POST[pass]";

mangler '

$user = "$_POST['user']";
$pass = "$_POST['pass']";
Avatar billede 0xffff Nybegynder
29. maj 2007 - 17:01 #4
eh.. der var jeg for hurtig, er en ting mere galt.

$user = "$_POST[user]";
$pass = "$_POST[pass]";

mangler ' og skal ikke i "

$user = $_POST['user'];
$pass = $_POST['pass'];
Avatar billede tgaard Nybegynder
29. maj 2007 - 22:38 #5
Tak for dit svar. Nu er jeg ikke så erfaren med programering. Hvor skal disse linier helt nøjagtig placeres?
Avatar billede 0xffff Nybegynder
29. maj 2007 - 22:41 #6
<?php

$user = $_POST['user'];
$pass = $_POST['pass'];

// Brugernavn
$us = "THG";

// Password
$pa = "kontor";

$login = "$us$pa";

$data = "$user$pass";

if ($user == "") {
die("Du skal indtaste et brugernavn");
}

if ($pass = "") {
die("Du skal indtaste et password");
}

if ( $data == "$login"){
print("    <script language='javascript'>
        location.href='page1.asp'
        </script>");
}
else
{
print("    <script language='javascript'>
        location.href='error.html'
        </script>");
}
?>

bare copy / paste den kode.
Avatar billede tgaard Nybegynder
29. maj 2007 - 22:44 #7
Mange tak for dit hurtige svar.....fortsat go' aften
Avatar billede 0xffff Nybegynder
29. maj 2007 - 22:46 #8
smider lige et svar så du kan lukke den, hvis det virkede på den måde som du gerne ville have det til :)
Avatar billede tgaard Nybegynder
29. maj 2007 - 22:52 #9
Duer desværre ikke. Den fortæller mig stadig, at brugernavn og adgangskode er forkert (selvom jeg har tastet det rigtigt)
Avatar billede 0xffff Nybegynder
29. maj 2007 - 23:08 #10
<?php

$user = $_POST['user'];
$pass = $_POST['pass'];

// Brugernavn
$us = "THG";

// Password
$pa = "kontor";

$login = "$us$pa";

$data = "$user$pass";

echo $data;
echo "//";
echo $login;

if ($user == "") {
die("Du skal indtaste et brugernavn");
}

if ($pass = "") {
die("Du skal indtaste et password");
}

if ( $data == "$login"){
print("    <script language='javascript'>
        location.href='page1.asp'
        </script>");
}
else
{
print("    <script language='javascript'>
        location.href='error.html'
        </script>");
}
?>

prøv at kopiere den her ind, når du så kører den skulle der komme 2 user / passwords frem. Hvad siger de ?
Avatar billede tgaard Nybegynder
29. maj 2007 - 23:14 #11
Der kommer en besked, jeg ikke kan nå at se, inden den - desværre - igen fortæller at brugernavn og/eller password er forkert.

Selve login.php er lagt ind under index.htm (se øverste venstre hjørne på www.varde.nu)
Avatar billede tgaard Nybegynder
29. maj 2007 - 23:20 #12
Det hele virkede inden jeg lagde linien
<!--#include file="login.php"-->
ind i filen page1.asp
Men det betød samtidig, at man kunne komme ind på denne side uden at skulle skrive et brugernavn og password (se index.htm)
Avatar billede 0xffff Nybegynder
29. maj 2007 - 23:22 #13
hvis du midlertidigt sletter disse linier.

if ( $data == "$login"){
print("    <script language='javascript'>
        location.href='page1.asp'
        </script>");
}
else
{
print("    <script language='javascript'>
        location.href='error.html'
        </script>");
}

skulle du kunne se de 2 beskeder.
Avatar billede 0xffff Nybegynder
29. maj 2007 - 23:26 #14
oi, fandt lige en anden fejl jeg havde overset.

if ( $data == "$login"){

skal være

if ( $data == $login){
Avatar billede tgaard Nybegynder
29. maj 2007 - 23:26 #15
Den viser kun følgende:
THGkontor//THGkontor
Avatar billede 0xffff Nybegynder
29. maj 2007 - 23:33 #16
fik du ændringen med fra den sidste post jeg lavede ? Så burde det virke
Avatar billede tgaard Nybegynder
29. maj 2007 - 23:44 #17
Nu kan jeg lige se, at den skriver THGkontor//THGkontor, inden den med det samme igen skriver, at brugernavn og/eller password er forkert.
Avatar billede tgaard Nybegynder
29. maj 2007 - 23:48 #18
Er det rigtigt nok, at der i filen page1.asp skal stå
<!--#include file="login.php"-->
Login.php indgår som en del af index.htm
Avatar billede 0xffff Nybegynder
29. maj 2007 - 23:57 #19
jeps det burde være rigtigt nok. Fik du de sidste ændringer med som jeg skrev ?

if ( $data == "$login"){

skal være

if ( $data == $login){
Avatar billede tgaard Nybegynder
30. maj 2007 - 00:02 #20
Ja...det virker desværre heller ikke....samme besked (øv)
Hvis du prøver at logge dig på siden www.varde.nu
med brugernavn: THG og password: kontor
har du måske en idé mere til, hvad der kan være galt?
Avatar billede morhan Novice
30. maj 2007 - 00:19 #21
Friske øjne: på de sider du vil beskytte, kan du ikke inkludere login.php. De informationer du henter fra POST eksisterer kun én gang, det er når du submitter formen.

Du skal nok have noget session indblandet. Det har 65535 sikkert en løsning på
Avatar billede tgaard Nybegynder
30. maj 2007 - 00:28 #22
Så er det nok ikke så sært, at det bare ikke vil virke. Men session....så skal jeg vist have en edb-ordbog indblandet <smiler>....nu er jeg stået af
Avatar billede 0xffff Nybegynder
30. maj 2007 - 09:06 #23
Jeg har lige prøvet at logge ind på siden, så det ser ud til at du fik det til at virke. Virker ihvertfald for mig her til morgen.

mht. sessions. Sessions er et sted hvor du opbevarer data midlertidigt for de enkelte brugere. Det kan f.eks. være en information over om brugeren er logget ind, hvilket brugernavn der er brugt etc. Generelt bruger man sessions der hvor bruger samme data flere steder i applikationen, så man kun behøver at hente den én gang.

Sessions varer som default 20mins. Dvs. hvis en bruger ikke logger ud så forsvinder den af sig selv efter 20mins.

Hvis vi så skal kigge på script. for at aktivere brug af sessions, skal du starte din php side med session_start(). Allerførste linie efter <?php. Dette giver siden mulighed for at bruge en session. Derefter skal du lægge de variabler op i session som du vil bruge. Det gøres ca. på samme måde som $_POST. Dvs. $_SESSION['user'] = $user.

Det giver os et script der ser sådan ud:

<?php
session_start();

$user = $_POST['user'];
$pass = $_POST['pass'];

// Brugernavn
$us = "THG";

// Password
$pa = "kontor";

$login = "$us$pa";

$data = "$user$pass";

if ($user == "") {
die("Du skal indtaste et brugernavn");
}

if ($pass = "") {
die("Du skal indtaste et password");
}

if ( $data == $login){
print("    <script language='javascript'>
        location.href='page1.asp'
        </script>");

// Hvis vi er her, så er vi logget rigtigt ind og lægger variabler i session
$_SESSION['user'] = $user;
$_SESSION['loggedin'] = true;
}
else
{
print("    <script language='javascript'>
        location.href='error.html'
        </script>");
}
?>

på den måde kan du på andre sider se om bruger er logget ind ved at lave en:

if($_SESSION['loggedin'] == true)
{
//... etellerandet.
}
else
{
//sandsynligvis redirect dem eller kom med fejlbesked.
}
Avatar billede tgaard Nybegynder
30. maj 2007 - 20:06 #24
Tak for svaret
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