Avatar billede fhansen Praktikant
29. januar 2007 - 01:02 Der er 10 kommentarer og
1 løsning

Login Script

Hej

Jeg er ny i dette PHP.
Så jeg har været ude og låne lidt kode her og der, men
eg har lidt problem med mit login, jeg kan få check_login til at fungere, jeg får denne fejl
Parse error: parse error, unexpected T_STRING, expecting '(' in C:\apache\htdocs\Havn\Minefiler\side1.php on line 2


Jeg vil også gerne have at der bliver læst en error.html hvis Check_login() er false, den skal læses ind ind i et target med navnet Contents, jeg har lidt besvær med at finde ud af Location:



<?php
if Check_login(){echo"<center><h2>Dette er side 1</h2></center>";
}
?>

function Check_login() {

global $users;

    if(isset($_SESSION["user"], $_SESSION["ip"]) && isset($users[$_SESSION["user"]]) && $_SESSION["ip"] == $_SERVER["REMOTE_ADDR"]) {
        return true;
    }

return false;
}


Hilsen


Finn
Avatar billede dragothica Nybegynder
29. januar 2007 - 01:17 #1
<?php
if (Check_login()) {
    print "<center><h2>Dette er side 1</h2></center>";
} else {
    include("./error.html");
    /* Vi kan også sende folk videre vha. header('location: error.html') */
}
?>
Avatar billede fhansen Praktikant
29. januar 2007 - 01:38 #2
Nej det virker desværre ikke
Avatar billede windcape Praktikant
29. januar 2007 - 12:23 #3
dit problem er , som dragothica viste, at du har glemet et sæt parenteser her:

if Check_login() {

det skal nemlig være

if(Check_login()) {

Hvad du ellers får af syntax-fejl kan vi jo ikke vide.
Avatar billede windcape Praktikant
29. januar 2007 - 12:24 #4
Derudover så er

$_SESSION["ip"] == $_SERVER["REMOTE_ADDR"]

noget værre fis. Jeg vil anbefale at du lærer at bruge sessions før du fortsætter, www.php.net/session
Avatar billede fhansen Praktikant
29. januar 2007 - 21:00 #5
Hmmmm
Hvis jeg laver den ændring I foreslår får jeg flg. error
Fatal error: Call to undefined function check_login() in C:\apache\htdocs\Havn\Minefiler\side1.php on line 2

Er fejlen ikke noget med at Side1.php ikke ved hvor den skal kigge efter functionen check_login().


Jeg burde måske have fortalt lidt mere om hvor dan jeg ønsker af anvende login'et

på min indexside logger man ind, hvorefter man skulle kunne vælge sider fra en menu, siderne skal så kunne checke om en bruger er logget in



settings.php
<?php
$base_dir = "minefiler/";

$base_file = "bruger.php";

$users = array("admin" => "adminpassword", "showsource" => "viskode", "phpbegynder" => "phpnewbie");

$defalut_file = $base_dir ."bruger.php";

function check_login() {

global $users;

    if(isset($_SESSION["user"], $_SESSION["ip"]) && isset($users[$_SESSION["user"]]) && $_SESSION["ip"] == $_SERVER["REMOTE_ADDR"]) {
    return true;
    }
return false;
}
session_start();
if(isset($_POST["logud"])) {
    $_SESSION = array();
    session_destroy();
}
if(isset($_POST["brugernavn"], $_POST["password"])) {
$default_text = "Forkert bruger og/eller password!";
    if(isset($users[$_POST["brugernavn"]])) {
        if($users[$_POST["brugernavn"]] == $_POST["password"]) {
            $_SESSION["user"] = $_POST["brugernavn"];
            $_SESSION["ip"] = $_SERVER["REMOTE_ADDR"];
        }else{
            $_SESSION["besked"] = $default_text;
        }
    }else{
    $_SESSION["besked"] = $default_text;
    }
}

?>

Side1.php

<?php
if (check_login()){
    print "<center><h2>Dette er side 1</h2></center>";
} else {
    include("./error.html");
    /* Vi kan også sende folk videre vha. header('location: error.html') */
}
?>
Avatar billede fhansen Praktikant
29. januar 2007 - 21:05 #6
Hvorfor kan du ikke lide session
Avatar billede fhansen Praktikant
29. januar 2007 - 21:16 #7
Damn har fundet fejlen.
Ved tidligere forsøg havde jeg bare skrevet include('settings.php');


<?php
include("settings.php");
if (check_login()){
    print "<center><h2>Dette er side 1</h2></center>";
} else {
    include("./error.html");
    /* Vi kan også sende folk videre vha. header('location: error.html') */
}
?>
Avatar billede fhansen Praktikant
29. januar 2007 - 21:17 #8
Uanset hvad har i begge været en stor hjælp, jeg har lært en del af jeres svar.
Avatar billede windcape Praktikant
30. januar 2007 - 02:09 #9
Jeg springer over points.

-- Sessions er fine, men de er allerede låst til det SID (som enten er i en cookie, eller query-string), derfor er et IP check samtidigmed fjollet, da det ikke giver nogen som helst mening, og kan skabe fejl for folk som benytter tor eller har dynamisk ip.
Avatar billede fhansen Praktikant
30. januar 2007 - 09:20 #10
Ahh, det kan jeg godt se...
Avatar billede fhansen Praktikant
01. december 2010 - 23:06 #11
Lukker
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