login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Niet alle velden worden ingevuld in database

Offline excius - 17/01/2005 11:52
Avatar van exciusNieuw lid 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:

  1. <?php
  2. // formulier gepost, kijk of alle velden ook daadwerkelijk zijn ingevuld
  3. } 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']) <> "") {
  4. // formulier ingevuld - kijk eerst of de gebruiker al bestaat
  5. $naam = $_POST['naam'];
  6. $res = mysql_query("SELECT * FROM users WHERE name='".$naam."'") or die(mysql_error());
  7. if(mysql_num_rows($res) == 0) {
  8. // geen resultaten - dit is wat we willen
  9. // kijk of de opgegeven wachtwoorden overeenkomen
  10. if(!strcmp($_POST['wacht1'], $_POST['wacht2'])) {
  11. // wachtwoorden komen overeen - sla alle gegevens op in de database
  12. // naam is al opgehaald uit het formulier
  13. $wacht = md5($_POST['wacht1']); // versleuteld wachtwoord
  14. $level = 1; // standaard gebruikersniveau
  15. 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());
  16.  
  17. // geef melding weer
  18. ?>

5 antwoorden

Gesponsorde links
Offline twopeak - 17/01/2005 11:59 (laatste wijziging 17/01/2005 12:06)
Avatar van twopeak Gouden medaille

PHP ver gevorderde
  1. 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());


$naam komt van $_POST['naam']
$wacht = md5($_POST['wacht1']);
$level = 1;

En vanwaar komen de overige velden?

Moet waarschijnlijk worden:
  1. 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'])."'

En dat voor elke waarde!!!


[edit]heb men post net ge-edited...[/edit]
Offline excius - 17/01/2005 12:03
Avatar van excius Nieuw lid 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.
Offline twopeak - 17/01/2005 12:09
Avatar van twopeak Gouden medaille

PHP ver gevorderde
Jij controleert of ze ingevuld zijn.
Die voorwaarde klopt, omdat je zelf zegt dat "de eerste drie velden worden opgeslagen"

MAAAAAR het is in mysql_query(...) dat je de waarden in je database steekt! Dat is wat je doet om het te onthouden
Offline excius - 17/01/2005 12:31
Avatar van excius Nieuw lid 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?
Offline Thomas - 17/01/2005 12:45 (laatste wijziging 17/01/2005 12:46)
Avatar van Thomas Moderator Addslashes zet slashes voor de karakter ', " en \.

zie
het overzicht
php.net
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.194s