Hallo

Ik heb pas geleden een script van een vriend gekregen, maar hij geeft geen melding als ik succesvol.. Zelf kan ik niet achterhalen waarom die dat niet doet. Hieronder staat mijn script

<script>
				$("#register-submit").click(function(e) {
					e.preventDefault();
					
					var username = $("#register-username").val();
					var password = $("#register-password").val();
					var passwordRepeat = $("#register-password-repeat").val();
					
					$.post("/_paneel/modules/landing/register.php", { username: username, password: password, password_repeat: passwordRepeat })
					.done(function(data) {
						if (data == "correct")
						{
							$("#register-succesfull").html("Je bent geregistreerd! Je kan nu inloggen.");
							
							setTimeout(function() {
								document.location.reload(true);
							}, 3000);
						}
						else
						{
							var container = $("#register-errors");
							container.html("");
							
							$(data).each(function(index, value) {
								container.append("- " + value + "<br />");
							});
						}
					});
				});
</script>

// FORM
				<div class="form register" style="display: none;">
					<p class="login-box-msg">Maak een account om in te loggen!</p>
					<p style="color: red; text-align: center; margin-top: -5px;" id="register-errors"></p>
					<p style="color: green; text-align: center; margin-top: -5px;" id="register-succesfull"></p>
					<form>
						<div class="form-group has-feedback">
							<input type="text" id="register-username" class="form-control" placeholder="Gebruikersnaam" autofocus>
							<span class="glyphicon glyphicon-user form-control-feedback"></span>
						</div>
						<div class="form-group has-feedback">
							<input type="password" id="register-password" class="form-control" placeholder="Wachtwoord">
							<span class="glyphicon glyphicon-lock form-control-feedback"></span>
						</div>
						<div class="form-group has-feedback">
							<input type="password" id="register-password-repeat" class="form-control" placeholder="Wachtwoord herhalen">
							<span class="glyphicon glyphicon-lock form-control-feedback"></span>
						</div>
						<div class="row">
							<div class="col-xs-8">
							</div>
							<div class="col-xs-4">
								<button style="padding-left: 5px;" id="register-submit" type="submit" class="btn btn-primary btn-block btn-flat">Registreren</button>
							</div>
						</div>
					</form>	
				</div>

// REGISTER.php \\
<?php
session_start();
require_once($_SERVER["DOCUMENT_ROOT"] . "/_paneel/classes/landing.class.php");

$landing  = new Landing();
$response = $landing->register($_POST["username"], $_POST["password"], $_POST["password_repeat"]);

if ($response === true)
{
	echo "correct";
}
else
{
	header('Content-Type: application/json');
	echo json_encode($response);
}
?>


// landing.class.php \\
<?php

require_once($_SERVER["DOCUMENT_ROOT"] . "/_paneel/classes/object.class.php");

require_once($_SERVER["DOCUMENT_ROOT"] . "/_paneel/classes/user.class.php");

require_once($_SERVER["DOCUMENT_ROOT"] . "/lib/classes/password.class.php");



class Landing extends Object

{

	private $_user;

	private $_password;

	

	public function __construct()

	{

		parent::__construct();

		

		$this->_user = new User();

		$this->_password = new Password();

	}

		

	public function register($username, $password, $passwordRepeat)

	{

		$errors = array();

		

		if (empty($username))

		{

			$errors[] = "U heeft geen gebruikersnaam ingevuld.";

		}

		

		if ($this->_user->userExists($username) === true)

		{

			$errors[] = "Deze gebruiker is al geregistreerd.";

		}

		

		if (strpos($username, "#") !== false)

		{

			$errors[] = "Deze naam bevat verboden karakters.";

		}

		

		$passwordCheck = $this->_password->validatePassword($password, $passwordRepeat);

		

		if ($passwordCheck !== true)

		{

			$errors = array_merge($errors, $passwordCheck);

		}

		

		if (count($errors) == 0)

		{

			$hashedPassword = $this->_password->hashPassword($password);

			

			$this->_user->createUser($username, $hashedPassword);

			

			$newUserId = $this->_user->getUserVar($username, "id");

			

			$this->_user->logAction($newUserId, "", "registered");

			

			return true;

		}

		

		return $errors;

	}

		if (count($errors) == 0)

		{

			$hashedPassword = $this->_password->hashPassword($password);

			$userId 		= $this->_user->getUserVar($username, "id");

			

			$this->_user->setUserVar("wachtwoord", $hashedPassword, $username);

			$this->_user->setUserVar("allow_pw_change", 0, $username);

			$this->_user->logAction($userId, "", "user-pass-reset-success");

			

			return true;

		}

		

		$this->_user->logAction(0, "", "user-pass-reset-wrong", $username);

		

		return $errors;

	}

}
?>


Ik weet niet zeker waar ik dit topic moet plaatsen, want ik weet niet of het probleem bij het js script ligt, of bij php..
O oops, geedit in een verkeerde map -_- maar nu geeft die vreemd genoeg wel de errors: -
[object HTMLBRElement]
- [object Text]
- [object HTMLElement]
- [object Text]
- [object HTMLElement]
- [object Text]
- [object HTMLElement]
- [object HTMLBRElement]
enig idee wat dat betekend?
Wanneer geeft hij dat aan, na wat voor aanpassing?

<?php
session_start();
require_once($_SERVER["DOCUMENT_ROOT"] . "/_paneel/classes/landing.class.php");

$landing  = new Landing();
$response = $landing->register($_POST["username"], $_POST["password"], $_POST["password_repeat"]);

if ($response === true)
{
	echo 'correct'; // DIT HAD IK AANGEPAST NAAR WAT HET NU IS
}
}
else
{
	header('Content-Type: application/json');
	echo json_encode($response);
}
?>

en hij geeft het aan wanneer er een foute login gegevens zijn en als ze goed zijn

[size=xsmall]Toevoeging op 05/01/2017 21:21:07:[/size]

Volgensmij geeft hij nu een array die geen waarde heeft/ niet gediniteerd is
Ik krijg nog steeds een SQL-query te zien als result. Dat zal blijkbaar ergens dieper in je script staan.
Dat wat ik net stuurde wordt je naar doorgestuurd. Hij include dat bestand. en die query, die hoort. Maar hij echot nu correct en bij index kijkt die: is de html tekst daar correct? zo ja: succesvolmelding zo nee: error

[size=xsmall]Toevoeging op 05/01/2017 21:25:55:[/size]

Nu geeft die wel weer gewoon de errors (had een } teveel) maar nog steeds geen melding dat het succesvol is..
Die query zal niet horen. Je wilt immers geen database-structuur en informatie uitlekken aan anderen.
Waar zou die query dan moeten horen? Volgensmij is de maker vergeten achter de query te zetten als het goed is is $resonse = true;
Je wilt een respons teruggeven in de vorm van een duidelijke melding die aangeeft dat je 'succesvol geregistreerd' bent, en niet een SQL-output van je INSERT.
Nu geeft die geen output van query meer. EN ik heb aan het einde gezet return true; maar herkend werkt dit dan:
if ($response === true); of werkt dat niet en moet ik het anders aangeven?

[size=xsmall]Toevoeging op 05/01/2017 21:37:53:[/size]

$response = $landing->register($_POST["username"], $_POST["password"], $_POST["password_repeat"]);

dat is de variable $response

[size=xsmall]Toevoeging op 05/01/2017 21:39:01:[/size]

O thank you so mutch ik weet niet hoe ik je kan bedanken <3 het werkt eindelijk! Na al die tijd!! Thnx voor je tijd!

[size=xsmall]Toevoeging op 05/01/2017 21:40:55:[/size]


En wat vond je trouwens van design? En dat je switcht tussen forms? Ik moet alleen nog een knopje voor terug te gaan naar login :D
Fijn om te horen dat het opgelost is. :-)

Reageren