Ik heb nu een beveiligde registratiepagina, maar echter na het invullen en ik druk op registreren kom ik op een errorpagina uit.

Heb het script meermaals doorlopen maar zie die fout niet, wellicht zien jullie wat apparts?



<?php

//Defineer functie

if($_SERVER['REQUEST_METHOD'] == 'submit') // Controle of er op de knop is geklikt.
{
    include_once 'connect.php'; // Connectie db.

    if(!empty($_POST['gebruikersnaam']) AND !empty($_POST['zelfinfo']) AND !empty($_POST['password']) AND !empty($_POST['passwordc']) AND !empty($_POST['mail'])) // Controle op invoeren
    {
        if(($_POST['password']) == ($_POST['passwordc'])) // Controle of controle pw overeenkomt met echte pw.
        {
            
            include_once 'uwx3g.php';            // Connectie met salt page.
            $gebruikersnaam    = mysql_real_escape_string($_POST['gebruikersnaam']); //Data veilig maken voor sql injectie d.m.v. mysql_real.....
			$zelfinfo 		= mysql_real_escape_string($_POST['zelfinfo']);
            $password        = sha1(salt($_POST['password'])); //sha1 hash van pass. Inclusief salt.
            $mail            = mysql_real_escape_string($_POST['mail']);
            $sql = ("SELECT naam FROM Accounts WHERE naam='". $gebruikersnaam . "'"); // Controle op gebruikersnaam, zo ja een 1 else en 0 (zie controle bij de volgende if)
            $uitvoer = mysql_query($sql);        //($row = mysql_fetch_assoc($get))
            
            $controle = mysql_num_rows($uitvoer);
                
            if($controle == 0) // Als uitvoer is 0 registreren.
            {
                mysql_query("INSERT INTO Accounts (ID, naam, wachtwoord, xp, geld, zelfinfo, email, vipdagen, credits, monteur, bevoegdheid, datum, status) VALUES ('','" . $gebruikersnaam . "', '" . $password . "', '" . 0 . "','" . 1000 . "','" . $zelfinfo . "','" . $mail . "','" . 0 . "','" . 0 . "','" . 0 . "','" . 0 . "', '" . now() . "','" . 0 . "')"); // Gebruiker in db plaatsen.
                header('Refresh: 4; url= login_form.php');
                echo ('U bent succesvol aangemeld, u kunt nu inloggen.');
            }
            else
            {
                header('Refresh: 2; url=login_form.php');
                echo ('Verkeerde gebruikersnaam of wachtwoord.');        // Negatieve melding van ingevoerde gegevens.
            }    
        }
        else
        {
			                header('Refresh: 5; url=login_form.php');
            echo ('De ingevoerde gegevens kloppen niet, u heeft het controle wachtwoord verkeerd ingevuld.');  // Negatieve melding van ingevoerde gegevens.
        }
    }
    else
    {               
header('Refresh: 1; url=login_form.php');

        echo ('De ingevoerde gegevens kloppen niet, niet alles is ingevuld.');  // Negatieve melding van ingevoerde gegevens.
    }
    
    

}


?>


De pagina waar de vakjes staan om in te vullen (registreren en inloggen) staan samen op http://testversie.site90.net/login_form.php dus daar moet er naartoe gestuurd worden.



P.S. Na het invullen en de errorpagina zie ik in de phpmyadmin dat het account niet aangemaakt is, dus hij verwerkt de gegevens niet o.i.d?

[size=xsmall]Toevoeging op 03/02/2015 20:42:59:[/size]

Ohja, en ik gebruik notepad++, is er ook nog een speciaal programma voor php? Iets wat misschien wat fijner en duidelijker werkt?
Vergelijk bij het inloggen de inhoud van $password eens met wat je in de database hebt.
Deze zouden gelijk moeten zijn.
Daar heb ik niet veel aan, vergelijk ze eens zou ik zeggen.
Echo eens de waarde van password na het inloggen en kijk eens of de hash van het password gelijk is met wat er in de database staat.
Jij hebt varchar(20) en sha1() is 40 characters lang.
Dat klopt dus niet.
Verder ben ik benieuwd waar welke plaatje vandaan komt?
Bovenste is van de site (wachtwoord in echo), 2e is van wachtwoord uit database en 3e is heel de kolom wachtwoord uit database
En wat gaat er precies mis bij het inloggen? En wat geeft $controle precies terug voor waarde?
Ik kan inloggen als de gebruikersnaam goed is. Als wachtwoord kan ik alles intypen wat ik wil:
"vbhbh""lololol""hhhhhh""vvvvvv"

Met alles laat ie me inloggen. Ofwel de controle werkt niet??
Echo $sql eens, en kijk eens naar je query die je dan ziet.

Reageren