Avatar billede hewa Nybegynder
14. januar 2007 - 13:15 Der er 94 kommentarer og
1 løsning

Header i php5

Jeg har et par gange skulle bruge header, men aldrig fået det til virke. Dur det ikke i php5?

Jeg har fundet noget login på nettet, som tilsyneladende virker, hvis jeg laver det på én side, men skal det spille sammen med andre sider, kan jeg ikke få det til at virke.

Se understående, hvis jeg ikke er logget ind, skal jeg smides videre til ny_admin.php - men det sker ikke, siden "dør" - eller den sender mig ikke til ny_admin.php og den viser heller ikke resten af koden.

Hvad gør jeg galt?

<?
session_start();
if(!$_SESSION['loget_in'] == 1) {//Hvis brugeren ikke er logget in
header("Location: /ny_admin.php");//Sender brugeren videre
exit;//Sørger for at resten af koden, ikke bliver udført
}

include "connect.php";
?>
Avatar billede lesp Nybegynder
14. januar 2007 - 13:28 #1
<?
session_start();
if(!$_SESSION['loget_in'] == 1) {//Hvis brugeren ikke er logget in
header("Location: ny_admin.php");//Sender brugeren videre
exit;//Sørger for at resten af koden, ikke bliver udført
}

include "connect.php";
?>
Avatar billede hewa Nybegynder
14. januar 2007 - 13:34 #2
Tak for dit svar. Jeg har også prøvet at fjerne "/", men det hjælper lige meget. Jeg har også prøvet at lave hele stien, http://www.domæne.dk/ny_admin.php, det hjælper heller ikke.
Avatar billede michael_stim Ekspert
14. januar 2007 - 13:47 #3
Så er det måske fordi sessionen ikke bliver sat. Prøv enten at skrive den ud eller sæt '' om ettallet:
if(!$_SESSION['loget_in'] == '1')
Avatar billede hewa Nybegynder
14. januar 2007 - 13:53 #4
Det hjælper heller ikke, desværre.

Det underlige er, at laver jeg det helt enkelt på en testside, virker det heller ikke...
<?
header("Location: http://www.et-eller-andet-domæne.dk");
exit;
?>

Det er derfor, jeg tænker, om header ikke skulle virke med php5?
Er vi ikke enige om, at at hvis det er det eneste, der er på siden, skal den bare med det samme smide mig videre til et-eller-andet-domæne.dk?
Avatar billede mccookie Seniormester
14. januar 2007 - 14:32 #5
$path = "http://" . $_SERVER['HTTP_HOST'];
header("Location : $path");

Jeg plejer at bruge ovenstående og det virker her ;)

God søndag
///McCookie
Avatar billede hewa Nybegynder
14. januar 2007 - 14:44 #6
Det har heller ingen effekt McCookie....

Kan et webhotel slå header fra (www.one.dk)?
Avatar billede hewa Nybegynder
14. januar 2007 - 14:58 #7
Det er som om, header totalt bliver overset.

Hvis jeg laver bare denne lille kode (uden linjen "exit;")
<?
header("Location: http://www.bossman.dk");
echo "Ses denne tekst?";
?>

Fremkommer echo'et og bliver vist. Er linjen exit med, stopper alting - det er sgu for underligt... er det ikke?
Avatar billede shooka Nybegynder
14. januar 2007 - 15:07 #8
Jeg har vist ikke fået opdateret
Avatar billede shooka Nybegynder
14. januar 2007 - 15:08 #9
Ups... Det var ikke det jeg ville have skrevet

Men headers virker i PHP 5

Kommer der nogen kode før din header?
Avatar billede hewa Nybegynder
14. januar 2007 - 15:14 #10
I det helt simple eksemple er der kun pakket html omkring.
Avatar billede shooka Nybegynder
14. januar 2007 - 15:15 #11
Kan du ikke prøve at lave et eksempel uden HTML før headeren?
Avatar billede shooka Nybegynder
14. januar 2007 - 15:19 #12
Prøv evt. med:

if (!headers_sent()) {
echo "Ingen headers er sendt!";
    exit;
}

Den skulle gerne udskrive Ingen headers er sendt.
Avatar billede hewa Nybegynder
14. januar 2007 - 15:19 #13
Nu har jeg prøvet at fjerne alt html, så der kun står:
<?
header("Location: http://www.domæne.dk");
exit;
echo "Ses denne tekst?";
?>

Det har ingen effekt og kilden viser, der ikke er noget på siden.
Avatar billede hewa Nybegynder
14. januar 2007 - 15:23 #14
Skal den lægge alene, eller skal den lægges sammen med den anden kode?
Avatar billede shooka Nybegynder
14. januar 2007 - 15:25 #15
Den skal lægges sammen med den anden kode ;)
Avatar billede hewa Nybegynder
14. januar 2007 - 15:27 #16
Nu står der (med html omkring):
<?
header("Location: http://www.bossman.dk");
if (!headers_sent()) {
echo "Ingen headers er sendt!";
    exit;
}
?>

Og der sker ingenting...
Avatar billede shooka Nybegynder
14. januar 2007 - 15:29 #17
Det virker meget mystisk...
Avatar billede hewa Nybegynder
14. januar 2007 - 15:29 #18
Ja, det er som om php slet ikke kan se, der står header.
Avatar billede hewa Nybegynder
14. januar 2007 - 15:32 #19
Kan man evt. sende brugeren til en anden side med en anden kode end header?
Avatar billede shooka Nybegynder
14. januar 2007 - 15:36 #20
Der er noget jeg har overset.. Prøv lige med denne kode :)

<?php
header("Location: http://www.bossman.dk");
?>
Avatar billede shooka Nybegynder
14. januar 2007 - 15:37 #21
Ja, men det er en usikker kode, som kan deaktiveres...
Avatar billede hewa Nybegynder
14. januar 2007 - 15:44 #22
Det har jeg oså prøvet, det havde heller ingen effekt :-(
Avatar billede shooka Nybegynder
14. januar 2007 - 15:49 #23
Så prøv med denne kode, den er dog usikker... Og man kan sagtens stoppe den inden man bliver redirected:

<meta http-equiv="refresh" url="http://www.bossman.dk" content="0">
Avatar billede hewa Nybegynder
14. januar 2007 - 15:51 #24
Men den skal lægges i header, ikke?
- så dur den ikke, da det skal bruges med noget login - hvis der ikke er logget ind, skal man sendes til login siden, ellers skal resten af koden ses.
Avatar billede shooka Nybegynder
14. januar 2007 - 15:57 #25
Man behøver ikke at lægge den i head, men så kommer den bare i klemme, når siden skal godkendes af W3C, hvis du benytter dig af deres service.

Du skal lægge den sådan ind i koden:

<?php
session_start();
if($_SESSION['loget_in'] != 1) { // Hvis brugeren ikke er logget ind
echo "<meta http-equiv=\"refresh\" url=\"http://www.bossman.dk\" content=\"0\">"; // Sender brugeren til www.bossman.dk
exit; // Sørger for at resten af koden, ikke bliver udført
}
?>
Avatar billede hewa Nybegynder
14. januar 2007 - 17:00 #26
Så, nu sker der da noget, bare ikke det rigtige :)
Nu står siden og kører i ring, men den kommer ikke til den rigtige side, hvis der ikke er logget ind og den viser ikke resten, hvis jeg er logget ind - men vi er vel på vej :)
Avatar billede shooka Nybegynder
14. januar 2007 - 19:20 #27
Kan det ikke være stavefejl...

if($_SESSION['loget_in'] != 1)

til

if(empty($_SESSION['logget_ind']))
Avatar billede shooka Nybegynder
14. januar 2007 - 19:22 #28
Hvordan ser din kode ud omkring linien, hvor du sætter sessionen?
Avatar billede hewa Nybegynder
14. januar 2007 - 19:53 #29
Jamen der er jo to ting i det. Dels hvis man ikke er logget på, skal jeg vende tilbage til siden, hvor man kan logge på og dels hvis man er logget på, skal man kunne se siden. Og her dukker begge problemer op, hvis jeg er logget på, viser den ikke min kode og er jeg ikke logget på, bliver jeg ikke sendt videre med header, (eller den kode du gav mig).
Skal jeg prøve at smide begge kode-stykker op, så du kan se dem?
(jeg er bare bange for, det ikke hjælper, fordi min header får jo siden til at gå i stå)
Avatar billede shooka Nybegynder
14. januar 2007 - 20:53 #30
Ja, det må du gerne :)

Så skal jeg prøve at se, om det er der fejlen er ;)
Avatar billede hewa Nybegynder
14. januar 2007 - 21:39 #31
Okay, så langt så godt :)
Jeg har fået syet din kode om med meta-osv, så den kan sende videre - nu er problemet så, så når jeg kommer fra login siden til den siden, jeg skal kunne se, bliver jeg hele tiden smidt tilbage for at logge ind igen.

Denne kode ligger på siden, der skal acceptere min adgangskode:
session_start();
if(!$_SESSION['loget_in'] == 1) { //Hvis brugeren ikke er logget in
echo "<meta http-equiv='Refresh' content='0;url=ny_admin.php'>";
exit(); //Sørger for at resten af koden, ikke bliver udført
}
include "connect.php";
*** her kommer resten af koden ***

Her er koden for at logge ind og sende videre til ovenstående side:
<?php
session_start();
include "connect.php";

if(!isset($_POST['Submit'])) {
    echo "Tast brugernavn og adgangskode for at logge ind";
    }else{
        $postbruger = $_POST['brugernavn'];
        $postpass = $_POST['adgangskode'];
       
        $resultat = mysql_query("SELECT Id FROM login WHERE brugernavn = '$postbruger' AND adgangskode = '$postpass'");

        $number = mysql_num_rows($resultat);
        if($number == 1) { //Hvis der kun er et resultat, bliver brugeren logget in
        $_SESSION['loget_in'] = 1;
        $_SESSION['brugernavn'] = $postbruger;
        $_SESSION['adgangskode'] = $postpass;
        echo "Du er nu logget ind som " .$postbruger;

        }else echo "De indtastede oplysninger er ikke korrekte";
        }
?>


<form name='Login' method='POST' action='links.php'>
Brugernavn:<br><input type='text' name='brugernavn'><br>
Password:<br><input type='password' name='adgangskode'><br>
<input type="submit" name="Submit" value="Login">
</form>

(iøvrigt får jeg ikke længere at vide, at de indtastede oplysninger ikke er korrekte - det gjorde jeg, da jeg testede det på samme side, den nederste)
Avatar billede shooka Nybegynder
14. januar 2007 - 21:56 #32
Det er fordi den sender dig tilbage inden den logger dig ind :)

Hvad hedder siden, hvor denne kode ligger?
Avatar billede hewa Nybegynder
14. januar 2007 - 22:03 #33
Den øverste side der skal tage imod brugernavn og adgangskode hedder links.php og siden man logger sig på med brugernavn og adgangskode, hedder ny_admin.php.
Problemet ligger måske i, at ny_admin.php er noget jeg har fundet på nettet, men det var to sider, jeg har forsøgt at strikke sammen til en?
:)
Avatar billede shooka Nybegynder
14. januar 2007 - 22:13 #34
Jeg strikker dem lige sammen :) Der er ikke andre sider end de to?
Avatar billede hewa Nybegynder
14. januar 2007 - 22:16 #35
Nej, det er der ikke lige nu, men det kommer der på sigt - måske lang sigt, det er sgu ikke så nemt det her php og mysql :)
Avatar billede shooka Nybegynder
14. januar 2007 - 22:52 #36
Så er det strikket sammen :)

<?php
session_start();
include "connect.php";

if(!empty($_POST['brugernavn']) && !empty($_POST['adgangskode']) && isset($_POST['Submit']))
{
    $query = mysql_query("SELECT * FROM login WHERE brugernavn = '".$_POST['brugernavn']."' AND adgangskode = '".$_POST['brugernavn']."' ORDER BY Id ASC LIMIT 1") or die(mysql_error());
    $array = mysql_fetch_array($query);
    if(!empty($array['Id']))
    {
        $_SESSION['logget_ind'] = 1;
        $_SESSION['brugernavn'] = $array['brugernavn'];
        $_SESSION['adgangskode'] = $array['adgangskode'];
        echo "Du er nu logget ind som <strong>".$_SESSION['brugernavn']."</strong>";
    }
}
else if(isset($_POST['Submit']))
{
    header("Location: ?err=1");
    exit;
}
if($_GET['err'] == 1)
{
    echo "<strong>De indtastede oplysninger var ikke korrekte!</strong><br><br>";
}
?>

<form name="Login" method="POST" action="">
Brugernavn:<br>
<input type="text" name="brugernavn"><br>
Password:<br>
<input type="password" name="adgangskode"><br>
<input type="submit" name="Submit" value="Login">
</form>
Avatar billede shooka Nybegynder
14. januar 2007 - 22:53 #37
Jeg ville lige prøve header én sidste gang :)
Avatar billede hewa Nybegynder
14. januar 2007 - 23:00 #38
Hov, det var en noget mere avanceret udgave :)
Det må jo så være siden hvor man logger sig på - men skal "modtager-urlen" så ikke på i action i formen? Eller kan det hele køre på én side - jeg kan ikke helt gennemskue det, du har lavet :)
Avatar billede shooka Nybegynder
14. januar 2007 - 23:11 #39
Det hele kører på samme side :)
Avatar billede shooka Nybegynder
14. januar 2007 - 23:12 #40
Og jeg skal nok prøve at forklare, hvad jeg har gjort, hvis det virker :)
Avatar billede shooka Nybegynder
14. januar 2007 - 23:16 #41
Desuden er koden mere overskuelig, hvis du kopierer den over i fx notesblok/notepad :)
Avatar billede hewa Nybegynder
14. januar 2007 - 23:16 #42
Jeg har nu prøvt at lave det som en ny admin-side. Med headeren virker det ikke, formen kommer frem, men siden "dør", når jeg prøver at gøre noget. Så har jeg ændret den til den der meta-ting, og så kan den melde ud med fejl, hvis der er tastet forkert, men den kan ikke logge på, når jer bruger de rigtige oplysninger.
Nogen bud på det?
Avatar billede hewa Nybegynder
14. januar 2007 - 23:22 #43
Jeg har nu prøvet at smide det ind i toppen af links.php. Dels kan den stadig ikke tage imod de rigtige oplysninger og dels viser den alt resten af koden - kan jeg evt. have gjort noget forkert?

Ps. jeg sidder kun og laver det i notepad :)
Avatar billede shooka Nybegynder
14. januar 2007 - 23:24 #44
Er siden blank, hvis den ikke vælger at sende dig tilbage?
Avatar billede shooka Nybegynder
14. januar 2007 - 23:29 #45
Hvad hedder felterne i tabellen i databasen?
Avatar billede hewa Nybegynder
14. januar 2007 - 23:30 #46
Nej, siden bliver ikke blank. Hvis brugernavn og adgangskode er rigtig, forbliver den ved formen og er de forkerte, kommer teksten, at det er forkert. Taster jeg så rigig, står teksten om, det er forkert der stadig.
Avatar billede hewa Nybegynder
14. januar 2007 - 23:31 #47
Felterne hedder, id, brugernavn og adgangskode
Avatar billede shooka Nybegynder
14. januar 2007 - 23:31 #48
Prøv evt. med denne kode:

<?php
session_start();
include "connect.php";

if(!empty($_POST['brugernavn']) && !empty($_POST['adgangskode']) && isset($_POST['Submit']))
{
    $query = mysql_query("SELECT * FROM login WHERE brugernavn = '".$_POST['brugernavn']."' AND adgangskode = '".$_POST['brugernavn']."' ORDER BY Id ASC LIMIT 1") or die(mysql_error());
    $array = mysql_fetch_array($query);
    if(!empty($array['Id']))
    {
        $_SESSION['logget_ind'] = 1;
        $_SESSION['brugernavn'] = $array['brugernavn'];
        $_SESSION['adgangskode'] = $array['adgangskode'];
    }
    else
    {
        echo "<meta http-equiv='Refresh' content='0;url=".$_SERVER['PHP_SELF']."?err=2'>";
        exit;
    }
}
else if(isset($_POST['Submit']))
{
    echo "<meta http-equiv='Refresh' content='0;url=".$_SERVER['PHP_SELF']."?err=1'>";
    exit;
}
if(!empty($_SESSION['logget_ind']))
{
    echo "Du er nu logget ind som <strong>".$_SESSION['brugernavn']."</strong>";
}
if($_GET['err'] == 1)
{
    echo "<strong>Du skal udfylde begge login-felter!</strong><br><br>";
}
if($_GET['err'] == 2)
{
    echo "<strong>De indtastede oplysninger var ikke korrekte!</strong><br><br>";
}
?>

<form method="POST" action="">
Brugernavn:<br>
<input type="text" name="brugernavn"><br>
Password:<br>
<input type="password" name="adgangskode"><br>
<input type="submit" name="Submit" value="Login">
</form>

Nu har jeg lavet endnu en fejlkilde err=1 var der i forevejen, men nu ogspå err=2

Hilke af fejlene får du?
Avatar billede shooka Nybegynder
14. januar 2007 - 23:34 #49
Så skal du ændre linierne

$query = mysql_query("SELECT * FROM login WHERE brugernavn = '".$_POST['brugernavn']."' AND adgangskode = '".$_POST['brugernavn']."' ORDER BY Id ASC LIMIT 1") or die(mysql_error());

og

if(!empty($array['Id']))

til

$query = mysql_query("SELECT * FROM login WHERE brugernavn = '".$_POST['brugernavn']."' AND adgangskode = '".$_POST['brugernavn']."' ORDER BY id ASC LIMIT 1") or die(mysql_error());

og

if(!empty($array['id']))
Avatar billede hewa Nybegynder
14. januar 2007 - 23:34 #50
Inden jeg nu får lavet nogle fejl, og gjort noget jeg ikke skal, skal jeg så lægge det i en ellers tom fil eller?
Avatar billede shooka Nybegynder
14. januar 2007 - 23:36 #51
Det skal være i en fil for sig selv :)

Har du forresten en connect.php liggende i samme mappe?
Avatar billede hewa Nybegynder
14. januar 2007 - 23:38 #52
Ja det har jeg.
Men er det ikke noget "sludder", du skriver:
brugernavn = '".$_POST['brugernavn']."' AND adgangskode = '".$_POST['brugernavn']."

Skal det ikke være:
brugernavn = '".$_POST['brugernavn']."' AND adgangskode = '".$_POST['adgangskode']."
Avatar billede shooka Nybegynder
14. januar 2007 - 23:39 #53
Nårh jo da :P
Avatar billede shooka Nybegynder
14. januar 2007 - 23:40 #54
Hvilken af de to fejl er det egentlig du får nu?
Avatar billede hewa Nybegynder
14. januar 2007 - 23:43 #55
Nu har jeg prøvet igen. Siden fortæller nu, at der ikke er udfyldt i felterne, meget fint :) Den fortæller også, når der er tastet forkert og den kan så igen fortælle, at der er tastet forkert og at felterne ikke er udfyldt - men når det så er rigtig, melder den stadig ud med, at der er tastet forkert :)
Avatar billede shooka Nybegynder
14. januar 2007 - 23:47 #56
Og din tabel i databasen hedder login?
Avatar billede hewa Nybegynder
14. januar 2007 - 23:47 #57
Kl 23:34:13 skrev du, jeg skulle ændre et par ting, men det du skrev, var ens, kan det have noget at sige, at der skulle være ændret noget, som der så ikke blev?
Avatar billede hewa Nybegynder
14. januar 2007 - 23:49 #58
Ja, den hedder login
Avatar billede shooka Nybegynder
14. januar 2007 - 23:51 #59
Jeg skrev Id med lille: id


Her kommer en fejlfindingsversion af koden:

<?php
session_start();
include "connect.php";

if(!empty($_POST['brugernavn']) && !empty($_POST['adgangskode']) && isset($_POST['Submit']))
{
    $query = mysql_query("SELECT * FROM login WHERE brugernavn = '".$_POST['brugernavn']."' AND adgangskode = '".$_POST['adgangskode']."' ORDER BY id ASC LIMIT 1") or die(mysql_error());
    $array = mysql_fetch_array($query);
    echo "Brugernavn: ".$array['brugernavn'];
    echo "Adgangskode: ".$array['adgangskode'];
    if(!empty($array['id']))
    {
        echo "De indtastede oplysninger er korrekte";
        $_SESSION['logget_ind'] = 1;
        $_SESSION['brugernavn'] = $array['brugernavn'];
        $_SESSION['adgangskode'] = $array['adgangskode'];
    }
    else
    {
        echo "<meta http-equiv='Refresh' content='0;url=".$_SERVER['PHP_SELF']."?err=2'>";
        exit;
    }
}
else if(isset($_POST['Submit']))
{
    echo "<meta http-equiv='Refresh' content='0;url=".$_SERVER['PHP_SELF']."?err=1'>";
    exit;
}
if(!empty($_SESSION['logget_ind']))
{
    echo "Du er nu logget ind som <strong>".$_SESSION['brugernavn']."</strong>";
}
if($_GET['err'] == 1)
{
    echo "<strong>Du skal udfylde begge login-felter!</strong><br><br>";
}
if($_GET['err'] == 2)
{
    echo "<strong>De indtastede oplysninger var ikke korrekte!</strong><br><br>";
}
?>

<form method="POST" action="">
Brugernavn:<br>
<input type="text" name="brugernavn"><br>
Password:<br>
<input type="password" name="adgangskode"><br>
<input type="submit" name="Submit" value="Login">
</form>
Avatar billede shooka Nybegynder
14. januar 2007 - 23:53 #60
Har du evt. en side jeg kan se? Tænkte på en URL :)
Avatar billede hewa Nybegynder
14. januar 2007 - 23:57 #61
Jeg rettede Id til lille id og nu kan jeg tilsyneladende logge på :)
- dog skriver den stadig den fejl-besked der var der inden, jeg loggede på efter, at nu er jeg logget på. Forstår du, hvad jeg mener?
Avatar billede hewa Nybegynder
15. januar 2007 - 00:00 #62
Jeg sidder og leger på denne side:
http://www.crazyinlove.dk/ny_admin.php

Skal jeg lige oprette et brugernavn til dig, så du kan se, hvad der sker?
Avatar billede shooka Nybegynder
15. januar 2007 - 00:01 #63
Hvilke fejlbeskeder er det du får?
Avatar billede shooka Nybegynder
15. januar 2007 - 00:01 #64
Ja tak :)
Avatar billede hewa Nybegynder
15. januar 2007 - 00:02 #65
Nu kan du logge på med dit brugernavn her og koden er 123, meget svær kode, haha :)
Avatar billede shooka Nybegynder
15. januar 2007 - 00:04 #66
Ja, jeg retter lige alle fejlene igennem, og så får du den endelige kode :)
Avatar billede hewa Nybegynder
15. januar 2007 - 00:06 #67
Kanon - bare jeg så forstår den, altså koden :)
(jeg forstod trods alt den anden :)
Avatar billede shooka Nybegynder
15. januar 2007 - 00:07 #68
Hvis du vil have et godt råd, så kan du nøjes med brugerens id, som session

fx $_SESSION['brugerID']

Det er for det meste det man kan nøjes med at vide om brugeren :)
Avatar billede shooka Nybegynder
15. januar 2007 - 00:09 #69
Ja, det med at forstå koden er meget vigtigt :)
Avatar billede hewa Nybegynder
15. januar 2007 - 00:09 #70
Det forstår jeg ikke?
Avatar billede hewa Nybegynder
15. januar 2007 - 00:10 #71
Skal det forstås sådan, at når den har tjekket brugernavn og adgangskode, oprettes en session hvor det kun er id'et, man bruger?
Avatar billede shooka Nybegynder
15. januar 2007 - 00:16 #72
Ja.

id'et er forskelligt fra bruger til bruger, og må/skal aldrig ændres. id står for identifikation og bruges til at identificere brugeren. Når man er logget ind med brugernavn og adgangskode, så er brugerens id det eneste man behøver for at vide alt om den pågældende bruger. Derefter kan man så begynde at pille de informationer ud fra databasen man så vil vide, om den bruger, der er logget ind.

En god grund til kun at benytte brugerens id er, at det er det eneste, som ikke ændres. Kommer der pludselig en mulighed for brugeren hvor han/hun kan ændre sit brugernavn eller adgangskode, så er de gamle informationer, som er gemt i sessions ikke længere brugbare.
Avatar billede hewa Nybegynder
15. januar 2007 - 00:18 #73
Bør jeg ligefrem omdøbe id til brugerid?
- på sigt bliver det et ret omfattende site, hvor der skal bruges mange id'er, til brugere, katogorier, artikler osv.
Avatar billede hewa Nybegynder
15. januar 2007 - 00:21 #74
Ja det kan jeg godt se. Men nu er jeg jo ikke nogen haj til det her, så i det du har lavet, skaber vi så en session til både id, bruger og adgangskode?
Avatar billede shooka Nybegynder
15. januar 2007 - 00:25 #75
id er det bedste navn til det felt. Nu skriver du jo selv, at siden bliver ret omfattende, så mon ikke det er bedst at køre hårdt på fra starten?

Jeg ved det er svært at forstå, det var det godt nok også for mig dengang.
Avatar billede hewa Nybegynder
15. januar 2007 - 00:28 #76
Jojo for pokker, det skal laves så rigtig fra starten som muligt!
Jeg kunne godt have lagt ud med nogle flade html sider og i den dur fra starten, men det er bevidst, jeg har valgt at prøve at lege lidt med php og mysql fra starten, da jeg ved, jeg får brug for det hele i den anden ende - så tak fordi du er opmærksom på det og fordi du hjælper mig!!
Avatar billede shooka Nybegynder
15. januar 2007 - 00:49 #77
Her kommer der en opdateret kode. Jeg skal nok fortælle dig, hvad jeg har lavet, men det bliver altså først i morgen:

<?php
session_start();
include "connect.php";

function getuser($bid, $info)
{
    $query = mysql_query("SELECT * FROM login WHERE id = '".$bid."' LIMIT 1") or die(mysql_error());
    $array = mysql_fetch_array($query);
    return $array['$info'];
}

if(!empty($_POST['brugernavn']) && !empty($_POST['adgangskode']) && isset($_POST['Submit']))
{
    $query = mysql_query("SELECT * FROM login WHERE brugernavn = '".$_POST['brugernavn']."' AND adgangskode = '".$_POST['adgangskode']."' ORDER BY id ASC LIMIT 1") or die(mysql_error());
    $array = mysql_fetch_array($query);
    if(!empty($array['id']))
    {
        $_SESSION['bid'] = $array['id'];
    }
    else
    {
        echo "<meta http-equiv='Refresh' content='0;url=".$_SERVER['PHP_SELF']."?err=2'>";
        exit;
    }
}
else if(isset($_POST['Submit']))
{
    echo "<meta http-equiv='Refresh' content='0;url=".$_SERVER['PHP_SELF']."?err=1'>";
    exit;
}
if(!empty($_SESSION['bid']))
{
    echo "Du er nu logget ind som <strong>".getuser($_SESSION['bid'], "brugernavn")."</strong>";
}

if($_GET['err'] == 1)
{
    echo "<strong>Du skal udfylde begge login-felter!</strong><br><br>";
}
if($_GET['err'] == 2)
{
    echo "<strong>De indtastede oplysninger var ikke korrekte!</strong><br><br>";
}
?>

<form method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>">
Brugernavn:<br>
<input type="text" name="brugernavn"><br>
Password:<br>
<input type="password" name="adgangskode"><br>
<input type="submit" name="submit" value="Log ind">
</form>
Avatar billede hewa Nybegynder
15. januar 2007 - 00:54 #78
Det forstår jeg godt - det er også langt over min sengetid og jeg skal møde tidligt i morgen, øv :)

Jeg prøvede lige koden, men desværre vil den hverken det ene eller det andet :-(

Har du tid og mulighed for det, er jeg klar i morgen aften igen :)

Tak for hjælpen indtil nu!!
Avatar billede shooka Nybegynder
15. januar 2007 - 16:02 #79
<input type="submit" name="submit" value="Log ind">

skal rettes til

<input type="submit" name="Submit" value="Log ind">

Det er navnet på knappen, som jeg åbentbart har ændret...
Avatar billede hewa Nybegynder
15. januar 2007 - 17:02 #80
Jeg har nu ændret:
if(!empty($_POST['brugernavn']) && !empty($_POST['adgangskode']) && isset($_POST['submit']))
(submit til lille s)
Nu kan den melde ud og sige, noget er forkert, men er felterne tommme, sker der ikke noget.
Avatar billede shooka Nybegynder
15. januar 2007 - 19:10 #81
Nej, når du gør det på den måde, så skal du også rette S => s

else if(isset($_POST['Submit']))

til

else if(isset($_POST['submit']))
Avatar billede hewa Nybegynder
16. januar 2007 - 08:11 #82
Tænk en gang at der kan være forskel på om det dur ved s og S :) og nu dur det tilsyneladende :)
Dog fortæller den ikke, hvad jeg er logget på som, og jeg kan ikke gennemskue, hvad du laver med "getuser", så jeg ved ikke, om der stadig er en fejl i det?
Når man så er logget ind, og trykker på knappen igen, fortæller den ikke, man er logget ind, men at man skal udfylde begge felter, er det en fejl eller?
Avatar billede shooka Nybegynder
16. januar 2007 - 20:11 #83
echo "Du er nu logget ind som <strong>".getuser($_SESSION['bid'], "brugernavn")."</strong>";

skal æmdres til

    echo "Du er nu logget ind som <strong>".getuser($_SESSION['bid'],brugernavn)."</strong>";
Avatar billede hewa Nybegynder
16. januar 2007 - 20:46 #84
Ændringen havde ikke noget effekt :(
Avatar billede hewa Nybegynder
16. januar 2007 - 21:03 #85
Men ved du, hvad der er værre?
Oprindelig gik denne tråd på, at jeg havde en side a la det, du har lavet til mig, bortset fra, det du har lavet, er mere avanceret og jeg som har sværre ved at forstå. Men lige nu er jeg lige vidt, jeg har stadig ikke koden, der skal bruges på andre sider ;-)
Er den nem nok for dig at strikke sammen?
(jeg har prøvet, men det lykkes ikke)
Jeg håber, du stadig har mod på at hjælpe det sidste, selvom det efterhånden er blevet et større projekt. Indtil nu tusinde tak for hjælpen!
Avatar billede shooka Nybegynder
17. januar 2007 - 20:47 #86
Så er det linien

    return $array['$info'];

som skal være

    return $array[$info];
Avatar billede shooka Nybegynder
17. januar 2007 - 20:53 #87
Og ja, der kan lige strikkes en kode sammen, som ser sådan ud:

session_start();
include "connect.php";
if(empty($_SESSION['bid']))
{
echo "<strong>Du skal være logget ind, for at se denne side.</strong>";
exit;
}

Den kode finder ud af, om man er logger ind, og hvis $_SESSION['bid'] er tom, så udskriver den "Du skal være logget ind..." inden for { og }. Derefter sørger exit; for at resten af koden ikke bliver kørt.
Avatar billede hewa Nybegynder
17. januar 2007 - 20:54 #88
Det virkede sgu :)))
- ikke fordi jeg kan se logikken i det, men det virkede. (er der mon en lille forklaring på det?)
Avatar billede hewa Nybegynder
17. januar 2007 - 21:03 #89
Den kode du der har lavet, minder om min (ja, ja, jeg øver mig :) borset fra et ! men med den kode du har lavet kan jeg ikke se, den side jeg har logget på. Hvis jeg er logget ind, kan jeg så ikke kalde et link i hyperlinks og så stadig være logget ind? (det kan selvfølgelig være min fejl)

Hvor mange point skal du have mere for din store hjælp?
Avatar billede hewa Nybegynder
17. januar 2007 - 21:19 #90
Hov, når jeg ser på vores tekster bagefter, kan det måske godt misforståes. Det med return $array[$info]; virkede, men det under virkede ikke. Selvom jeg er logget ind, siger den, jeg ikke er logget ind (medmindre jeg her gjort noget forkert)
Avatar billede shooka Nybegynder
19. januar 2007 - 18:12 #91
Hvorfor virker ny_admin.php ikke?
Avatar billede hewa Nybegynder
19. januar 2007 - 18:15 #92
Åh... det er fordi jeg har smidt det i en mappe der hedder test ;-)
Avatar billede hewa Nybegynder
22. januar 2007 - 19:00 #93
shooka, lad os ikke trække pinen mere, smid et svar, så får du point.
Avatar billede hewa Nybegynder
27. januar 2007 - 14:12 #94
AVVVVVVVVVVVV for pokker shooka... jeg har bøvlet rundt og nok især knoldet rundt i alt det login halløj... og ved du hvad? Det du har lavet til mig virker perfekt!!!

Jeg var ikke klar over, at man skulle åbne sessinen før html, det troede jeg bare man skulle gøre, når man havde brug for det.

Undskyld fordi du har brugt så meget tid på en nybegynder, som ikke var klar over, hvordan det hele hang sammen, og for min bemærkning om, at vi ikke skulle trække pinen mere, undskyld!

Jeg er ikke helt med på din kode, så kunne jeg lokke dig til kort at fortælle kort, hvordan den er skruet sammen?

Uanset hvad skal du have dine point, de er mere end velfortjente!!!
Avatar billede shooka Nybegynder
28. januar 2007 - 20:56 #95
Det lyder bare godt :)

Held og lykke med din nye side
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