Ik probeer al wekenlang uit te vinden waarom mijn mysql database niet wordt ge-update met de nieuwe en/of eerste data die ik hem aanbied. Ik denk dat ik ergens een denkfout maak.

Aan het einde van deze routine bij de query "mysql_query("INSERT INTO custumer_id..." zou ik de database moeten updaten. Dit script "POST_CREATE.PHP" maakt onderdeel uit van meerdere scripts die samen de website vormen. Dit script bedoelt als onderdeel van het kunnen inloggen op de site. Een account wordt aangemaakt, het wachtwoord wordt md5 versleuteld en deze data van de inschrijver wordt vergaard en verstuurd naar de mysql database. Deze wordt niet geacepteerd.

De scripts zijn origineel door iemand anders gemaakt, maar verder door mij ontwikkelt. Ik kan daar dus niet op terugvallen.
Ik ben echter niet dagelijks met PHP bezig alhoewel ik er wel veel van begrijp. Ik hoop op een beginnersfout.

Aan het einde van dit scrip heb ik een testblokje gemaakt om te kijken waarmee de variabelen gevuld zijn. Hieruit blijkt dat de encryptie goed gaat.

Mijn vraag is hoe kan ik er voor zorgen dat de data wel in de database wordt opgenomen, c.q. wordt ge-update?

Alvast heel erg bedankt!



Begin code:
=========================

<?php
// POST_CREATE.PHP Onderhoud klantdata en password

// De $_POST variabele is een array van variabele namen en waarden verzonden met de HTTP POST methode.
// De $_POST variabele wordt gebruikt om formulier waarden op te halen verzonden met de method="post" methode.
// Informatie verzonden met de POST methode is onzichtbaar voor anderen en heeft geen limiet met de
// hoeveelheid data die verzonden wordt.
// Het "welkom.php" bestand kan nu de $_POST variable gebruiken om de data op te halen (De formulier
// veldnamen worden automatisch de ID sleutels in de $_POST array.)

////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// CONTROLEERT OF ER EEN 'letter' IS
if (isset($_POST['letter']))
{
$_POST['letter'] = 1;
}
else
{
$_POST['letter'] = 0;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// POST OVERZETTEN NAAR DE ARRAY $input
if (!empty($_POST)) // Als $_POST niet leeg is.
{
$input = array(
$_POST['def_lang'],
$_POST['def_gen'],
$_POST['name_1'],
$_POST['name_2'],
$_POST['company'],
$_POST['address1'],
$_POST['address2'],
$_POST['city'],
$_POST['country'],
$_POST['telnr'],
$_POST['email'],
$_POST['letter']);

// OPHALEN SESSIE-TAAL
$_SESSION['lang'] = $input[0];

// VELDEN INLADEN IN GEKOZEN SESSIE-TAAL in ARRAY $empty_c
// [''] = LEEG
// [''] = LEEG
// [TEXT_Erln] = Achternaam
// [TEXT_Erfn] = Voornaam
// [''] = LEEG
// [TEXT_Erad] = Adres
// [TEXT_Erzip] = Postcode
// [TEXT_Ercity] = Woonplaats
// [''] = LEEG
// [''] = LEEG
// [TEXT_Ermail] = E-mailadres
// [''] = LEEG
//
// $empty_t = TEXT_Ermain = Tekst: 'We hebben niet ontvangen:'

$empty_c = array(
'',
'',
TEXT_Erln,
TEXT_Erfn,
'',
TEXT_Erad,
TEXT_Erzip,
TEXT_Ercity,
'',
'',
TEXT_Ermail,
'');

$empty_t = TEXT_Ermain;

$mi = 0;
$li = 0;
// ALS EEN VELD BESTAAT
while (isset($input[$li]))
{
// ALS VELD LEEG IS MAAR VELDAANDUIDING BESTAAT WEL VUL DAN ARRAY $empty_l met VELDAANDUIDING
if (($input[$li] == '') AND ($empty_c[$li] != ''))
{
$empty_l[$mi] = $empty_c[$li];
$mi++;
}
$li++;
}
// !eregi IS DEPRECATED 25-03-2010

// ALS ER GEEN 'email' OF EEN ONGELDIG E-MAILADRES WERD OPGEGEVEN
if (($_POST['email'] != '') AND (!preg_match('/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/i', strtolower($input[10]))))
{
// LAAD BOODSCHAP 'GEEN (GELDIG) E-MAILADRES' IN
$empty_l[$mi] = TEXT_Ervmail;
$mi++;
}
//ALS 'EMAIL' NIET LEEG EN WEL GELDIG IS
elseif ($_POST['email'] != '')
{
// CONTROLEER OP REEDS BESTAANDE E-MAILADRES OF BIEDNUMMER
$query_cm = "SELECT * FROM custumer_id WHERE email = '".$_POST['email']."' AND bied_nr='0'";
$result = mysql_query($query_cm);
if ((mysql_num_rows($result) > 0) AND ((!isset($_SESSION['Costum_iD'])) OR (!isset($_SESSION['Admino_iD']))))
{
// ALS E-MAILADRES REEDS IN GEBRUIK IS
$empty_l[$mi] = TEXT_Erfmail;
}
}
}


// ALS E-MAILADRES IS GEACCEPTEERD
if (!isset($empty_l))
{
$li = 0;
while (isset($input[$li]))
{
// VERWIJDER HAKEN en QOUTES
$input[$li] = str_replace(array("<",">","'"),array('','','&rsquo;'), $input[$li]);
$li++;
}


// ALS ER EEN KLANTCODE OF ADMIN-ID BESTAAT
if ((isset($_SESSION['Costum_iD'])) OR (isset($_SESSION['Admino_iD'])))
{
if (isset($_SESSION['Costum_iD']))
{
// BESTAAT ER EEN KLANTCODE, LAADT DEZE DAN IN $edit_id
$edit_id = $_SESSION['Costum_iD'];
}
else
{
// BESTAAT ER EEN ADMIN-ID, LAADT DEZE DAN IN $edit_id
$edit_id = $_SESSION['Admino_iD'];
}



// ZET (OF UPDATE) KLANTDATA IN DATABASE
mysql_query("
UPDATE custumer_id
SET
gender= '".$input[1]."',
l_name = '".$input[2]."',
f_name = '".$input[3]."',
company = '".$input[4]."',
address_1 = '".$input[5]."',
address_2 = '".$input[6]."',
city = '".$input[7]."',
country = '".$input[8]."',
tel_nr = '".$input[9]."',
email = '".$input[10]."',
lang = '".$input[0]."',
letter= '".$_POST['letter']."'

WHERE id = '".$edit_id."'");

// $pers_mssg = "UW ACCOUNT IS BIJGWERKT!"
$pers_mssg = TEXT_updac;
}

// ALS ER NOG GEEN ACCOUNT BESTAAT
else
{
//Random namen
$Pass_w = array (
"Boek","Auteur","Schrijver","Incunabel","Letter","Parafrase","Paragraaf","Titel","Novelle","Accent",
"Citaat","Gedicht","Dichter","Manuscript","Illustratie","Biologie","Biografie","Monografie","Vondel",
"Cats","Archeologie","Bibliografie","Kaft","Boekbinding","Katern","Indonesia","Plato","Aristotelus",
"Medea","Oedipus","Odysseus","Voorplat","Preeg","Houtsnede","Calligrafie","Lithografie","Kopergravure",
"Narcissus","Achilles","Adonis","Antigone","Aphrodite","Argus","Ariadne","Artemis","Daedalus","Dionysus",
"Helios","Hermes","Hyperions","Icarus","Minotaur","Morpheus","Muze","Nimph","Orpheus","Penelope","Persephone",
"Pollux","Prometheus","Rhea","Phaedrus","Pytagoras","Ilias","Homeros","Plutarchus","Plato","Zeno","Vergilius",
"Cicero","Horatius","Ovidius","Perpetua","Euclides","Euripides","Sophocles","Epicures","Codex","Lexicon",
"Literatuur","Sonnet","Emblemata","ExLibris","Drukpers");
// "","","","","","","","","","","","","","","","","","","",
// "","","","","","","","","","","","","","","","","","","",

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// MAAK E-MAIL AAN
// $Shop = Naam van de shop
// $shop[0] = Letter 'A'??
// $result2 = Bericht ID
// $shop_mail[0] = "Welkom bij Amsterdam Book Auctions"
// $shop_mail[1] = "U heeft een account aangemaakt bij Amsterdam Book Auctions. U kunt nu inloggen...
$totaal = count ($Pass_w); // Aantal (wacht)woorden
$willekeur = mt_rand(1,$totaal-1); // Random volgnummer van wachtwoord binnen de lijst
$passw_num = mt_rand(10001,99999); // Random getal van 5 cijfers
$PassW_in = $Pass_w[$willekeur].$passw_num; // Aangemaakt wachtwoord
$direct_link = TEXT_dir_link; // 'Hieronder vindt u de link naar de loginpagina...
$casesens = TEXT_case_sens; // 'Uw wachtwoord is hoofdlettergevoelig...
$einde_mail = TEXT_maileinde; // Einde mail; Welkom op de website
$ondertitel = TEXT_ondertitel; // Veilingmeester
$login_link = 'http://www.amsterdambookauctions.com/index.php?page=login';; // Link naar loginpagina website
$query_sh = "SELECT shop_name, shop_owner, email FROM shop_info"; // query voor ophalen Shop ID
$result = mysql_query($query_sh); // Shop ID

if (mysql_num_rows($result) > 0)
{
while ($shop_inf = mysql_fetch_row($result))
{
$shop = $shop_inf[0];
$query_ma = "SELECT title_".$_SESSION['lang'].", mail_".$_SESSION['lang']."
FROM email_list
WHERE mail_sub = 'welcome'";
$result2 = mysql_query($query_ma);
if (mysql_num_rows($result2) > 0)
{
while ($shop_mail = mysql_fetch_row($result2))
{
$mail_cont = $shop_mail[1]."\n"
."Uw wachtwoord is:"."\n"
.$PassW_in."\n \n"
.$direct_link."\n"
.$login_link."\n \n"
.$einde_mail." \n \n"
.$shop_inf[1]."\n"
.$ondertitel
;

// $input[10] = geadresseerde
// $shop_mail[0] = Onderwerp e-mail
// $mail_cont = Inhoud e-mail
// $shop_inf[1] = Shopowner
// $shop_inf[2] = Afzender (FROM:)
// $login_link = link naar de login pagina

// VERZEND E-MAIL
mail(strtolower($input[10]), $shop_mail[0], $mail_cont, "From: ".$shop_inf[2]);

}
}
}
}

// SCHRIJF DE KLANTDATA NAAR DATABASE - .md5($PassW_in). is de hash encryptor die de password versleuteld.
// GETEST - '".strtolower($input[10])."', = OK
// GETEST - Namen databasevelden komen overeen = OK

mysql_query("INSERT INTO custumer_id
(
gender,
l_name,
f_name,
company,
address_1,
address_2,
city,
country,
tel_nr,
email,
lang,
pass_w,
time_cr,
last_visit,
letter)

VALUES
(
'".$input[1]."',
'".$input[2]."',
'".$input[3]."',
'".$input[4]."',
'".$input[5]."',
'".$input[6]."',
'".$input[7]."',
'".$input[8]."',
'".$input[9]."',
'".$input[10]."',
'".strtolower($input[10])."',
'".md5($PassW_in)."',
'".$now."',
'".$now."',
'".$_POST['letter']."')
");

// testblokje
//print ($input[1]);
//print ($input[2]);
//print ($input[3]);
//print ($input[4]);
//print ($input[5]);
//print ($input[6]);
//print ($input[7]);
//print ($input[8]);
//print ($input[9]);
//print ($input[10]);
//print ($input[0]);
print (custumer_id);
print (" - ");
print ($input[10]);
print (" - ");
print ($PassW_in);
print (" - ");
print (md5($PassW_in));

//$pers_mssg = Uw account is aangemaakt, open uw email...;
//$pers_mssg = TEXT_sucnwac;

}
}
?>
Ger van Steenderen op 14/04/2014 18:54:16

Zo te zien heb je een default op de kolom bied_nr staan en ook een UNIQUE INDEX erop.


Beste Ger,

Ik zie wel nu al een opvallende fout, namelijk kolom 'lang' is -char(3)- dus maar drie karakters, terwijl er foutief nogmaals het (lange) e-mailadres wordt aangeboden. Dit moet sowieso een error genereren.

Ik ga eerst uitzoeken hoe dit komt en eventueel verbeteren.

Bedankt!
Michael
Dat levert geen sql-fout op alleen wordt dan hetgeen je invoert ingekort tot 3 karakters.
Maar de melding 'Duplicate entry' betekent dat je dubbele waarden hebt in een kolom waarin dat niet mag.
De (Type)fout is verbeterd. De taalaanduiding wordt nu gewoon aangemaakt. De error [Duplicate entry '0' for key 'bied_nr_2' in query] blijft zoals te verwachten bestaan.

@Ger, wat bedoel je precies met die [default] die ik heb staan op de kolom [bied_nr]?
Bedoel je misschien dat ik deze kolom op [AUTO_INCREMENT] moet zetten?
Ik las althans zoiets toen ik op het onderwerp googlede. Waarbij de suggestie werd gewekt dat dit eventueel bij de upgrade van de server van mijn provider zou kunnen zijn gereset...

Ik heb me ingelezen op [UNIQUE INDEX]. Zoals ik het interpreteer zal de database geen items accepteren die al in de kolom staan.
Ik heb met PHPmyAdmin de tabel [custumer_id] onderzocht daar staan netjes de 18 velden (kolommen?). Het vreemde is dat hierin alleen de kolom [bied_nr] terwijl bij de INDEX een extra kolom wordt vermeldt, te weten [bied_nr_2]. Dit is de kolom die bij de error er uit komt terwijl hij m.i. niet in de database zit.
Ik vermoed dat het een rudimentaire kolom is. Ik zal de php-code scanen op referenties naar deze kolom. Ik ben benieuwd of de error hier
Actie Sleutelnaam Type Unieke wrd. Gecompr. Kolom Kardinaliteit
Wijz.Verw. PRIMARY BTREE Ja Nee id 3079
Wijz.Verw. bied_nr_2 BTREE Ja Nee bied_nr 3079
Wijz.Verw. gender BTREE Nee Nee gender 3
Wijz.Verw. bied_nr FULLTEXT Nee Nee bied_nr 1

Mijn vraag is: kan ik deze index [van bied_nr_2] straffeloos verwijderen als deze nergens wordt gebruikt in de php-code?



[size=xsmall]Toevoeging op 14/04/2014 23:47:44:[/size]

@Ger,

Onze replies hebben elkaar gekruisd...

Michael

[size=xsmall]Toevoeging op 15/04/2014 00:57:14:[/size]

Update:
Ik heb alle php routines (files) gescand op 'bied_nr_2' maar vindt niets. Ik denk dat het een overblijfsel is uit het verleden...

Alvast bedankt voor reacties...

Michael
Indexen worden niet vaak benoemd in queries zelf, maar dat wil niet zeggen dat het geen nut heeft.
Even afhankelijk van wat er in de kolom bied_nr moet komen te staan, denk ik dat je de FULLTEXT index moet verwijderen (beetje overdreven voor een varchar(16)), en het unieke bij de BTREE index weg moet halen.

Ik kan me voorstellen dat je in de war bent met die namen die PMA aan die indexen heeft gegeven, het is gebruikelijker om daar een idx_ prefix aan te geven.

Je kan bij elke kolom een default waarde aangegeven, dit houdt in dat als een kolom niet benoemd wordt in de insert de kolom dan de default waarde krijgt.

PS.
Kolom en veld zijn in database terminologie synoniemen, evenals rij en record
@Ger

Ik ga het onderzoeken.

Bedankt...

Michael

[size=xsmall]Toevoeging op 15/04/2014 17:14:56:[/size]

@Ger

Ik begrijp nu dat [bied_nr_2] geen kolom is maar een INDEX. Het is dus logisch dat ik hem nergens vind in php-files. Indexen een prefix geven zou het inderdaad duidelijker (voor mij) hebben gemaakt.

Ook begrijp ik nu wat je in deze context met default bedoelt. [Bied_nr] staat inderdaad op '0'. Ik heb dit weghehaald. Nu staat er niets.

Na deze verandering blijft de error komen, te weten:
...Duplicate entry '' for key 'bied_nr_2' in query: INSERT INTO custumer_id ( gender...

Het zit hem dus in die index 'bied_nr_2'.
Ik ga nu spitten op de rest van je aanwijzingen.

Bedankt.
Michael

[size=xsmall]Toevoeging op 15/04/2014 17:49:16:[/size]

Update:

- Ik heb zoals je adviseerde bij [bied_nr] de FULLTEXT verwijderd. PMA veranderde dit in BTREE. De aanduiding bij UNIEKE WAARDE stond al op [Nee], dus dit liet ik zo staan.

- PMA gaf bij het wegschrijven van de verandering de boodschap: [!De indexen bied_nr_2 en bied_nr lijken hetzelfde, mogelijk kan een van beide worden verwijderd.]

- Na dit getest te hebben bleef de error bestaan, te weten:
...Duplicate entry '' for key 'bied_nr_2' in query: INSERT INTO custumer_id ( gender...

Gezien de boodschap van PMA heb ik bij de index [bied_nr_2] ook hier de UNIEKE WAARDE op [Nee] gezet.
PMA gaf nu dezelfde boodschap: [!De indexen bied_nr_2 en bied_nr lijken hetzelfde, mogelijk kan een van beide worden verwijderd.]
Echter de foutmelding op de website is nu weg!



[size=xsmall]Toevoeging op 15/04/2014 17:54:26:[/size]

Update:
Ik heb zojuist de database gecontroleerd, en HOERA, de klant is toegevoegd!
Alleen is hij nu tweemaal toegevoegd LOL. Vermoedelijk wordt hij ook aangemaakt door de testroutine. Ik zal eens gaan kijken.

Michael

[size=xsmall]Toevoeging op 15/04/2014 18:13:54:[/size]

Update:
Inderdaad. De testroutine zette hem twee maal in de database. Ik zie nu wel een ander probleem, het veld van de klantnummer blijft leeg...
Enfin dat is een probleem van een andere orde.

[size=xsmall]Toevoeging op 15/04/2014 18:18:26:[/size]

Update: Bij het inloggen wordt het klantnummer aangemaakt... Dus het probleem is opgelost.

Het werkt! Ik begrijp nog niet helemaal wat de fout was. Die tweede index [bied_nr] is nu gelijk aan [bied_nr_2], althans dat geeft PMA aan. Ik ben benieuwd of ik de twee niet nu gewoon kan verwijderen...

In ieder geval iedereen, en speciaal Ger, tot dusver enrom bedankt. Zonder jullie was dit voor dit voor mij een onoplosbare complexe puzzel!

Michael
Michael del Pino op 13/04/2014 17:57:55

Ik probeer al wekenlang uit te vinden waarom mijn mysql database niet wordt ge-update met de nieuwe en/of eerste data die ik hem aanbied. Ik denk dat ik ergens een denkfout maak.

Aan het einde van deze routine bij de query "mysql_query("INSERT INTO custumer_id..." zou ik de database moeten updaten. Dit script "POST_CREATE.PHP" maakt onderdeel uit van meerdere scripts die samen de website vormen. Dit script bedoelt als onderdeel van het kunnen inloggen op de site. Een account wordt aangemaakt, het wachtwoord wordt md5 versleuteld en deze data van de inschrijver wordt vergaard en verstuurd naar de mysql database. Deze wordt niet geacepteerd.

De scripts zijn origineel door iemand anders gemaakt, maar verder door mij ontwikkelt. Ik kan daar dus niet op terugvallen.
Ik ben echter niet dagelijks met PHP bezig alhoewel ik er wel veel van begrijp. Ik hoop op een beginnersfout.

Aan het einde van dit scrip heb ik een testblokje gemaakt om te kijken waarmee de variabelen gevuld zijn. Hieruit blijkt dat de encryptie goed gaat.

Mijn vraag is hoe kan ik er voor zorgen dat de data wel in de database wordt opgenomen, c.q. wordt ge-update?

Alvast heel erg bedankt!



Begin code:
=========================

<?
// POST_CREATE.PHP Onderhoud klantdata en password

// De $_POST variabele is een array van variabele namen en waarden verzonden met de HTTP POST methode.
// De $_POST variabele wordt gebruikt om formulier waarden op te halen verzonden met de method="post" methode.
// Informatie verzonden met de POST methode is onzichtbaar voor anderen en heeft geen limiet met de
// hoeveelheid data die verzonden wordt.
// Het "welkom.php" bestand kan nu de $_POST variable gebruiken om de data op te halen (De formulier
// veldnamen worden automatisch de ID sleutels in de $_POST array.)

////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// CONTROLEERT OF ER EEN 'letter' IS
if (isset($_POST['letter']))
{
$_POST['letter'] = 1;
}
else
{
$_POST['letter'] = 0;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// POST OVERZETTEN NAAR DE ARRAY $input
if (!empty($_POST)) // Als $_POST niet leeg is.
{
$input = array(
$_POST['def_lang'],
$_POST['def_gen'],
$_POST['name_1'],
$_POST['name_2'],
$_POST['company'],
$_POST['address1'],
$_POST['address2'],
$_POST['city'],
$_POST['country'],
$_POST['telnr'],
$_POST['email'],
$_POST['letter']);

// OPHALEN SESSIE-TAAL
$_SESSION['lang'] = $input[0];

// VELDEN INLADEN IN GEKOZEN SESSIE-TAAL in ARRAY $empty_c
// [''] = LEEG
// [''] = LEEG
// [TEXT_Erln] = Achternaam
// [TEXT_Erfn] = Voornaam
// [''] = LEEG
// [TEXT_Erad] = Adres
// [TEXT_Erzip] = Postcode
// [TEXT_Ercity] = Woonplaats
// [''] = LEEG
// [''] = LEEG
// [TEXT_Ermail] = E-mailadres
// [''] = LEEG
//
// $empty_t = TEXT_Ermain = Tekst: 'We hebben niet ontvangen:'

$empty_c = array(
'',
'',
TEXT_Erln,
TEXT_Erfn,
'',
TEXT_Erad,
TEXT_Erzip,
TEXT_Ercity,
'',
'',
TEXT_Ermail,
'');

$empty_t = TEXT_Ermain;

$mi = 0;
$li = 0;
// ALS EEN VELD BESTAAT
while (isset($input[$li]))
{
// ALS VELD LEEG IS MAAR VELDAANDUIDING BESTAAT WEL VUL DAN ARRAY $empty_l met VELDAANDUIDING
if (($input[$li] == '') AND ($empty_c[$li] != ''))
{
$empty_l[$mi] = $empty_c[$li];
$mi++;
}
$li++;
}
// !eregi IS DEPRECATED 25-03-2010

// ALS ER GEEN 'email' OF EEN ONGELDIG E-MAILADRES WERD OPGEGEVEN
if (($_POST['email'] != '') AND (!preg_match('/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/i', strtolower($input[10]))))
{
// LAAD BOODSCHAP 'GEEN (GELDIG) E-MAILADRES' IN
$empty_l[$mi] = TEXT_Ervmail;
$mi++;
}
//ALS 'EMAIL' NIET LEEG EN WEL GELDIG IS
elseif ($_POST['email'] != '')
{
// CONTROLEER OP REEDS BESTAANDE E-MAILADRES OF BIEDNUMMER
$query_cm = "SELECT * FROM custumer_id WHERE email = '".$_POST['email']."' AND bied_nr='0'";
$result = mysql_query($query_cm);
if ((mysql_num_rows($result) > 0) AND ((!isset($_SESSION['Costum_iD'])) OR (!isset($_SESSION['Admino_iD']))))
{
// ALS E-MAILADRES REEDS IN GEBRUIK IS
$empty_l[$mi] = TEXT_Erfmail;
}
}
}


// ALS E-MAILADRES IS GEACCEPTEERD
if (!isset($empty_l))
{
$li = 0;
while (isset($input[$li]))
{
// VERWIJDER HAKEN en QOUTES
$input[$li] = str_replace(array("<",">","'"),array('','','&rsquo;'), $input[$li]);
$li++;
}


// ALS ER EEN KLANTCODE OF ADMIN-ID BESTAAT
if ((isset($_SESSION['Costum_iD'])) OR (isset($_SESSION['Admino_iD'])))
{
if (isset($_SESSION['Costum_iD']))
{
// BESTAAT ER EEN KLANTCODE, LAADT DEZE DAN IN $edit_id
$edit_id = $_SESSION['Costum_iD'];
}
else
{
// BESTAAT ER EEN ADMIN-ID, LAADT DEZE DAN IN $edit_id
$edit_id = $_SESSION['Admino_iD'];
}



// ZET (OF UPDATE) KLANTDATA IN DATABASE
mysql_query("
UPDATE custumer_id
SET
gender= '".$input[1]."',
l_name = '".$input[2]."',
f_name = '".$input[3]."',
company = '".$input[4]."',
address_1 = '".$input[5]."',
address_2 = '".$input[6]."',
city = '".$input[7]."',
country = '".$input[8]."',
tel_nr = '".$input[9]."',
email = '".$input[10]."',
lang = '".$input[0]."',
letter= '".$_POST['letter']."'

WHERE id = '".$edit_id."'");

// $pers_mssg = "UW ACCOUNT IS BIJGWERKT!"
$pers_mssg = TEXT_updac;
}

// ALS ER NOG GEEN ACCOUNT BESTAAT
else
{
//Random namen
$Pass_w = array (
"Boek","Auteur","Schrijver","Incunabel","Letter","Parafrase","Paragraaf","Titel","Novelle","Accent",
"Citaat","Gedicht","Dichter","Manuscript","Illustratie","Biologie","Biografie","Monografie","Vondel",
"Cats","Archeologie","Bibliografie","Kaft","Boekbinding","Katern","Indonesia","Plato","Aristotelus",
"Medea","Oedipus","Odysseus","Voorplat","Preeg","Houtsnede","Calligrafie","Lithografie","Kopergravure",
"Narcissus","Achilles","Adonis","Antigone","Aphrodite","Argus","Ariadne","Artemis","Daedalus","Dionysus",
"Helios","Hermes","Hyperions","Icarus","Minotaur","Morpheus","Muze","Nimph","Orpheus","Penelope","Persephone",
"Pollux","Prometheus","Rhea","Phaedrus","Pytagoras","Ilias","Homeros","Plutarchus","Plato","Zeno","Vergilius",
"Cicero","Horatius","Ovidius","Perpetua","Euclides","Euripides","Sophocles","Epicures","Codex","Lexicon",
"Literatuur","Sonnet","Emblemata","ExLibris","Drukpers");
// "","","","","","","","","","","","","","","","","","","",
// "","","","","","","","","","","","","","","","","","","",

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// MAAK E-MAIL AAN
// $Shop = Naam van de shop
// $shop[0] = Letter 'A'??
// $result2 = Bericht ID
// $shop_mail[0] = "Welkom bij Amsterdam Book Auctions"
// $shop_mail[1] = "U heeft een account aangemaakt bij Amsterdam Book Auctions. U kunt nu inloggen...
$totaal = count ($Pass_w); // Aantal (wacht)woorden
$willekeur = mt_rand(1,$totaal-1); // Random volgnummer van wachtwoord binnen de lijst
$passw_num = mt_rand(10001,99999); // Random getal van 5 cijfers
$PassW_in = $Pass_w[$willekeur].$passw_num; // Aangemaakt wachtwoord
$direct_link = TEXT_dir_link; // 'Hieronder vindt u de link naar de loginpagina...
$casesens = TEXT_case_sens; // 'Uw wachtwoord is hoofdlettergevoelig...
$einde_mail = TEXT_maileinde; // Einde mail; Welkom op de website
$ondertitel = TEXT_ondertitel; // Veilingmeester
$login_link = 'http://www.amsterdambookauctions.com/index.php?page=login';; // Link naar loginpagina website
$query_sh = "SELECT shop_name, shop_owner, email FROM shop_info"; // query voor ophalen Shop ID
$result = mysql_query($query_sh); // Shop ID

if (mysql_num_rows($result) > 0)
{
while ($shop_inf = mysql_fetch_row($result))
{
$shop = $shop_inf[0];
$query_ma = "SELECT title_".$_SESSION['lang'].", mail_".$_SESSION['lang']."
FROM email_list
WHERE mail_sub = 'welcome'";
$result2 = mysql_query($query_ma);
if (mysql_num_rows($result2) > 0)
{
while ($shop_mail = mysql_fetch_row($result2))
{
$mail_cont = $shop_mail[1]."\n"
."Uw wachtwoord is:"."\n"
.$PassW_in."\n \n"
.$direct_link."\n"
.$login_link."\n \n"
.$einde_mail." \n \n"
.$shop_inf[1]."\n"
.$ondertitel
;

// $input[10] = geadresseerde
// $shop_mail[0] = Onderwerp e-mail
// $mail_cont = Inhoud e-mail
// $shop_inf[1] = Shopowner
// $shop_inf[2] = Afzender (FROM:)
// $login_link = link naar de login pagina

// VERZEND E-MAIL
mail(strtolower($input[10]), $shop_mail[0], $mail_cont, "From: ".$shop_inf[2]);

}
}
}
}

// SCHRIJF DE KLANTDATA NAAR DATABASE - .md5($PassW_in). is de hash encryptor die de password versleuteld.
// GETEST - '".strtolower($input[10])."', = OK
// GETEST - Namen databasevelden komen overeen = OK

mysql_query("INSERT INTO custumer_id
(
gender,
l_name,
f_name,
company,
address_1,
address_2,
city,
country,
tel_nr,
email,
lang,
pass_w,
time_cr,
last_visit,
letter)

VALUES
(
'".$input[1]."',
'".$input[2]."',
'".$input[3]."',
'".$input[4]."',
'".$input[5]."',
'".$input[6]."',
'".$input[7]."',
'".$input[8]."',
'".$input[9]."',
'".$input[10]."',
'".strtolower($input[10])."',
'".md5($PassW_in)."',
'".$now."',
'".$now."',
'".$_POST['letter']."')
");

// testblokje
//print ($input[1]);
//print ($input[2]);
//print ($input[3]);
//print ($input[4]);
//print ($input[5]);
//print ($input[6]);
//print ($input[7]);
//print ($input[8]);
//print ($input[9]);
//print ($input[10]);
//print ($input[0]);
print (custumer_id);
print (" - ");
print ($input[10]);
print (" - ");
print ($PassW_in);
print (" - ");
print (md5($PassW_in));

//$pers_mssg = Uw account is aangemaakt, open uw email...;
//$pers_mssg = TEXT_sucnwac;

}
}
?>




[size=xsmall]Toevoeging op 06/08/2014 14:37:00:[/size]

Michael del Pino op 06/08/2014 14:34:59

[quote="Michael del Pino op 13/04/2014 17:57:55"]
Ik probeer al wekenlang uit te vinden waarom mijn mysql database niet wordt ge-update met de nieuwe en/of eerste data die ik hem aanbied. Ik denk dat ik ergens een denkfout maak.

Aan het einde van deze routine bij de query "mysql_query("INSERT INTO custumer_id..." zou ik de database moeten updaten. Dit script "POST_CREATE.PHP" maakt onderdeel uit van meerdere scripts die samen de website vormen. Dit script bedoelt als onderdeel van het kunnen inloggen op de site. Een account wordt aangemaakt, het wachtwoord wordt md5 versleuteld en deze data van de inschrijver wordt vergaard en verstuurd naar de mysql database. Deze wordt niet geacepteerd.

De scripts zijn origineel door iemand anders gemaakt, maar verder door mij ontwikkelt. Ik kan daar dus niet op terugvallen.
Ik ben echter niet dagelijks met PHP bezig alhoewel ik er wel veel van begrijp. Ik hoop op een beginnersfout.

Aan het einde van dit scrip heb ik een testblokje gemaakt om te kijken waarmee de variabelen gevuld zijn. Hieruit blijkt dat de encryptie goed gaat.

Mijn vraag is hoe kan ik er voor zorgen dat de data wel in de database wordt opgenomen, c.q. wordt ge-update?

Alvast heel erg bedankt!



Begin code:
======================

Correctie.

////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// CONTROLEERT OF ER EEN 'letter' IS
if (isset($_POST['letter']))
{
$_POST['letter'] = 1;
}
else
{
$_POST['letter'] = 0;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// POST OVERZETTEN NAAR DE ARRAY $input
if (!empty($_POST)) // Als $_POST niet leeg is.
{
$input = array(
$_POST['def_lang'],
$_POST['def_gen'],
$_POST['name_1'],
$_POST['name_2'],
$_POST['company'],
$_POST['address1'],
$_POST['address2'],
$_POST['city'],
$_POST['country'],
$_POST['telnr'],
$_POST['email'],
$_POST['letter']);

// OPHALEN SESSIE-TAAL
$_SESSION['lang'] = $input[0];

// VELDEN INLADEN IN GEKOZEN SESSIE-TAAL in ARRAY $empty_c
// [''] = LEEG
// [''] = LEEG
// [TEXT_Erln] = Achternaam
// [TEXT_Erfn] = Voornaam
// [''] = LEEG
// [TEXT_Erad] = Adres
// [TEXT_Erzip] = Postcode
// [TEXT_Ercity] = Woonplaats
// [''] = LEEG
// [''] = LEEG
// [TEXT_Ermail] = E-mailadres
// [''] = LEEG
//
// $empty_t = TEXT_Ermain = Tekst: 'We hebben niet ontvangen:'

$empty_c = array(
'',
'',
TEXT_Erln,
TEXT_Erfn,
'',
TEXT_Erad,
TEXT_Erzip,
TEXT_Ercity,
'',
'',
TEXT_Ermail,
'');

$empty_t = TEXT_Ermain;

$mi = 0;
$li = 0;
// ALS EEN VELD BESTAAT
while (isset($input[$li]))
{
// ALS VELD LEEG IS MAAR VELDAANDUIDING BESTAAT WEL VUL DAN ARRAY $empty_l met VELDAANDUIDING
if (($input[$li] == '') AND ($empty_c[$li] != ''))
{
$empty_l[$mi] = $empty_c[$li];
$mi++;
}
$li++;
}
// !eregi IS DEPRECATED 25-03-2010

// ALS ER GEEN 'email' OF EEN ONGELDIG E-MAILADRES WERD OPGEGEVEN
if (($_POST['email'] != '') AND (!preg_match('/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/i', strtolower($input[10]))))
{
// LAAD BOODSCHAP 'GEEN (GELDIG) E-MAILADRES' IN
$empty_l[$mi] = TEXT_Ervmail;
$mi++;
}
//ALS 'EMAIL' NIET LEEG EN WEL GELDIG IS
elseif ($_POST['email'] != '')
{
// CONTROLEER OP REEDS BESTAANDE E-MAILADRES OF BIEDNUMMER
$query_cm = "SELECT * FROM custumer_id WHERE email = '".$_POST['email']."' AND bied_nr='0'";
$result = mysql_query($query_cm);
if ((mysql_num_rows($result) > 0) AND ((!isset($_SESSION['Costum_iD'])) OR (!isset($_SESSION['Admino_iD']))))
{
// ALS E-MAILADRES REEDS IN GEBRUIK IS
$empty_l[$mi] = TEXT_Erfmail;
}
}
}


// ALS E-MAILADRES IS GEACCEPTEERD
if (!isset($empty_l))
{
$li = 0;
while (isset($input[$li]))
{
// VERWIJDER HAKEN en QOUTES
$input[$li] = str_replace(array("<",">","'"),array('','','&rsquo;'), $input[$li]);
$li++;
}


// ALS ER EEN KLANTCODE OF ADMIN-ID BESTAAT
if ((isset($_SESSION['Costum_iD'])) OR (isset($_SESSION['Admino_iD'])))
{
if (isset($_SESSION['Costum_iD']))
{
// BESTAAT ER EEN KLANTCODE, LAADT DEZE DAN IN $edit_id
$edit_id = $_SESSION['Costum_iD'];
}
else
{
// BESTAAT ER EEN ADMIN-ID, LAADT DEZE DAN IN $edit_id
$edit_id = $_SESSION['Admino_iD'];
}



// ZET (OF UPDATE) KLANTDATA IN DATABASE
mysql_query("
UPDATE custumer_id
SET
gender= '".$input[1]."',
l_name = '".$input[2]."',
f_name = '".$input[3]."',
company = '".$input[4]."',
address_1 = '".$input[5]."',
address_2 = '".$input[6]."',
city = '".$input[7]."',
country = '".$input[8]."',
tel_nr = '".$input[9]."',
email = '".$input[10]."',
lang = '".$input[0]."',
letter= '".$_POST['letter']."'

WHERE id = '".$edit_id."'");

// $pers_mssg = "UW ACCOUNT IS BIJGWERKT!"
$pers_mssg = TEXT_updac;
}

// ALS ER NOG GEEN ACCOUNT BESTAAT
else
{
//Random namen
$Pass_w = array (
"Boek","Auteur","Schrijver","Incunabel","Letter","Parafrase","Paragraaf","Titel","Novelle","Accent",
"Citaat","Gedicht","Dichter","Manuscript","Illustratie","Biologie","Biografie","Monografie","Vondel",
"Cats","Archeologie","Bibliografie","Kaft","Boekbinding","Katern","Indonesia","Plato","Aristotelus",
"Medea","Oedipus","Odysseus","Voorplat","Preeg","Houtsnede","Calligrafie","Lithografie","Kopergravure",
"Narcissus","Achilles","Adonis","Antigone","Aphrodite","Argus","Ariadne","Artemis","Daedalus","Dionysus",
"Helios","Hermes","Hyperions","Icarus","Minotaur","Morpheus","Muze","Nimph","Orpheus","Penelope","Persephone",
"Pollux","Prometheus","Rhea","Phaedrus","Pytagoras","Ilias","Homeros","Plutarchus","Plato","Zeno","Vergilius",
"Cicero","Horatius","Ovidius","Perpetua","Euclides","Euripides","Sophocles","Epicures","Codex","Lexicon",
"Literatuur","Sonnet","Emblemata","ExLibris","Drukpers");
// "","","","","","","","","","","","","","","","","","","",
// "","","","","","","","","","","","","","","","","","","",

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// MAAK E-MAIL AAN
// $Shop = Naam van de shop
// $shop[0] = Letter 'A'??
// $result2 = Bericht ID
// $shop_mail[0] = "Welkom bij Amsterdam Book Auctions"
// $shop_mail[1] = "U heeft een account aangemaakt bij Amsterdam Book Auctions. U kunt nu inloggen...
$totaal = count ($Pass_w); // Aantal (wacht)woorden
$willekeur = mt_rand(1,$totaal-1); // Random volgnummer van wachtwoord binnen de lijst
$passw_num = mt_rand(10001,99999); // Random getal van 5 cijfers
$PassW_in = $Pass_w[$willekeur].$passw_num; // Aangemaakt wachtwoord
$direct_link = TEXT_dir_link; // 'Hieronder vindt u de link naar de loginpagina...
$casesens = TEXT_case_sens; // 'Uw wachtwoord is hoofdlettergevoelig...
$einde_mail = TEXT_maileinde; // Einde mail; Welkom op de website
$ondertitel = TEXT_ondertitel; // Veilingmeester
$login_link = 'http://www.amsterdambookauctions.com/index.php?page=login';; // Link naar loginpagina website
$query_sh = "SELECT shop_name, shop_owner, email FROM shop_info"; // query voor ophalen Shop ID
$result = mysql_query($query_sh); // Shop ID

if (mysql_num_rows($result) > 0)
{
while ($shop_inf = mysql_fetch_row($result))
{
$shop = $shop_inf[0];
$query_ma = "SELECT title_".$_SESSION['lang'].", mail_".$_SESSION['lang']."
FROM email_list
WHERE mail_sub = 'welcome'";
$result2 = mysql_query($query_ma);
if (mysql_num_rows($result2) > 0)
{
while ($shop_mail = mysql_fetch_row($result2))
{
$mail_cont = $shop_mail[1]."\n"
."Uw wachtwoord is:"."\n"
.$PassW_in."\n \n"
.$direct_link."\n"
.$login_link."\n \n"
.$einde_mail." \n \n"
.$shop_inf[1]."\n"
.$ondertitel
;

// $input[10] = geadresseerde
// $shop_mail[0] = Onderwerp e-mail
// $mail_cont = Inhoud e-mail
// $shop_inf[1] = Shopowner
// $shop_inf[2] = Afzender (FROM:)
// $login_link = link naar de login pagina

// VERZEND E-MAIL
mail(strtolower($input[10]), $shop_mail[0], $mail_cont, "From: ".$shop_inf[2]);

}
}
}
}

// SCHRIJF DE KLANTDATA NAAR DATABASE - .md5($PassW_in). is de hash encryptor die de password versleuteld.
// GETEST - '".strtolower($input[10])."', = OK
// GETEST - Namen databasevelden komen overeen = OK

mysql_query("INSERT INTO custumer_id
(
gender,
l_name,
f_name,
company,
address_1,
address_2,
city,
country,
tel_nr,
email,
lang,
pass_w,
time_cr,
last_visit,
letter)

VALUES
(
'".$input[1]."',
'".$input[2]."',
'".$input[3]."',
'".$input[4]."',
'".$input[5]."',
'".$input[6]."',
'".$input[7]."',
'".$input[8]."',
'".$input[9]."',
'".$input[10]."',
'".strtolower($input[10])."',
'".md5($PassW_in)."',
'".$now."',
'".$now."',
'".$_POST['letter']."')
");

// testblokje
//print ($input[1]);
//print ($input[2]);
//print ($input[3]);
//print ($input[4]);
//print ($input[5]);
//print ($input[6]);
//print ($input[7]);
//print ($input[8]);
//print ($input[9]);
//print ($input[10]);
//print ($input[0]);
print (custumer_id);
print (" - ");
print ($input[10]);
print (" - ");
print ($PassW_in);
print (" - ");
print (md5($PassW_in));

//$pers_mssg = Uw account is aangemaakt, open uw email...;
//$pers_mssg = TEXT_sucnwac;

}
}
?>



[/quote]

Reageren