Avatar billede radiomus Nybegynder
19. maj 2006 - 10:33 Der er 1 kommentar og
1 løsning

mySQL kode til Interbase

Har fundet et simpelt login lavet med php/mySQL http://www.eksperten.dk/artikler/913, har prøvet at overføre det til ibase. men virker selvfølgelig ikke :) nogen der kan se fejl ved koden? forslag?

eneste ting jeg ved virker, er logon'et til databasen.

databasen film.gdb indeholder tabellen personer med datafelterne brugernavn og kodeord.

xtop.inc:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="da">

login.php:
<?php
session_start();
include "xtop.inc";

  $title  = "Loginfelt";
  $dbpath = "localhost:c:/htdocs/film.gdb";
  $dbuser = "sysdba";
  $dbpass = "masterkey";
 
  printf("<head><title>%s</title>\n", $title);
  print("</head>");
  print("<body>");
  printf("<h1>%s</h1>\n", $title);

$dbhandle = ibase_connect($dbpath, $dbuser, $dbpass) or die ("Fejl ved DB-Connect");
        }

function ShowForm($dbuser = '')
        {
        return "
        <form name="LoginForm" method="post" action="">
        <table>
        <tr>
          <td>Brugernavn:</td>
          <td><input type="text" name="brugernavn" value="". $dbuser .""></td>
            <tr>
          <td>Kodeord:</td>
          <td><input type="text" name="kodeord" value="". $dbpass .""></td>
        </tr>
              <tr><td colspan="2"><input type="submit" name="Send" value="Log ind"></td></tr>
          </table>
        </form>
        }

function CheckLogin($dbuser, $dbpass)
        {
        $Query = ibase_query("SELECT * FROM personer WHERE brugernavn="$dbuser" AND kodeord="$dbpass");
               
        // Smider resultatet ind i et objekt
        $Row = ibase_fetch_object($Query);

                       
        // Tjekker om der var nogen der passede til vores forespørgsel
        if(!empty($Row) && $Row->kodeord == $dbpass && $Row->brugernavn == $dbuser)
            {           
            // Smider brugernavnet og kodeordet ind i sessioner
            $_SESSION['brugernavn'] = $dbuser;
            $_SESSION['kodeord'] = $dbpass;                       

            // Så er man logget ind.
            return true;
            }
        else
            {           
            // Smider en javascript alert til brugeren der siger, at han ikke loggede korrekt ind.
            echo "<script language=\"javascript\" type=\"text/javascript\">alert('Dine loginoplysninger passede ikke sammen.');</script>";
                       
            // Returnerer false
            return false;
            }
        }
?>
// Hvis man ikke er logget ind, skal man smides til login-formularen
if(!isset($_SESSION['brugernavn']))
    {   
   
    $dbpass = sha1($_POST['kodeord']);
        if($Login->CheckLogin($_POST['brugernavn'], $dbpass))
        {
        // Man er logget ind
        header("location: /");
        }
            // Sætter formen ind med de brugerindtastede oplysninger
    echo $Login->ShowForm($_POST['brugernavn']);

</body></html>
Avatar billede erikjacobsen Ekspert
19. maj 2006 - 10:58 #1
Den har har nu heller ikke virket i mysql
    $Query = ibase_query("SELECT * FROM personer WHERE brugernavn="$dbuser" AND kodeord="$dbpass");
ret den til
    $Query = ibase_query("SELECT * FROM personer WHERE brugernavn='$dbuser' AND kodeord='$dbpass'");
Avatar billede radiomus Nybegynder
21. oktober 2008 - 15:17 #2
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
Computerworld tilbyder specialiserede kurser i database-management

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