Ik zit bij Jordi in de klas. Onze docente zegt dat de onderstaande code een onvoldoende zou krijgen. Simpelweg omdat er _POST data in een query word gebruikt. :S
<?php
session_start();
unset($_SESSION['id']);
include 'config.php';
if($_SERVER['REQUEST_METHOD'] == "POST"){
if(empty($_POST['username'])){
echo "Geen username op gegeven.<br />";
}else{
if(empty($_POST['password'])){
echo "Geen password op gegeven.<br />";
}else{
$query = mysql_query("INSERT INTO members(username,password) VALUES('".mysql_real_escape_string($_POST['username'])."','".mysql_real_escape_string(md5($_POST['password']))."')");
if($query){
header("location: index.php");
}else{
echo "Registratie mislukt.<br />Probeer het opnieuw, klik <a href='index.php'>hier</a>";
}
}
}
}else{
// terug form
}
?>
@gerhard, ben pas 4 weken bezig met php. Geloof graag dat het hier en daar niet klopt. Maar deze discussie lezende weet ik niet hoe ik nu door moet gaan met programmeren. Haar methodes hanteren of luisteren naar het advies van Jordi en andere klasgenoten.
Dit scriptje van Rick (uit een ander topic gehaald) is een mooi voorbeeld van het nuttig gebruik van een extra variable. Hier geeft het een helder en duidelijk overzicht. Zeer netjes.
Ik zit bij Jordi in de klas. Onze docente zegt dat de onderstaande code een onvoldoende zou krijgen. Simpelweg omdat er _POST data in een query word gebruikt. :S
Het hangt er vanaf of je de _POST data hebt gecontroleerd. Als bezoekers van jouw website zich moeten inschrijven en daarbij een gebruikersnaam en wachtwoord moeten verzinnen, dan wil je dat de gebruikersnaam en het wachtwoord aan bepaalde eisen voldoen. Bijvoorbeeld: de gebruikersnaam moet minimaal 6 en hooguit 8 tekens bevatten en het wachtwoord moet minimaal 6 en hooguit 8 tekens bevatten, en daarnaast moet het wachtwoord bestaan uit tenminste 1 letter en tenminste 1 cijfer.
Als je nu de _POST data meteen in de query zet, dus zonder deze te controleren, dan kan het zijn dat iemand een gebruikersnaam van 100 tekens invoert, of het kan zo zijn dat iemand een wachtwoord invoert waar geen cijfers inzitten. Daarom is het een goede gewoonte om _POST data altijd eerst te controleren zodat je weet of de data voldoet aan jouw eisen. Ik denk dat dat is wat jouw lerares bedoelt. Dat je dus niet zomaar de _POST data in een query mag gebruiken zonder deze data eerst gecontroleerd te hebben. Echter, als je de _POST data hebt gecontroleerd en deze aan jouw eisen voldoet, dan mag je de _POST data wel in de query gebruiken. Ik hoop dat het zo wat duidelijker is.
Dit is dus een voldoende voor mij want $naam is gedefineerd met $_POST['naam'];
ook al vind ik is dat $_POST['naam'] ook direct in de controle + query kan
waarom staat bas kreleger als last post? ik zie hem hier niet tussen staan.