Avatar billede troels_p Nybegynder
07. juli 2013 - 13:51 Der er 8 kommentarer og
1 løsning

Acceptér alt i username, bare password er f.eks 1234

Hej,

Jeg vil gerne lave en loginform, hvis eneste formål er at holde styr på det brugernavn der er logget ind. Alle brugernavne skal kunne bruges, blot password er 1234.

Kan jeg sætte $user som "wildcard", således en loginform altid vil logge ind med hvad end brugeren skriver som username, hvis bare password er 1234?

Som det er nu:

$password = '1234';
$username = 'admin';

Har prøvet $username = '.*?', men noget siger mig jeg skal om i en reg., som jeg slet ikke kan finde hoved og hale i.
Avatar billede repox Seniormester
07. juli 2013 - 14:04 #1
Det bliver på magisk vis ikke bare et regular expression, fordi du skriver sådan.

Tag os vis os den del af koden der kontrolleret brugernavn og kodeord.
Avatar billede troels_p Nybegynder
07. juli 2013 - 14:39 #2
$password = '1234';
$username = 'admin';

$random1 = 'secret_key1';
$random2 = 'secret_key2';

$hash = md5($random1.$pass.$random2);

else if (isset($_POST['submit'])) {

    if ($_POST['username'] == $username & $_POST['password'] == $password){
   
        //IF USERNAME AND PASSWORD ARE CORRECT SET THE LOG-IN SESSION
        $_SESSION["login"] = $hash;
        ?> <meta http-equiv="refresh" content="0;url=FJERNET"> <?
        //header("Location: $_SERVER[PHP_SELF]");

    } else {

        // DISPLAY FORM WITH ERROR
        display_login_form();
        echo '<p><font face="Voces" color="#ffffff" size=2><center>Er det ikke sødt? Men det forkeeeeert!</center></font></p>';

    }
}   

Simple and unsafe as fuck. Idéen er heller ikke det skal være sikkert, så who cares :-)
Avatar billede repox Seniormester
07. juli 2013 - 14:45 #3
Fjern '$_POST['username'] == $username &' i din if-sætning.
Avatar billede tobrukDk Novice
07. juli 2013 - 14:47 #4
jeg gjort sådan her;


if($_SESSION["logged_in"] != true)
    {
    ?>
    <form action="#" method="post" id="login">
    <table width="100" cellpadding="5" cellspacing="10">
        <tr>
            <td>Email</td>
            <td><input type="email" name="email" class="new" required title="Angive et Brugernavn!" placeholder="Brugernavn (Email)"></td>
        </tr>
        <tr>
            <td>Password</td>
            <td><input type="password" name="pass" required title="Angive en adgangskode!" class="new" placeholder="Password"></td>
        </tr>

        <tr>
            <td></td>
            <td><input type="submit" name="logind_ok_tjek" value="Log ind" class="new upload_boxxen"> <a href="/glemt-kode/">Glemt kode?</a></td>
        </tr>
    </table>
    <?php
    if(isset($_POST["logind_ok_tjek"]))
    {
        if ($stmt = $this->mysqli->prepare("SELECT `id`, `rank_hold`, `navn`, `email_indhold`, `adgangskode`, `rank`, `img` FROM `bruger` WHERE `email_indhold` = ? AND `adgangskode` = ?"))
        {
            $stmt->bind_param('ss', $email_indhold, $adgangskode);
            $email_indhold = $_POST["email"];
            $adgangskode = sha1($_POST["pass"]);


            $stmt->execute();
            $stmt->store_result();
            $stmt->bind_result($id, $rank_hold, $navn, $email_indhold, $adgangskode, $rank, $img);
            $stmt->fetch();
            $count = $stmt->num_rows;
            $stmt->close();

            if($count > 0)
            {
                $_SESSION["logged_in"] = true;
                $_SESSION["id"] = $id;
                $_seesion["rank_hold"] = $rank_hold;
                $_SESSION["navn"] = $navn;
                $_SESSION["rank"] = $rank;
                $_SESSION["img"] = $img;
                $_SESSION["mail"] = $email_indhold;


                if($_SESSION["logged_in"] == true)
                {
                echo "Du er log ind nu!";                       
                }
                else
                {
                    echo "Prøve igen, Du findes ikke i databasen";
                }
            }
            else
            {
                echo "Findes ikke i vores database!";
            }
        }
        }
        ?>
        </form>
        <?php
    }
Avatar billede troels_p Nybegynder
07. juli 2013 - 14:58 #5
Vil den, hvis jeg fjerner USERNAME i if, så ikke "glemme" brugernavnet? Det er egentlig så simpelthen som jeg skal have den til at skrive "Velkommen USERNAME", og ikke glemme det under sessionen, eller ved refresh af siden.
Avatar billede tobrukDk Novice
07. juli 2013 - 14:59 #6

$hash = md5($random1.$pass.$random2);



Hvis du skulle gøre det svært for en bruger eller ligne at komme ind på siden så gøre sådan her:


<?php

//kender ikke talt
$tal = rand(999, 100000);
//talt bliver lavet om til sha1
$hash = sha1($tal);
//talt bliver lavet om md5
$alt = md5($hash);

//bliver lavet om til "crypt"
$totalt = crypt($alt);

//bliver udskrevet alle sammen.
echo $totalt;

?>


Du kan læs mere her:
http://www.php.net/manual/en/function.crypt.php

http://dk1.php.net/manual/en/function.sha1.php

http://dk1.php.net/manual/en/function.md5.php

Jeg vil klart mene at du skal bruge "sha1" hvis du skal bruge noget som helst.

Der er mange som beskriver md5 mindre sikker, og mange siger også at man skal bruge sha1. men jeg bruger altid sha1

Håber du kan bruge det her f.eks til noget :)
Avatar billede tobrukDk Novice
07. juli 2013 - 15:06 #7
Der mangle noget af din kode for at det kan passe sådan helt sammen..
Avatar billede tobrukDk Novice
07. juli 2013 - 15:32 #8

<?php
$username = 'admin';
$password = '1234';

$random1 = md5("secret_key1");
$random2 = md5("secret_key2");

$hash = crc32($random1.$password.$random2);


//gå første i gang når man har klik på log ind
if(isset($_POST['submit']))
{
    //tjekker om brugernavn og password er tom, hvis det er skal den siger det!
    if($_POST["username"] != "" or $_POST["password"] != "")
    {
        //finder ud om password og brugernavn passer sammen.
        if ($_POST['username'] == $username & $_POST['password'] == $password){
            //er log ind nu!
            $_SESSION["login"] = $hash;
            echo "Du er log ind! <br/>";
            echo "Password " . $hash;
        } else {
            //har problemer med at log ind.
            echo "Forkert prøve igen!";
        }
    }
    else
    {
        //beskriver at jeg skal husk brugernavn og password
        echo "Husk at skrive brugernavn og password!";   
    }
}   
?>
<form action="#" method="post">
<input type="text" name="username">
<input type="password" name="password">
<input type="submit" name="submit" value="log ind">
</form>




Lade være med at gøre sådan her!!

echo '<p><font face="Voces" color="#ffffff" size=2><center>Er det ikke sødt? Men det forkeeeeert!</center></font></p>';

det er ikke rigtig programmering still.!

Du skal ikke bruge <center></center> mere!...
Not supported in HTML5. Deprecated in HTML 4.01. Defines centered text

læs mere her!
http://www.w3schools.com/tags/default.asp

Hvis du skal have det i midt osv, så gøre sådan her:


<style type="text/css">
#text_indhold {
    font: Voces;
    color: #fff;
    font-size: 10px;
    text-align: center;
}
</style>



echo "<p id=\"text_indhold\">Er det ikke sødt? Men det forkeeeeert!</p>";
Avatar billede troels_p Nybegynder
07. juli 2013 - 18:07 #9
Tak for kort og klart svar, uden alt muligt udenomssnak omkring mit valg af tekstcentrering.

Ved stadig at trække username ind men kun bruge det som sessionsid, kan jeg stadig have username "ved hånden", men uden at det SKAL findes på en liste.

Således blev den rettet til:

if (($_POST['password'] == $password) && !empty($_POST['username']))

og

$_SESSION["login"] = $_POST['username'];

... Det er kluntet, men det opfylder mit behov.
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