Fitness Seller

Sticky Wat maakt(e) vandaag jouw dag goed?

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");
								}
				}
	}

?>
 
Morgen naar de kinderboerderij met mijn moeder :D
 
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");
								}
				}
	}

?>
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).

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");
        }
    }
}
En forget about die php close tag wanneer die niet nodig is.

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.
 
Laatst bewerkt:
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
 
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
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:
Code:
elseif(mysqli_num_rows(mysqli_query($con, "SELECT * FROM users WHERE username = '$username'"))) {
Hoeveel mooier zou het zijn als je daar iets hebt staan in de zin van:
Code:
elseif($db->User->findByName($username))
oid.

Het scheelt je enorm veel hoofdpijn als je een klasse schrijft die dat allemaal zo mooi voor je kan afhandelen, zodat je het op bovenstaande manier kunt gebruiken. Je code wordt er ook een duizendmaal leesbaarder door, en ook is je code dan beter testbaar (mocht je dat al doen).
 
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).

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");
        }
    }
}
En forget about die php close tag wanneer die niet nodig is.

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.

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
 
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
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).

Om je overigens niet teveel te verschrikken: ik ben ook ongeveer zo ooit begonnen hoor :) 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).
 
Opende DBB en las nietsvermoedend wat topics. Eigenlijk zoals ik altijd doe. Iemand had zelfs een reactie gepost op iets wat ik geschreven had en terecht want bij het teruglezen vroeg ik me zelfs af hoe ik er op gekomen was. Ach maar ik weet hoe ik ben en dat ik me zulke dingen niet eens af moet vragen dus verscheen een trotse glimlach op mijn gezicht. Toch klopte er iets niet. Zat ik niet lekker in m'n vel? Was er een nare ondertoon? Nee niets van dat. Het beeld was ongewoon. Ja dat was het. Het beeld was anders maar lastig om het te plaatsen. Systematisch als ik ben, een eigenschap die ik me al jong eigen heb moeten maken om orde te scheppen in de verwarrende wereld om mij heen ging ik rustig het beeld af. Stap voor stap. Was de layout anders? Nee eigenlijk niet en was het al anders dan was dat onderhuids. Geheel onopvallend en dus niets om mij druk om te moeten maken maar was mijn avatar dan tot leven gekomen? Nee blijf eens wakker dat kan toch helemaal niet. Plots zag ik het of toch niet. Nee dat kan toch niet en ach, op dit tijdstip zijn m'n ogen ook al lang niet meer te vertrouwen dus dat deed ik dan ook maar niet. Nog eens. wauw.. Nog eens wauw! Langzaam begon de nieuwe realiteit tot me door te dringen ook al kan ik het nu nog steeds nauwelijks geloven..

[Afbeelding niet meer beschikbaar]

Een heel nieuw blok, gemaakt van keiharde karma.
Nu slapen of toch maar proberen. Benieuwd wat morgen als ik m'n huis uit en de wereld in loop het nieuwe blok me gaat brengen.
 
Aanpassing van je medicatie, denk ik.
 
Bericht gehad van de belastingdienst

giphy.gif
 
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).

Om je overigens niet teveel te verschrikken: ik ben ook ongeveer zo ooit begonnen hoor :) 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 site


en verder idd gewoon lekker doorploeteren mike... iedereen is zo begonnen en dat wordt vanzelf beter
 
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

Vind t wel leuk om mee bezig te zijn maar heb helaas niet veel tijd. Op school hadden we gisteren een PHP/Mysql toets om een CRUD (Create Read Update Delete) systeem te maken. Dat valt allemaal nog wel mee.

Al denk ik dat deze site binnen een paar weken wel klaar is en gebruikt kan gaan worden
 
Terug
Naar boven