Avatar billede the_edge Nybegynder
28. marts 2007 - 19:22 Der er 8 kommentarer og
1 løsning

Login script. loger ind automatiske

Hejsa

Jeg kan ikke forstår hvorfor man kan logge ind bare ved at trykke på Login knappen ? databasen er helt tom, så det burde ikke kunne ske. sådan ser det ud... nogen forslag


<?php

include_once("sql.php");
include_once("help.php");

echo "<p>".$_SESSION["velkommen"] . " " . $_SESSION["brugernavn"]."</p>";

    if (empty($_SESSION["login"]))
   
    {
        echo '<div id="login">
   
    <table align="center" border="0">
    <form action="index.php?pid=login" method="post">
   
    <tr><td><p>Brugernavn :</p></td><td><input type="text" name="brugernavn" value=""></td></tr>
    <tr><td><p>Kodeord :</p>  </td><td><input type="text" name="kodeord" value="">  </td></tr>
    <tr><td>&nbsp</td>          <td><input type="submit" value="Login" name="login">        </td></tr>
   
    </form>
    </table>
   
    </div>
    <br />
    <a href="index.php?pid=glemtkd">Glemt Password? Klik her</a>
   
    ';
   
       
    }

   
   
   
if (isset($_POST["login"]))
{
    $indtastedbrugernavn = trimmet($_POST["brugernavn"]);
    $indtastedkodeord = $_POST["kodeord"];
   
   
    //echo $indtastedbrugernavn. "</br> ". $indtastedkodeord;
   
    $hentet = sql("select * from brugenavn where Brugernavn = '$indtastedbrugernavn'");
   
    $dbbrugernavn = $hentet["Brugernavn"];
    $dbkodeord = $hentet["Kodeord"];
   
    //echo "$dbbrugernavn";
           
    if ($indtastedbrugernavn == $dbbrugernavn && $indtastedkodeord == $dbkodeord)
    {
       
    echo "<p>"."Du er nu logget ind". "</p>";
   
    //her bliver det lagt over i sessioner så de kan blive tilgået over det hele

    echo "<p>".$dbkodeord. "</p>";
    $_SESSION["brugernavn"] = $hentet["Brugernavn"];
    $_SESSION["fornavn"] = $hentet["Fornavn"];
    $_SESSION["efternavn"] = $hentet["Efternavn"];
    $_SESSION["email"] = $hentet["Email"];
    $_SESSION["profilb"] = $hentet["Profilbilled"];
    $_SESSION["ombrugeren"] = $hentet["Ombrugeren"];
   
   
    $_SESSION["velkommen"] = "Du er nu logget ind";
   
   
    if(empty($_SESSION["login"]))
      {
          echo '<META HTTP-EQUIV="refresh" CONTENT="0.1">';   
         
      }
   
    $_SESSION["login"] = 1;
       
    }
   
    else if ($indtastedbrugernavn != $dbbrugernavn || $indtastedkodeord != $dbkodeord)
    {
        echo "<p>"."Forkert brugernavn eller kodeord". "</p>";
    }
   
   
   
   
   
}
   
?>
Avatar billede johan.o Nybegynder
28. marts 2007 - 22:01 #1
Før jeg kaster mig ud i diverse røver historier må jeg hellere spørge hvilken database type vi snakker om ? er det mysql ?

Mvh. Johan
Avatar billede the_edge Nybegynder
29. marts 2007 - 15:33 #2
hej Johan

ja det er en mysql database
Avatar billede johan.o Nybegynder
29. marts 2007 - 16:30 #3
Okay, jeg bliver lige nød til at spørge om hvad trimmet() er og hvordan indholdet i sql() ser ud :)

Mvh. Johan
Avatar billede the_edge Nybegynder
30. marts 2007 - 18:57 #4
det er bare en function til at gøre strenge små med stort forbogstav og fjerne mellemrum til højre...
sådan ser sql en ud
function sql($sql)
        {
        $forbindelse = mysql_connect("localhost","root","");
       
        mysql_select_db("opgman",$forbindelse);
       
        $result = mysql_query($sql,$forbindelse) or die (mysql_error());
       
        while ($row = mysql_fetch_array($result))
        {
           
        return $row; //returenere til function sql. Sørg for at du henter det returnere ud i en variable når du kalder functionen.
       
        //lægger arrayet op i klassen variabler/arrays.
        //for at få fat i dem i en anden klasse. Lav instans
        //$udtreak = new Sql();
        //$udtreak->udtreak("sql agument"); og
        //$udtreak->hentfrasql["brugernavn"];
       
        //array_push($this->array2,$row);
       
        //man kan evt også lave return =$row så skal man blot bare kalde function.
   
       
       
        }
        //print_r($this->array2);
        //return $this->array2;

               
       
    }
   
   
   
        function sqlinsert($sql)
        {
        $forbindelse = mysql_connect("localhost","root","");
        mysql_select_db("opgman",$forbindelse);
        $result = mysql_query($sql,$forbindelse) or die (mysql_error());
        }
Avatar billede johan.o Nybegynder
30. marts 2007 - 19:14 #5
Ja okay, så skulle jeg være med :)

Den logger ind fordi du ikke laver et check af om brugeren eksistere i tabellen. Du udfører blot en query som returnere et tomt resultat, så når du sammenligner det indtastede, som er ingenting, med det din query returnere, som er ingenting......er du logget ind.

Så du skal altså have lavet et check efter du har udført din query, som kigger på om der overhovedet er en bruger i tabellen med det indtastede brugernavn.

Mvh. Johan
Avatar billede the_edge Nybegynder
31. marts 2007 - 15:52 #6
ahh okay tak skal du have... læg et svar
Avatar billede johan.o Nybegynder
31. marts 2007 - 16:15 #7
Velbekommen, hvis det driller med ændringerne vender du naturligvis bare tilbage.

Mvh. Johan
Avatar billede the_edge Nybegynder
09. april 2007 - 12:03 #8
takker :=)
Avatar billede johan.o Nybegynder
09. april 2007 - 14:13 #9
og tak for points...:)

Mvh. Johan
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