Avatar billede xhcx Nybegynder
30. januar 2011 - 15:27 Der er 11 kommentarer

login hjælp (registrere)

Jeg har et login system som virker gangske fint, men nu har jeg opgradere den med lidt flere informationer (navn, efternavn, clan, osv.) hvordan går jeg sådan at min registrerings-side får disse flere felter til at sende til databasen sammen med de andre data

scriptet er sådan

<?php

echo '
<form action="index.php?action=register" method="post">
    <p>'.$language['user'].': <input type="text" size="30" name="username" /></p>
    <p>'.$language['pass'].': <input type="password" size="30" name="password" /></p>
    <p>'.$language['pass'].' ('.$language['passConfirm'].'): <input type="password" size="30" name="confirmPassword" /></p>
    <p>'.$language['code'].': <input type="text" size="30" maxlength="6" name="captcha_code" /></p>
    <p><img id="captcha" src="script/lib/securimage/securimage_show.php" alt="CAPTCHA Image" /></p>
    <p><a href="#" onclick="document.getElementById(\'captcha\').src = \'script/lib/securimage/securimage_show.php?\' + Math.random(); return false">'.$language['relImage'].'</a></p>
    <p><input name="submit" type="submit" value="'.$language['reg'].'" /></p>
</form>';

if(isset($_POST['submit']))
{
    include_once 'script/lib/securimage/securimage.php';
    $securimage = new Securimage();

    if($_POST['username'] != "" || $_POST['password'] != "")
    {
        if($_POST['password'] == $_POST['confirmPassword'])
        {
            if ($securimage->check($_POST['captcha_code']) == true)
            {
                $mysql = mysql_query("SELECT * FROM $UserDB where name='".$_POST['username']."'");
                $userExist = false;
                while($row = mysql_fetch_assoc($mysql))
                {
                    $userExist = true;
                }
                if($userExist == false)
                {
                    registerMember($_POST['username'], $_POST['password']);
                    echo ''.$language['accountCreated'].' <a href="index.php?action=login">'.$language['clickLogin'].'</a>';
                }
                else
                {
                    echo $language['userExist'];
                }
            }
            else
            {
                echo $language['codeError'];
            }
        }
        else
        {
            echo $language['noPassMatch'];
        }
    }
    else
    {
        echo $language['noUserPass'];
    }
}

?>
Avatar billede rix Praktikant
30. januar 2011 - 17:50 #1
kan du ikke uddybe det er lidt forviret ang hvad du ville have os til?
Avatar billede xhcx Nybegynder
30. januar 2011 - 19:39 #2
lige nu er det sådan at når man kommer ind på siden kan man kun skrive et username og et password.
Det jeg gerne vil have er at man også kan skrive fornavn og efternavn, altså kode flere oplysninger når man registrere sig

Kan du forstå hvad jeg så mener :)
Avatar billede majbom Novice
30. januar 2011 - 19:52 #3
<p>'.$language['user'].': <input type="text" size="30" name="username" /></p>


er et tekstfelt, hvis du skal have flere af dem, kan du kopiere det, dog skal du ændre $language['user'] og name-attributen

f.eks.:

<p>'.$language['name'].': <input type="text" size="30" name="name" /></p>


og så skal du have tilføjet $language['name'] i den fil hvor du har dine sprog-indstillinger

hvis feltet ikke må være tomt, skal du udvide:

if($_POST['username'] != "" || $_POST['password'] != "")


til:

if($_POST['username'] != "" || $_POST['name'] != "" || $_POST['password'] != "")


og så skal du ændre din registerMember-funktion, så den smider navn med i databasen, og til sidst skal du tilføje feltet i tabellen i databasen
Avatar billede xhcx Nybegynder
30. januar 2011 - 20:02 #4
Skal det så se sådan her ud


<?php

echo '
<form action="index.php?action=register" method="post">
    <p>'.$language['user'].': <input type="text" size="30" name="username" /></p>
    <p>'.$language['clan'].': <input type="text" size="30" name="clan" /></p>
    <p>'.$language['pass'].': <input type="password" size="30" name="password" /></p>
    <p>'.$language['pass'].' ('.$language['passConfirm'].'): <input type="password" size="30" name="confirmPassword" /></p>
    <p>'.$language['code'].': <input type="text" size="30" maxlength="6" name="captcha_code" /></p>
    <p><img id="captcha" src="script/lib/securimage/securimage_show.php" alt="CAPTCHA Image" /></p>
    <p><a href="#" onclick="document.getElementById(\'captcha\').src = \'script/lib/securimage/securimage_show.php?\' + Math.random(); return false">'.$language['relImage'].'</a></p>
    <p><input name="submit" type="submit" value="'.$language['reg'].'" /></p>
</form>';

if(isset($_POST['submit']))
{
    include_once 'script/lib/securimage/securimage.php';
    $securimage = new Securimage();

    if($_POST['username'] != "" || $_POST['password'] != "" || $_POST['clan'] != "")
    {
        if($_POST['password'] == $_POST['confirmPassword'])
        {
            if ($securimage->check($_POST['captcha_code']) == true)
            {
                $mysql = mysql_query("SELECT * FROM $UserDB where name='".$_POST['username']."'");
                $userExist = false;
                while($row = mysql_fetch_assoc($mysql))
                {
                    $userExist = true;
                }
                if($userExist == false)
                {
                    registerMember($_POST['username'], $_POST['password'], $_POST['clan']);
                    echo ''.$language['accountCreated'].' <a href="index.php?action=login">'.$language['clickLogin'].'</a>';
                }
                else
                {
                    echo $language['userExist'];
                }
            }
            else
            {
                echo $language['codeError'];
            }
        }
        else
        {
            echo $language['noPassMatch'];
        }
    }
    else
    {
        echo $language['noUserPass'];
    }
}

?>
Avatar billede majbom Novice
30. januar 2011 - 20:43 #5
ja, så skal du bare tilrette din tabel og din registerMember-funktion, det ved jeg ikke om du har gjort?
Avatar billede xhcx Nybegynder
30. januar 2011 - 20:55 #6
tabellerne er lavet men hvad er det du mener med registerMember-funktion
Avatar billede majbom Novice
30. januar 2011 - 21:28 #7
du har en funktion der hedder registerMember (du har tilføjet det ekstra parameter 'clan' i kaldet), hvor du også skal rette selve funktionen til at bruge den nye parameter..
Avatar billede xhcx Nybegynder
30. januar 2011 - 21:34 #8
Hvad skal der skrives i denne her

// registerMember: Register a member on the forum
function registerMember($name, $pass, $clan)
{
    global $UserDB, $UserID, $UserName, $UserPass;
    $name = ereg_replace("[^A-Za-z0-9]", " ", $name);
    $clan = ereg_replace("[^A-Za-z0-9]", " ", $clan);
    $pass = ereg_replace("[^A-Za-z0-9]", " ", md5(strtolower($pass)));    // Encrypt the password and make it all lowercase
    mysql_query("INSERT INTO $UserDB (".$UserID.", ".$UserName.", ".$UserPass.",".$UserClan.") VALUES (NULL, '".$name."', '".$pass."', '".$clan."')");
}
Avatar billede majbom Novice
30. januar 2011 - 21:47 #9
du har jo sat clan ind, så det skulle virke...
Avatar billede xhcx Nybegynder
05. februar 2011 - 11:43 #10
Den vil stadig ikke sætte det jeg skriver ind på databasen
Avatar billede majbom Novice
06. februar 2011 - 09:25 #11
du har:

global $UserDB, $UserID, $UserName, $UserPass;

men der står ikke $UserClan;

man kunne forestille sig at du har et sted hvor disse bliver defineret, hvor du så også kan definere UserClan...
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