Avatar billede usse Nybegynder
10. marts 2003 - 17:34 Der er 7 kommentarer og
1 løsning

Login opbygning på site

Jeg har lavet et login i php, men hvordan opbygger jeg mit login sådan at jeg kan have mit login stående ude i siden, og når man så logger ind loader den (den beskyttede side) i en IFRAME.

Siden er f.eks opbygget således:

<HTML>
<HEAD>
<TITLE>Hovedsiden med login i siden</TITLE>
</HEAD>
<BODY>
<TABLE>
<TR><TD COLSPAN="3" WIDTH="600">OVERSKRIFT BANNER</TD></TR>
<TR><TD COLSPAN="2" HEIGHT="300" WIDTH="80%">Her skal den hemmlige side loades!<IFRAME></IFRAME></TD><TD WIDTH="200">LOGIN SKAL VÆRRE HER!</TD></TR>
<TR><TD COLSPAN="3">BUND</TD></TR>
</TABLE>
</BODY>
</HTML>

HER ER MIT SCRIPT (LOGIN), som skal tilpasses til hovedsiden eks.:

<HTML>
<HEAD>
</HEAD>
<BODY>
<?php
////////////////////////////////////////////////////////////////////////////////
// FUNKTIONS ERKLÆRINGER
////////////////////////////////////////////////////////////////////////////////

// FUNKTION TIL AT ÅBNER EN FORBINDELSE TIL DATABASEN!
function aabn_forbindelse_og_vaelgdb()
{
  $server = "localhost";
  $bruger = "bruger";
  $kodeord = "xxxxx";
  $database = "rooster";
  $table = "login";

  if (!mysql_connect("$server","$bruger","$kodeord")) {
    udskriv_fejl("Kunne ikke oprette en forbindelse til MySQL.");
  }

  if(!mysql_select_db("$database")) {
    udskriv_fejl("Kunne ikke vælge databasen: $database");
  }
}
// FUNKTION TIL AT LUKKER FORBINDELSEN TIL DATABASEN IGEN!
function luk_forbindelse()
{
  if(!mysql_close()) {
    echo "Kunne ikke lukke forbindelsen til MySQL!";
  }
}
//
function getDataFromSqlQuery($SQL)
{
    $resultFromQuery = mysql_query($SQL);
    while($row = mysql_fetch_array($resultFromQuery)) {
      $resultArray[] = $row;
    }
  if (!isset($resultArray)) {
      $resultArray = FALSE;
  }
  return $resultArray;
}
// FUNKTION TIL AT UDSKRIVE FEJL MED
function udskriv_fejl($STR)
{
    print("<b>$STR</b>");
}
////////////////////////////////////////////////////////////////////////////////
// HER STARTER SCRIPTET
////////////////////////////////////////////////////////////////////////////////

// ÅBNER EN FORBINDELSE TIL DATABASEN
aabn_forbindelse_og_vaelgdb();

if(isset($_GET['action']) && $_GET['action'] == "login") {
    if($_POST['login_navn'] == "") {
      print "Du har ikke indtastet et brugernavn!";
    } elseif($_POST['login_kode'] == "") {
      print "Du har ikke indtastet en password!";
    } else {
      #SQL STRENG
      $tjek = "
      SELECT navn, kode
      FROM login
      WHERE navn = '".$_POST['login_navn']."'
        AND kode = '".$_POST['login_kode']."'";
      $return_from_query = getDataFromSqlQuery($tjek);
      if($return_from_query[0]['navn'] == $_POST['login_navn'] && $return_from_query[0]['kode'] == $_POST['login_kode']){

?>
<?php include("c:/inetpub/wwwroot/zerocontrol/rooster.php"); ?>
<?
        } else {
        echo "Der er fejl i enten brugernavn eller password!";
        }
    }
}
?>
<FORM ACTION="<?=basename($_SERVER['PHP_SELF']);?>?action=login" METHOD="POST">
<INPUT NAME="login_navn" TYPE="text"><BR />
<INPUT NAME="login_kode" TYPE="text"><BR />
<INPUT TYPE="submit" VALUE="Login"><BR>
</FORM>

<?
// LUKKER FORBINDELSEN TIL DATABASEN
luk_forbindelse();
?>
</BODY>
</HTML>
Avatar billede schaefner Juniormester
10. marts 2003 - 17:40 #1
Hvis folk har skrevet rigtig, så kan du køre dette lille javascript som så opdaterer din iframe med den nye side:

<script>
window.parent.frames["framenavn1"].location.href='menutjekloginsiden.php';
</script>
Avatar billede schaefner Juniormester
10. marts 2003 - 17:43 #2
Så skal du bare huske at kalde din iframe et navn, f.eks:
<IFRAME name="framenavn1"></IFRAME>
Avatar billede usse Nybegynder
10. marts 2003 - 17:47 #3
ja ved jeg godt.... men blot et hurtigt eks.
Avatar billede usse Nybegynder
10. marts 2003 - 18:08 #4
Kan du ikke lige give et eks.. mit login i siden skal være i forms så jeg kan ikke lige se sammenhængen..
Avatar billede usse Nybegynder
10. marts 2003 - 18:10 #5
<HEAD>
http://www.zerocontrol.dk/zerocontrol/cslogin.php  se her
<script>
window.parent.frames["iframe"].location.href='tjeklogin.php';
</script>
</HEAD>
<IFRAME name="iframe"></IFRAME>
Avatar billede schaefner Juniormester
10. marts 2003 - 18:12 #6
Det er lidt svært at finde rundt i din kode, men umiddelbart er det noget ala det her:

<HTML>
<HEAD>
<script language="Javascript">
function sideload() {
  window.parent.frames["menu"].location.href='menu-ok.php';
}
</script>
</HEAD>
<BODY>
<?php
////////////////////////////////////////////////////////////////////////////////
// FUNKTIONS ERKLÆRINGER
////////////////////////////////////////////////////////////////////////////////

// FUNKTION TIL AT ÅBNER EN FORBINDELSE TIL DATABASEN!
function aabn_forbindelse_og_vaelgdb()
{
  $server = "localhost";
  $bruger = "bruger";
  $kodeord = "xxxxx";
  $database = "rooster";
  $table = "login";

  if (!mysql_connect("$server","$bruger","$kodeord")) {
    udskriv_fejl("Kunne ikke oprette en forbindelse til MySQL.");
  }

  if(!mysql_select_db("$database")) {
    udskriv_fejl("Kunne ikke vælge databasen: $database");
  }
}
// FUNKTION TIL AT LUKKER FORBINDELSEN TIL DATABASEN IGEN!
function luk_forbindelse()
{
  if(!mysql_close()) {
    echo "Kunne ikke lukke forbindelsen til MySQL!";
  }
}
//
function getDataFromSqlQuery($SQL)
{
    $resultFromQuery = mysql_query($SQL);
    while($row = mysql_fetch_array($resultFromQuery)) {
      $resultArray[] = $row;
    }
  if (!isset($resultArray)) {
      $resultArray = FALSE;
  }
  return $resultArray;
}
// FUNKTION TIL AT UDSKRIVE FEJL MED
function udskriv_fejl($STR)
{
    print("<b>$STR</b>");
}
////////////////////////////////////////////////////////////////////////////////
// HER STARTER SCRIPTET
////////////////////////////////////////////////////////////////////////////////

// ÅBNER EN FORBINDELSE TIL DATABASEN
aabn_forbindelse_og_vaelgdb();

if(isset($_GET['action']) && $_GET['action'] == "login") {
    if($_POST['login_navn'] == "") {
      print "Du har ikke indtastet et brugernavn!";
    } elseif($_POST['login_kode'] == "") {
      print "Du har ikke indtastet en password!";
    } else {
      #SQL STRENG
      $tjek = "
      SELECT navn, kode
      FROM login
      WHERE navn = '".$_POST['login_navn']."'
        AND kode = '".$_POST['login_kode']."'";
      $return_from_query = getDataFromSqlQuery($tjek);
      if($return_from_query[0]['navn'] == $_POST['login_navn'] && $return_from_query[0]['kode'] == $_POST['login_kode']){

?>
<?php include("c:/inetpub/wwwroot/zerocontrol/rooster.php"); ?>
<script>sideload();</script>
<?
        } else {
        echo "Der er fejl i enten brugernavn eller password!";
        }
    }
}
?>
<FORM ACTION="<?=basename($_SERVER['PHP_SELF']);?>?action=login" METHOD="POST">
<INPUT NAME="login_navn" TYPE="text"><BR />
<INPUT NAME="login_kode" TYPE="text"><BR />
<INPUT TYPE="submit" VALUE="Login"><BR>
</FORM>

<?
// LUKKER FORBINDELSEN TIL DATABASEN
luk_forbindelse();
?>
</BODY>
</HTML>

Har lavet lidt om på javascript-funktionen.
Avatar billede schaefner Juniormester
21. marts 2003 - 13:39 #7
Virker det?

/Jesper
Avatar billede usse Nybegynder
13. marts 2004 - 00:53 #8
Har løst det
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