Dit maakt mijn dag zóóóó goed

als het echt zo was
Volg de onderstaande video samen om te zien hoe u onze site kunt installeren als een web-app op uw startscherm.
Notitie: Deze functie is mogelijk niet beschikbaar in sommige browsers.


<?php
require 'includes/_connect.php';
$username = $_POST['username'];
if (isset($_POST['submit'])) {
if($_POST['password'] != $_POST['passwordConfirm']) {
$errors[] = "Wachtwoorden komen niet overeen";
$ww = "Wachtwoorden komen niet overeen";
header("location: registreren.php?msg=$ww");
} elseif(mysqli_num_rows(mysqli_query($con, "SELECT * FROM users WHERE username = '$username'"))) {
$un = "Er is al iemand geregistreerd met deze gebruikersnaam";
header("location: registreren.php?msg=$un");
} elseif(!strlen($_POST['password']) >= 6) {
$wl = "Wachtwoord dient 6 of meer tekens te bevatten";
header("location: registreren.php?msg=$wl");
} else {
$username = $_POST['username';
$password = $_POST['password'];
$email = $_POST['email'];
$query = mysqli_query($con, "INSERT INTO users (username, password, email) VALUES ('$username', '$password', '$email')");
if(!$query) {
trigger_error('Registeren mislukt');
} else {
$reg = "U bent succesvol geregistreerd. Er is een email met uw gegevens is naar u verzonden";
$to = $email;
$subject = "Registratie sterkste man kalender";
$message = "Hallo" . $username . "<br><br>Welkom op de sterkste man kalender website.<br>Uw inloggegevens zijn:</br>Gebruikersnaam: " . $username . "<br>Wachtwoord: " . $password . "<br>";
$from = "info@sterkstemankalender.nl";
$headers = "From: $from";
mail($to,$subject,$message,$headers);
header("location: index.php?reg=$reg");
}
}
}
?>
Je indenting is crap (zie spoiler hoe het wel moet). Je elseif doet het niet naar behoren neem ik aan, probeer:Iemand enig idee hoe je minimale wachtwoord lengte in kunt stellen? Heb net al wel kunnen fixen dat er geen 2 dezelfde gebruikersnamen geregistreerd kunnen worden. Begint alleen nogal een breiwerk te worden volgens mij.
en mysqli_real_escape_string moet ik ook nog toevoegen
Code:<?php require 'includes/_connect.php'; $username = $_POST['username']; if (isset($_POST['submit'])) { if($_POST['password'] != $_POST['passwordConfirm']) { $errors[] = "Wachtwoorden komen niet overeen"; $ww = "Wachtwoorden komen niet overeen"; header("location: registreren.php?msg=$ww"); } elseif(mysqli_num_rows(mysqli_query($con, "SELECT * FROM users WHERE username = '$username'"))) { $un = "Er is al iemand geregistreerd met deze gebruikersnaam"; header("location: registreren.php?msg=$un"); } elseif(!strlen($_POST['password']) >= 6) { $wl = "Wachtwoord dient 6 of meer tekens te bevatten"; header("location: registreren.php?msg=$wl"); } else { $username = $_POST['username'; $password = $_POST['password']; $email = $_POST['email']; $query = mysqli_query($con, "INSERT INTO users (username, password, email) VALUES ('$username', '$password', '$email')"); if(!$query) { trigger_error('Registeren mislukt'); } else { $reg = "U bent succesvol geregistreerd. Er is een email met uw gegevens is naar u verzonden"; $to = $email; $subject = "Registratie sterkste man kalender"; $message = "Hallo" . $username . "<br><br>Welkom op de sterkste man kalender website.<br>Uw inloggegevens zijn:</br>Gebruikersnaam: " . $username . "<br>Wachtwoord: " . $password . "<br>"; $from = "info@sterkstemankalender.nl"; $headers = "From: $from"; mail($to,$subject,$message,$headers); header("location: index.php?reg=$reg"); } } } ?>
<?php
require 'includes/_connect.php';
$username = $_POST['username'];
if (isset($_POST['submit'])) {
if($_POST['password'] != $_POST['passwordConfirm']) {
$errors[] = "Wachtwoorden komen niet overeen";
$ww = "Wachtwoorden komen niet overeen";
header("location: registreren.php?msg=$ww");
} elseif(mysqli_num_rows(mysqli_query($con, "SELECT * FROM users WHERE username = '$username'"))) {
$un = "Er is al iemand geregistreerd met deze gebruikersnaam";
header("location: registreren.php?msg=$un");
} elseif(!(strlen($_POST['password']) >= 6)) {
$wl = "Wachtwoord dient 6 of meer tekens te bevatten";
header("location: registreren.php?msg=$wl");
} else {
$username = $_POST['username';
$password = $_POST['password'];
$email = $_POST['email'];
$query = mysqli_query($con, "INSERT INTO users (username, password, email) VALUES ('$username', '$password', '$email')");
if(!$query) {
trigger_error('Registeren mislukt');
} else {
$reg = "U bent succesvol geregistreerd. Er is een email met uw gegevens is naar u verzonden";
$to = $email;
$subject = "Registratie sterkste man kalender";
$message = "Hallo" . $username . "<br><br>Welkom op de sterkste man kalender website.<br>Uw inloggegevens zijn:</br>Gebruikersnaam: " . $username . "<br>Wachtwoord: " . $password . "<br>";
$from = "info@sterkstemankalender.nl";
$headers = "From: $from";
mail($to,$subject,$message,$headers);
header("location: index.php?reg=$reg");
}
}
}
Tip: probeer op z'n minst zoveel mogelijk dat database gebeuren te scheiden van de rest van je logica en presentatie. Je hebt bijv. staan:Jep die elseif voor de strlen werkt niet.
Zo met ! voor de ( werkt ie ook niet. Klote is dat de server waar die op staat geen errors weergeeft en heb error reporting wel aan staan
elseif(mysqli_num_rows(mysqli_query($con, "SELECT * FROM users WHERE username = '$username'"))) {
elseif($db->User->findByName($username))
Je indenting is crap (zie spoiler hoe het wel moet). Je elseif doet het niet naar behoren neem ik aan, probeer:
elseif(!(strlen($_POST['password']) >= 6)) (de extra haakjes, persoonlijk zou ik gewoon < 6 doen, maar als jij dit leesbaarder vindt zo houden).
En forget about die php close tag wanneer die niet nodig is.Code:<?php require 'includes/_connect.php'; $username = $_POST['username']; if (isset($_POST['submit'])) { if($_POST['password'] != $_POST['passwordConfirm']) { $errors[] = "Wachtwoorden komen niet overeen"; $ww = "Wachtwoorden komen niet overeen"; header("location: registreren.php?msg=$ww"); } elseif(mysqli_num_rows(mysqli_query($con, "SELECT * FROM users WHERE username = '$username'"))) { $un = "Er is al iemand geregistreerd met deze gebruikersnaam"; header("location: registreren.php?msg=$un"); } elseif(!(strlen($_POST['password']) >= 6)) { $wl = "Wachtwoord dient 6 of meer tekens te bevatten"; header("location: registreren.php?msg=$wl"); } else { $username = $_POST['username'; $password = $_POST['password']; $email = $_POST['email']; $query = mysqli_query($con, "INSERT INTO users (username, password, email) VALUES ('$username', '$password', '$email')"); if(!$query) { trigger_error('Registeren mislukt'); } else { $reg = "U bent succesvol geregistreerd. Er is een email met uw gegevens is naar u verzonden"; $to = $email; $subject = "Registratie sterkste man kalender"; $message = "Hallo" . $username . "<br><br>Welkom op de sterkste man kalender website.<br>Uw inloggegevens zijn:</br>Gebruikersnaam: " . $username . "<br>Wachtwoord: " . $password . "<br>"; $from = "info@sterkstemankalender.nl"; $headers = "From: $from"; mail($to,$subject,$message,$headers); header("location: index.php?reg=$reg"); } } }
Edit: waar gebruik je overigens die errors array voor? En ik vind je manier van error handling bad practice, je zit te refereren wat een extra HTTP request geeft die hoogstwaarschijnlijk onnodig is, en ook zit je je errors door te passen als $_GET variabelen. Ik schat zo dat jouw pagina's waar jij vervolgens die $_GET variabelen weergeeft vatbaar zijn voor XSS.
XSS is cross-site scripting, het komt er in dit geval kort door de bocht op neer dat ik wat JavaScript als $_GET variabele kan meegeven in de URL, en vervolgens die link naar bijv. Mister10 stuur om zijn natuurlijke, nuchtere staat te verstoren met wat fancy JavaScript shit die ik dan heb geprogged voor hem. Kortweg: ik kan JavaScript runnen naar wens bij een ander. Als je dat overigens wilt counteren kun je het door de strip_tags functie halen, dus i.p.v. echo $_GET['whatever']; doe je dan echo strip_tags($_GET['whatever']); Nadeel is wel dat je dan geen HTML kunt meegeven (maar dat doe je al niet), en het is niet helemaal 100% bulletproof (er zijn daar echter wel leuke libraries voor zoals HTML Purifier).Die errors array gebruik ik nergens voor. Wat is XSS dan? Dit leek mij wel een handige manier om mensen te laten zien wat ze fout doen bij het registreren
Na een tijdje kweek je er gewoon een handigheidje in en 'zie' je vanzelf hoe je dingen moet aanpakken (en het helpt dat ik het heb gestudeerd natuurlijk).in b4 heel dbb die zich als bobby tables registreert op mike z'n siteXSS is cross-site scripting, het komt er in dit geval kort door de bocht op neer dat ik wat JavaScript als $_GET variabele kan meegeven in de URL, en vervolgens die link naar bijv. Mister10 stuur om zijn natuurlijke, nuchtere staat te verstoren met wat fancy JavaScript shit die ik dan heb geprogged voor hem. Kortweg: ik kan JavaScript runnen naar wens bij een ander. Als je dat overigens wilt counteren kun je het door de strip_tags functie halen, dus i.p.v. echo $_GET['whatever']; doe je dan echo strip_tags($_GET['whatever']); Nadeel is wel dat je dan geen HTML kunt meegeven (maar dat doe je al niet), en het is niet helemaal 100% bulletproof (er zijn daar echter wel leuke libraries voor zoals HTML Purifier).
Om je overigens niet teveel te verschrikken: ik ben ook ongeveer zo ooit begonnen hoorNa een tijdje kweek je er gewoon een handigheidje in en 'zie' je vanzelf hoe je dingen moet aanpakken (en het helpt dat ik het heb gestudeerd natuurlijk).
in b4 heel dbb die zich als bobby tables registreert op mike z'n site
en verder idd gewoon lekker doorploeteren mike... iedereen is zo begonnen en dat wordt vanzelf beter
Bericht gehad van de belastingdienst
http://media20.giphy.com/media/Mes24baGbS5Og/giphy.gif?w=320[/url][/QUOTE]
Wat stond er in
hallo alles goed
