Avatar billede Maylind Nybegynder
19. januar 2010 - 13:54 Der er 3 kommentarer og
1 løsning

Mit kunde login driller:/

Jeg fandt et login script på nettet, som jeg så har prøvet at rette til mit eget, men den kommer med nogen fejl jehg ikke helt forstår.

Dette er fejlene:


Denne side kræver login adgangEt af felterne er tomme Notice: Undefined variable: array_user in C:\Users\Mai\Documents\My Dropbox\www\GadgetHouse\include\function.php on line 73 Notice: Undefined variable: mail in C:\Users\Mai\Documents\My Dropbox\www\GadgetHouse\include\function.php on line 73 Notice: Undefined variable: array_pw in C:\Users\Mai\Documents\My Dropbox\www\GadgetHouse\include\function.php on line 73 forkert password

Min kode ser sådan ud:

//Her laver jeg min formular til mit kundelogin.
function klogin(){
    ?>
       
        <form action="?page=tjeklogin" method="post" class="login">
        <strong>Kunde login</strong><br />
            Brugernavn (e-mail):<br />
            <input name="mail" type="text" id="mail"/><br />
            Password:<br />
            <input name="password" type="password" id="password"/><br />
        <table>
            <tr>
                <td>
                    <input type="submit" name="submit" id="submit" value="Login" />
                    </form>
                </td>
                <td>
                    <form action="?page=logud">
                        <input type="submit" name="logud" value="Logud" />
                    </form>
                  </td>
              </tr>
          </table>
    <?php
};


function tjeklogin($conn, $brugernavn, $password){
require("dbconnect.php"); // Variabler til mysql hentes
$login = &$HTTP_POST_VARS['klogin'];

if(empty($login)) {
    echo 'Denne side kræver login adgang';
   
    } else {
       
$mail = &$HTTP_POST_VARS['mail']; // Brugernavn fra form i login.php.
$password = &$HTTP_POST_VARS['password']; // Password fra form i login.php.
    };
if(empty($mail) OR empty($password))
{ //Her tjekkes om ET af felterne er tomme.
    echo 'Et af felterne er tomme';
    } else { // Denne klamme starter alt script der udføres HVIS begge felter er udfyldte.

// Her åbnes for mysql-serveren og der logges ind med data fra config.php.
mysqli_connect($mysqli_host, $mysqil_user, $mysqli_pw);
mysqli_select_db($mysql_db); // Der åbnes for databasen defineret i config.php.

// Hvis brugernavn skrevet i feltet eksisterer i tabellen, hentes denne række ud.
$result_user = mysqli_query("select mail from kopret where mail = '$mail'")
or die (mysql_error()); // Her stoppes scriptet ved fejl fra mysql-server.
// Hvis password skrevet i feltet eksisterer i tabellen, hentes denne række ud.
$result_pw = mysqli_query("select password from kopret where password = '$password'")
or die (mysql_error()); // Her stoppes scriptet ved fejl fra mysql-server.

// Her sker det egentlige tjeck om brugernavn og password er dem som står i databasen.
// Der oprettes først et array med de data vi fik fra mysql før.
$array_user = mysqli_fetch_array($result_user); // Først et med brugernavn.
$array_pw = mysqli_fetch_array($result_pw); // Og et med password.
// Her tjeckes så om både array med brugernavn og password indeholder data
// magen til dem skrevet i felterne i html-formen
// PASSWORD KONTROL
    };
if($array_user['mail'] == $mail AND $array_pw['password'] == $password) {
  echo 'korrekt password'; // Brugernavn og password passede!!
} // Her lukker vi condition TRUE fra password kontrol

else { // Her starter condition FALSE på password kontrol
echo 'forkert password';
}; // Her lukkes condition FALSE på password kontrol.

}; // Her lukker vi for condition FALSE på tomme-felter-tjek.



Håber i kan hjælpe mig lidt på vej.
Avatar billede askilada Nybegynder
19. januar 2010 - 16:13 #1
Jeg håber ikke du har betalt for den slam og usikkert kode?
Avatar billede Slettet bruger
19. januar 2010 - 19:32 #2
Hejsa

1. Prøv at erstatte &$HTTP_POST_VARS med $_POST, da den muligvis er forældet i din version af PHP.

2. Den leder via &$HTTP_POST_VARS['klogin'] efter "klogin", som ikke er inkluderet i formularen. Prøv evt. at erstatte med $_POST['mail'].
Avatar billede Maylind Nybegynder
19. januar 2010 - 22:03 #3
denn ser sådan ud nu

//Her laver jeg min formular til mit kundelogin.
function klogin(){
    ?>
       
        <form action="?page=tjeklogin" method="post" class="login">
        <strong>Kunde login</strong><br />
            Brugernavn (e-mail):<br />
            <input name="mail" type="text" id="mail"/><br />
            Password:<br />
            <input name="password" type="password" id="password"/><br />
        <table>
            <tr>
                <td>
                    <input type="submit" name="submit" id="submit" value="Login" />
                    </form>
                </td>
                <td>
                    <form action="?page=logud">
                        <input type="submit" name="logud" value="Logud" />
                    </form>
                  </td>
              </tr>
          </table>
    <?php
};


function tjeklogin($conn, $brugernavn, $password){
require("dbconnect.php"); // Variabler til mysql hentes
$login = &$HTTP_POST_VARS['klogin'];

if(empty($login)) {
    echo 'Denne side kræver login adgang';
   
    } else {
       
$mail = $_POST[['mail']; // Brugernavn fra form i login.php.
$password = $_POST[['password']; // Password fra form i login.php.
    };
if(empty($mail) OR empty($password))
{ //Her tjekkes om ET af felterne er tomme.
    echo 'Et af felterne er tomme';
    } else { // Denne klamme starter alt script der udføres HVIS begge felter er udfyldte.

// Her åbnes for mysql-serveren og der logges ind med data fra config.php.
mysqli_connect($mysqli_host, $mysqil_user, $mysqli_pw);
mysqli_select_db($mysql_db); // Der åbnes for databasen defineret i config.php.

// Hvis brugernavn skrevet i feltet eksisterer i tabellen, hentes denne række ud.
$result_user = mysqli_query("select mail from kopret where mail = '$mail'")
or die (mysql_error()); // Her stoppes scriptet ved fejl fra mysql-server.
// Hvis password skrevet i feltet eksisterer i tabellen, hentes denne række ud.
$result_pw = mysqli_query("select password from kopret where password = '$password'")
or die (mysql_error()); // Her stoppes scriptet ved fejl fra mysql-server.

// Her sker det egentlige tjeck om brugernavn og password er dem som står i databasen.
// Der oprettes først et array med de data vi fik fra mysql før.
$array_user = mysqli_fetch_array($result_user); // Først et med brugernavn.
$array_pw = mysqli_fetch_array($result_pw); // Og et med password.
// Her tjeckes så om både array med brugernavn og password indeholder data
// magen til dem skrevet i felterne i html-formen
// PASSWORD KONTROL
    };
   
if(isset($_POST['mail'] == $mail) AND isset($_POST['password'] == $password)) {
  echo 'korrekt password'; // Brugernavn og password passede!!
} // Her lukker vi condition TRUE fra password kontrol

else { // Her starter condition FALSE på password kontrol
echo 'forkert password';
}; // Her lukkes condition FALSE på password kontrol.

}; // Her lukker vi for condition FALSE på tomme-felter-tjek.

Men så kommer denne fejl.

Parse error: parse error, expecting `']'' in C:\Users\Mai\Documents\My Dropbox\www\GadgetHouse\include\function.php on line 46

har ikke betalt noget for den:)
Avatar billede Slettet bruger
20. januar 2010 - 01:36 #4
Der er et "[" for meget i følgende linjer:
$mail = $_POST[['mail']; // Brugernavn fra form i login.php.
$password = $_POST[['password']; // Password fra form i login.php.
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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