ik heb een gebruikt registratiescript aangepast om enkele velden meer aan te passen maar op 1 of andere manier vult hij enkel de eerste 3 velden in en de rest niet. Hieronder staat de code:
<?php
// formulier gepost, kijk of alle velden ook daadwerkelijk zijn ingevuld
} elseif(trim($_POST['naam']) <> "" && trim($_POST['wacht1']) <> "" && trim($_POST['email']) <> "" && trim($_POST['tel']) <> "" && trim($_POST['fax']) <> "" && trim($_POST['adres']) <> "" && trim($_POST['pcwoonp']) <> "" && trim($_POST['land']) <> "") {
// formulier ingevuld - kijk eerst of de gebruiker al bestaat
$naam = $_POST['naam'];
$res = mysql_query("SELECT * FROM users WHERE name='".$naam."'") or die(mysql_error());
if(mysql_num_rows($res) == 0) {
// geen resultaten - dit is wat we willen
// kijk of de opgegeven wachtwoorden overeenkomen
if(!strcmp($_POST['wacht1'], $_POST['wacht2'])) {
// wachtwoorden komen overeen - sla alle gegevens op in de database
// naam is al opgehaald uit het formulier
$wacht = md5($_POST['wacht1']); // versleuteld wachtwoord
$level = 1; // standaard gebruikersniveau
mysql_query("INSERT INTO users (name, pass, level, email, tel, fax, adres, pcwoonp, land, bedrijf1, bedrijf2) VALUES ('".$naam."','".$wacht."','".$level."','".$email."','".$tel."','".$fax."','".$adres."','".$pcwoonp."','".$land."','".$bedrijf1."','".$bedrijf2."')") or die(mysql_error());
// geef melding weer
?>
<?php
// formulier gepost, kijk of alle velden ook daadwerkelijk zijn ingevuld
mysql_query("INSERT INTO users (name, pass, level, email, tel, fax, adres, pcwoonp, land, bedrijf1, bedrijf2) VALUES ('".$naam."','".$wacht."','".$level."','".$_POST['emai']l."','".$_POST['tel']."','".$_POST['fax']."','".$_POST['adres']."','".$_POST['pcwoonp']."','".$_POST['land']."','".$_POST['bedrijf1']."','".$_POST['bedrijf2']."')") or die(mysql_error());
mysql_query("INSERT INTO users (name, pass, level, email, tel, fax, adres, pcwoonp, land, bedrijf1, bedrijf2) VALUES ('".$naam."','".$wacht."','".$level."','".$_POST['emai']l."','".$_POST['tel']."','".$_POST['fax']."','".$_POST['adres']."','".$_POST['pcwoonp']."','".$_POST['land']."','".$_POST['bedrijf1']."','".$_POST['bedrijf2']."')") or die(mysql_error());
En als je niet wilt dat mensen met slechte bedoelingen je hele database plat kunnen legen; verwijderen of veranderen; MOET je op elke $_POST waarde de funtie addslashes() gebruiken
Dus
$naam = addslashes($_POST['naam']);
en in je SQL-query:
,'".addslashes($_POST['bedrijf2'])."'
ze worden gepost vanuit een bovenstaand formulier, werkt het niet door enkel te kijken of ze ingevuld zijn? Moet ik ze op 1 of andere manier nogmaals herkennen? zoja hoe moet je dat doen? ben vrij nieuw met php en dit is een beetje waar mijn website rond draait.
ok heb het aan het werk gekregen zonder de addslashes, maar wat doet die addslaches eigelijk en zou je dat dan ook moeten toevoegen bij de md5 passwoord?
Thomas - 17/01/2005 12:45 (laatste wijziging 17/01/2005 12:46)
Moderator
Addslashes zet slashes voor de karakter ', " en \.