Avatar billede presti Nybegynder
28. februar 2004 - 23:18 Der er 17 kommentarer og
1 løsning

Et admin login

Jeg har lavet en hp for nogle elever på en skole. eleverne skal ikke logge ind for at få adgang til sitet. Derimod skal lærerne kunne klikke på et link, hvorpå der kommer en FORM frem med login & password. De skal altså ha en slags "udvidet" adgang...det kunne være evt. indlæg olign. Jeg har prøvet mig frem med sessions, men fatter hat og briller. Da det nok vil være nemmere at forklare hvad jeg mener "live" (eller bar post nogle ideer i tråden)...er herunder mit ICQ. nummer: 116494143

mvh. Peter Presti
Avatar billede elskermad.dk Nybegynder
28. februar 2004 - 23:25 #2
sæt denne linie ind øverst på de sider der skal være password-beskyttet:

if (!isset($_SESSION[admin])) {
header("location:login.php");
}


så kan login.php se således ud:

<?

$bruger = "hans";
$pass = 1234; // evt med " hvis der bruges bogstaver

if (!isset($_SESSION[admin)) {
  if (isset($_POST[brugernavn])) {
    if ($_POST[brugernavn] == $bruger && $_POST[password] == $pass) {
      $admin = $bruger;
      session_register(admin);
      $status = "ok";
    }
    else {
      $status = "fejl";
    }

  if ($status == "fejl") {
    echo"
      der opstod en fejl
    ";
  }

  echo"
    <form method='post' action='login.php'>
      brugernavn:<br>
      <input type='text' name='brugernavn'><br>
      <br>
      password:<br>
      <input type='password' name='password'><br>
      <br>
      <input type='submit' value='login'>
    </form>
  ";
}
else {
  echo"
    Du er allerede logged ind
  ";
}

?>

udtestet og lavet i formen på E over en rød hindbær-brus så garantere ikke for effekt! ;]
Avatar billede googolplex Novice
28. februar 2004 - 23:27 #3
Men det kommer lidt an på hvordan din side er bygget op, hvis lærerens sider ligger i en anden mappe på serveren er det langt nemmere bare at bruge .htacces:

http://www.webcafe.dk/artikler/apache/htaccesspassword/

Det er meget nemt at sætte op og noget af det sikreste du kan finde!
Avatar billede elskermad.dk Nybegynder
28. februar 2004 - 23:27 #4
første fejl er self at du så også på dine sider skal huske at have session_start() øverst på alle dine sider :D
Avatar billede presti Nybegynder
29. februar 2004 - 00:17 #5
elskermad.dk >>>

Det er lidt specielt.. :) Jeg har lagt ALLE lærernes initialer og en kode ned i en txt.fil. disse oplysninger skal lægges over i en database. Når lærerne så skal logge ind, står både initialerne & koden i Mysql-databasen.

Lige et til spørgsmål..
På min startside er der en menu med forskellig links. Når lærerne har logget ind, skal der tilføjes en lille undermenu under den oprindelige. Kan dette lade sig gøre?
mvh. Presti... og tak for hjælpen pt. :)
Avatar billede elskermad.dk Nybegynder
29. februar 2004 - 00:23 #6
jep 2'eren er helt simpel hvis du sådan nogenlunde kunne følge med i det jeg skrev før?

i din menu kan du bare lave dette:

<?
if (isset($_SESSION[admin])) {
  echo"
    menupunkt
  ";
}
?>

så kommer menupunkt med...



og det med database kan også godt lade sig gøre
Avatar billede presti Nybegynder
29. februar 2004 - 00:27 #7
Hvordan får jeg jeg så det login til at virke, hvis jeg ska hente oplysningerne fra sql basen... :) Ved godt jeg spørg dumt.. men er usikker...hvordan koden ska se ud?!
kewl med menuen!!!
Avatar billede elskermad.dk Nybegynder
29. februar 2004 - 00:32 #8
kewl?

login.php:

<?

if (!isset($_SESSION[admin)) {
  if (isset($_POST[brugernavn])) {
    $foresp = mysql_query("SELECT * FROM user WHERE initial = '$_POST[brugernavn]' AND kode = '$_POST[password]'") or die(mysql_error());
    while($row = mysql_fetch_array($foresp)) {
      $id = $row["id"];
    }
    if (!empty($id)) {
      $admin = $id;
      session_register(admin);
      $status = "ok";
    }
    else {
      $status = "fejl";
    }

  if ($status == "fejl") {
    echo"
      der opstod en fejl
    ";
  }

  echo"
    <form method='post' action='login.php'>
      brugernavn:<br>
      <input type='text' name='brugernavn'><br>
      <br>
      password:<br>
      <input type='password' name='password'><br>
      <br>
      <input type='submit' value='login'>
    </form>
  ";
}
else {
  echo"
    Du er allerede logged ind
  ";
}

?>

så skal din tabel indeholde: id,initial og kode... kan du se fidussen?
Avatar billede presti Nybegynder
29. februar 2004 - 00:37 #9
Jamen det er helt perfekt! Jeg vil kigge på det nu..
Avatar billede presti Nybegynder
29. februar 2004 - 00:50 #10
Hmm... har du en @mail adr. for det virker SLET ikke ;)
Avatar billede presti Nybegynder
29. februar 2004 - 01:03 #11
ok.. min index.php der såden her ud:

<?PHP
session_start();
$_REQUEST["side"];

include("db.php");

$con = mysql_connect("localhost", "root");

if (!mysql_select_db("idrætsdag"))
{
        OpretDB();
}
?>

<html>

<head>
<title>Idrætsdagen</title>
<style type="text/css">
  body {
      background-image: url(Billeder/baggrund.jpg);

      }
</style>
</head>

<body>

<center>
<table width="80%">
  <tr>
    <td colspan="2">


        <table bgcolor="white" width="100%">

              <tr>
              <td bgcolor="#65809A">
              <p align="center"><font size="20" face="SF Retroesque FX" color="#FFFFFF"><b>Velkommen</b></font>
              </td>
              </tr>
        </table>


    </td>
  </tr>


  <tr>
      <td width="18%" valign="top">

        <table bgcolor="white" width="100%">

            <tr>
                <td bgcolor="#65809A">
                <font size="5" face="SF Retroesque FX" color="#FFFFFF"><b>Menu</b></font>
                </td>


            </tr>

            <tr>
              <td bgcolor="#F0F0F0" height="10"><font face="Verdana" size="1"><img border="0" name="img1" src="billeder/pil2.gif" width=12 height=12>&nbsp<a href="?side=test" onMouseOver="img1.src='billeder/pil.gif'" onMouseOut="img1.src='billeder/pil2.gif'">Forside</a></font>
              </td>
            </tr>

            <tr>
              <td bgcolor="#F0F0F0" height="10"><font face="Verdana" size="1"><img border="0" name="img2" src="billeder/pil2.gif" width=12 height=12>&nbsp<a href="http://www.google.dk" onMouseOver="img2.src='billeder/pil.gif'" onMouseOut="img2.src='billeder/pil2.gif'">Forside2</a></font>
              </td>
            </tr>

            <tr>
              <td bgcolor="#F0F0F0" height="10"><font face="Verdana" size="1"><img border="0" name="img3" SRC="billeder/pil2.gif" width=12 height=12>&nbsp<a href="http://www.google.dk" onMouseOver="img3.src='billeder/pil.gif'" onMouseOut="img3.src='billeder/pil2.gif'">Forside</a></font>
              </td>
            </tr>

            <tr>
              <td bgcolor="#F0F0F0" height="10"><font face="Verdana" size="1"><img border="0" name="img4" SRC="billeder/pil2.gif" width=12 height=12>&nbsp<a href="http://www.google.dk" onMouseOver="img4.src='billeder/pil.gif'" onMouseOut="img4.src='billeder/pil2.gif'">Forside</a></font>
              </td>
            </tr>

            <tr>
              <td bgcolor="#F0F0F0" height="10"><font face="Verdana" size="1"><img border="0" name="img5" SRC="billeder/pil2.gif" width=12 height=12>&nbsp<a href="http://www.google.dk" onMouseOver="img5.src='billeder/pil.gif'" onMouseOut="img5.src='billeder/pil2.gif'">Forside</a></font>
              </td>
            </tr>

            <tr>
              <td bgcolor="#F0F0F0" height="10"><font face="Verdana" size="1"><img border="0" name="img6" SRC="billeder/pil2.gif" width=12 height=12>&nbsp<a href="?side=login" onMouseOver="img6.src='billeder/pil.gif'" onMouseOut="img6.src='billeder/pil2.gif'">Lærer login</a></font>
              </td>

            </tr>
            <tr>
              <td
                  <?
                  if (isset($_SESSION[admin])) {
                    echo"
                      menupunkt
                      ";
                      }
                      ?>

              </td>

            </tr>


          </table>

    </td>
    <td valign="top">
        <table bgcolor="white" width="100%" border="0">
        <tr>
        <td>
                                                        <?
                                                    if (isset($_REQUEST["side"])) {
                                                            $side = $_REQUEST["side"].".php";
                                                            include ("$side");
                                                        }
                                                        ?>
        </td>
        </tr>
        </table>


    </td>
    </tr>




  </td>
  </tr>


</table>

</body>

</html>

Og min login.php ser sådan her ud:

<?php
session_start();
$_REQUEST["side"];
if (!isset($_SESSION[admin)) {
  if (isset($_POST[brugernavn])) {
    $foresp = mysql_query("SELECT * FROM lærere WHERE brugernavn = '$_POST[brugernavn]' AND password = '$_POST[password]'") or die(mysql_error());
    while($row = mysql_fetch_array($foresp)) {
      $id = $row["brugerid"];
    }
    if (!empty($id)) {
      $admin = $id;
      session_register(admin);
      $status = "ok";
    }
    else {
      $status = "fejl";
    }

  if ($status == "fejl") {
    echo"
      der opstod en fejl
    ";
  }

  echo"
    <form method='post' action='login.php'>
      brugernavn:<br>
      <input type='text' name='brugernavn'><br>
      <br>
      password:<br>
      <input type='password' name='password'><br>
      <br>
      <input type='submit' value='login'>
    </form>
  ";
}
else {
  echo"
    Du er allerede logged ind
  ";
}

?>

    <form method='post' action='?side=login'>
      brugernavn:<br>
      <input type='text' name='brugernavn'><br>
      <br>
      password:<br>
      <input type='password' name='password'><br>
      <br>
      <input type='submit' value='login'>
    </form>

Det virker bare ikke :)
Avatar billede elskermad.dk Nybegynder
29. februar 2004 - 09:39 #12
kan jeg få et url jeg kan se det på... og hvordan ser din mysql-tabel ud?
Avatar billede presti Nybegynder
29. februar 2004 - 12:07 #13
Jeg kan desværre ikke give dig et link, men her er mit dump:

Database: idrætsdag - Tabel lærere kører på localhost
# phpMyAdmin SQL Dump
# version 2.5.5-pl1
# http://www.phpmyadmin.net
#
# Vært: localhost
# Genereringstidspunkt: 29/02 2004 kl. 12:05:36
# Server version: 4.0.17
# PHP version: 4.3.4
#
# Database: : `idrætsdag`
#

# --------------------------------------------------------

#
# Struktur dump for tabellen `lærere`
#

CREATE TABLE `lærere` (
  `brugerid` int(25) NOT NULL auto_increment,
  `brugernavn` varchar(25) NOT NULL default '',
  `password` varchar(255) NOT NULL default '',
  PRIMARY KEY  (`brugerid`)
) TYPE=MyISAM AUTO_INCREMENT=3 ;

#
# Data dump for tabellen `lærere`
#

INSERT INTO `lærere` VALUES (2, 'admin', '123456');
Avatar billede elskermad.dk Nybegynder
29. februar 2004 - 12:42 #14
hvilke fejl siger den?
Avatar billede presti Nybegynder
29. februar 2004 - 12:59 #15
Den siger ingen fejl. Der kommer bare et tomt felt... jeg kan ikke rigtig "teste" om det virker jo... sådan en session den holder indtil brugeren har lukket sin browser ik? Nogen forslag?
Avatar billede elskermad.dk Nybegynder
29. februar 2004 - 14:00 #16
ehmn har du connected til mysql rigtigt? synes den ser lidt underlig ud din connect
Avatar billede presti Nybegynder
29. februar 2004 - 14:09 #17
Jeps... det er gjort.. og det funker som det skal med connection...Jeg har lavet det på præcis samme måde som du.
Avatar billede presti Nybegynder
29. februar 2004 - 14:11 #18
Dit eksempel på login.php virker slet ikke på min com. Der kommer intet frem!
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