Tot nu toe was het mij gelukt om een simpel formulier op te slaan in een MYsql database.
Ik waag mij nu aan iets moeilijker. Het is een formulier verspreid over een 3 tal pagina's. Het uiteindelijke script om de gegevens weg te schrijven lijkt mij uitgevoerd te worden maar toch staat er niets in de database. Je kan een een ander eens uitproberen op www.telecomvanassche.be/formtevr.php.
Het uiteindelijke script om weg te schrijven is dit hier. Waar ga ik in de fout, ik ben al uren bezig met nonkel Google te teisteren.
Alvast bedankt als je mij mijn fouten kunt aantonen.

<?php
// open database

$username="xxxxxxxx";
$password="xxxxxxxx";
$database="xxxxxxxx";

mysql_connect("xxxxxxxxx.be.mysql",$username,$password);

@mysql_select_db($database) or die( "Unable to select database");




//let's start our session, so we have access to stored data
session_start();


//let's create the query
$insert_query = "insert into eva_tevr(
datum,
factnr,
email,
verkoper,
vriendwin,
uitleg,
crossel,
aanbod,
conform,
verkoop,
opm_winkel,
technieker,
vriendserv,
instserv,
afspraakserv,
uitlegserv,
crosselserv,
service,
opm_serv,
buralg,
bursnel,
buroplos,
admin,
opm_admin
) values (Default,
" . $_SESSION['datum'] . ",
" . $_SESSION['factnr'] . ",
" . $_SESSION['email'] . ",
" . $_SESSION['verkoper'] . ",
" . $_SESSION['vriendwin'] . ",
" . $_SESSION['uitleg'] . ",
" . $_SESSION['crossel'] . ",
" . $_SESSION['aanbod'] . ",
" . $_SESSION['conform'] . ",
" . $_SESSION['verkoop'] . ",
" . $_SESSION['opm_winkel'] . ",
" . $_SESSION['technieker'] . ",
" . $_SESSION['vriendserv'] . ",
" . $_SESSION['instserv'] . ",
" . $_SESSION['afspraakserv'] . ",
" . $_SESSION['uitlegserv'] . ",
" . $_SESSION['crosselserv'] . ",
" . $_SESSION['service'] . ",
" . $_SESSION['opm_serv'] . ",
" . $_POST['buralg'] . ",
" . $_POST['bursnel'] . ",
" . $_POST['buroplos'] . ",
" . $_POST['admin'] . ",
" . $_POST['opm_admin'] . "
)";

//let's run the query
mysql_query($insert_query);

//database sluiten
mysql_close();

# Redirect user to success page

header("Location: http://www.telecomvanassche.be/bedankttevr.html";);
?>
Als de error reporting aan staat moet je een melding krijgen over $sql_insert_query, want die bestaat niet.
En op lijn 10 is het ook niet handig om errors in die functie te onderdrukken met een @.
Prima. Nu weet ik dat de query empty is. Dus loopt het fout met dat session gedoe.
Ik begin met het beginformulier en met de knop verder (send) ga ik naar het volgende formulier waar ik begin met volgende PHP code (zie hieronder) en vervolgens naar het volgende formulier waar ik terug de laatst ingevulde variabelen weer toevoeg op dezelfde manier.
Daar loopt het vermoedelijk fout
op pagina formtevr1.php
<?php

// Stap 2 in formtevr1 let's start the session na de input van formtevr
session_start();

//now, let's register our session variables
session_register('datum');
session_register('factnr');
session_register('email');
session_register('verkoper');

//finally, let's store our posted values in the session variables
$_SESSION['datum'] = $_POST['datum'];
$_SESSION['factnr'] = $_POST['factnr'];
$_SESSION['email'] = $_POST['email'];
$_SESSION['verkoper'] = $_POST['verkoper'];

?>
als er een parse error optreedt (de php is gewoon fout en kan niet uitgevoerd worden), dan kan ook de error-reporting niet door php ingeschakeld worden.

Als php dan zo geinstalleerd is (in php.ini) dat errors niet getoond worden, dan mis je dus de melding "parse error on line X van file Y.php"

Zet dan in .htaccess de error reporting aan:

http://www.pfz.nl/wiki/troubleshooter/#stap-1-regel-een-foutmelding

[size=xsmall]Toevoeging op 19/01/2015 10:50:13:[/size]

als gij den middeleeuwschen ende verouderden functionaanroepen op den regelen 7 tot en met 10 een verwijderde ende weghaalde?

[size=xsmall]Toevoeging op 19/01/2015 10:51:43:[/size]

overigens :

$insert_query = "insert into eva_tevr(

en een stuk verderop voer je een query uit met:

mysql_query($sql_insert_query)

dat is dus niet die insert query....
Met je error reporting aan, zou je daar toch iets met undefined-var moeten krijgen....
De opmerkingen aangepast.
We komen vooruit.
Nu krijg ik de melding (waar ik niet goed aan uit geraak)
Error: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '@telenet.be,
Tashina,
0,
,
,
0,
0,
,
' at line 29
je query loopt in de soep bij de plek waar een emailadres staat.

Dat zal in het stuk VALUES (.....) zijn.

Ik gok dat dit ligt aan het massaal ontbreken van '' rond je values.


Vermoedelijk kan mysql van datum en factuurnummer getallen maken, maar niet van het emailadres.
Ivo P op 19/01/2015 11:30:45

je query loopt in de soep bij de plek waar een emailadres staat.

Dat zal in het stuk VALUES (.....) zijn.

Ik gok dat dit ligt aan het massaal ontbreken van '' rond je values.


Vermoedelijk kan mysql van datum en factuurnummer getallen maken, maar niet van het emailadres.


Ik zie wel een heleboel van dit" staan. Ik begrijp niet goed wat je bedoelt. Ik had al eens een kort testje gedaan met een andere tabel en datum en zo dat kwam er wel goed in.
values (
" . $_SESSION['datum'] . ",
" . $_SESSION['factnr'] . ",
" . $_SESSION['email'] . ",
" . $_SESSION['verkoper'] . ",
" . $_SESSION['vriendwin'] . ",
" . $_SESSION['uitleg'] . ",
" . $_SESSION['crossel'] . ",
" . $_SESSION['aanbod'] . ",
" . $_SESSION['conform'] . ",
" . $_SESSION['verkoop'] . ",
" . $_SESSION['opm_winkel'] . ",
" . $_SESSION['technieker'] . ",
" . $_SESSION['vriendserv'] . ",
" . $_SESSION['instserv'] . ",
" . $_SESSION['afspraakserv'] . ",
" . $_SESSION['uitlegserv'] . ",
" . $_SESSION['crosselserv'] . ",
" . $_SESSION['service'] . ",
" . $_SESSION['opm_serv'] . ",
" . $_POST['buralg'] . ",
" . $_POST['bursnel'] . ",
" . $_POST['buroplos'] . ",
" . $_POST['admin'] . ",
" . $_POST['opm_admin'] . "
)";

[size=xsmall]Toevoeging op 19/01/2015 11:53:23:[/size]

Sorry,
nu even Time out want ik moet gaan werken. Ik zal vermoedelijk maar woensdagavond verder kunnen "prutsen en proberen". Deze avond en morgenavond andere problemen gaan oplossen bij mensen.
Maak van al die regels eens dit:

'".mysql_real_escape_string($var_die_je_hebt)."'
je zou de query zien, als je die meegaf aan de foutmeldingsfunctie:

echo showSQLError($sql_insert_user,mysql_error(),'Fout bij het invoegen van de gebruiker.');

daar introduceer jij een nieuwe var $sql_insert_user.

geef daar eens als eerste parameter de query mee.

(En zet je error reporting hoog, E_ALL, want op deze manier blijf je zoeken naar voor dat hand liggende fouten)
Is de syntax zo: '" . mysql_real_escape_string $_SESSION['datum'] . "',
of zo '" . mysql_real_escape_string ($_SESSION['datum']) . "', met haakjes vooraleer ik alles verander.

Alvast bedankt

Reageren