Sessie data komt bij mij wel door bij klant niet.

Pagina: 1
Acties:

Onderwerpen

Vraag


Acties:
  • 0 Henk 'm!

  • break-blade
  • Registratie: Juni 2011
  • Laatst online: 15-04 12:59
Mijn vraag
Ik ben voor een klant van mij bezig om omnikassa op zijn site te zetten.
Het omnikassa gedeelte werkt goed en de betalingen werken wel gewoon. Ik heb alleen het probleem dat ik geen orderdata van klanten in mijn database krijg. Ik doe dit door de data eerst in de database te drukken en vervolgens te verwijderen als de betaling bijvoorbeeld fout is gegaan. Het probleem waar ik tegen aan loop is dat als ik zelf een order plaats dit netjes in het systeem komt en bij de klant dit somehow niet wil lukken.

Wat ik zelf denk is dat dit komt doordat ik een session start uitgecomment heb. Dit heb ik de week erop opgelost maar de bestelling van vandaag is alsnog weer leeg aangekomen en mijn eigen willen weer wel.Heeft het misschien te maken dat de website korte tijd zonder deze session heeft gedraaid? Ik heb hier niet veel ervaring mee gehad tot nu toe.

Relevante software en hardware die ik gebruik
Hier zijn wat relevante stukjes code die ik hier heb gebruikt. Ik haal de data uit de session op zodat ik zowel de gebruiker id en de items uit het winkelmandje heb.
Met de for loop ga ik de artikelen door en voeg ik ze in de loop toe aan de orderregels tabel toe vervolgens voeg ik hier de verzendkosten aan ten zet ik ook de order zelf in de db.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
session_start();

$sOrderId = date("Y") . "." . $ordernummer;
$userid = $_SESSION['Zend_Auth']['storage'];
$userid = $userid->user_id;

$t=time();

$status = '1';

/* Tel het aantal artikelen wat in de winkel wagen zit */
$aantalartikelen = count($_SESSION['winkelwagen']);

$msg = "Er is iemand op start.php beland" ;
$msg .= "User id= " . $userid . " / order_id= " . $ordernummer ."/ ";

for ($i = 0; $i < $aantalartikelen; $i++){
$artikel = $_SESSION['winkelwagen'][$i]['article_id'];
$nummer = $_SESSION['winkelwagen'][$i]['number'];
$titel = $_SESSION['winkelwagen'][$i]['title'];
$aantal = $_SESSION['winkelwagen'][$i]['aantal'];
$artikelprijs = $_SESSION['winkelwagen'][$i]['price'];

//invoegen order regels voor mail systeem.
$msg .= "Dit is het " . $i . "e artikelnummer wat besteld is: " . $_SESSION['winkelwagen'][$i]['number'] ." aantal = " . $_SESSION['winkelwagen'][$i]['aantal'] . "/ ";

//query voor plaatsen order regels
mysqli_query($con,"INSERT INTO orders_regels (order_id, article_id, number, title, aantal, price, status_id) 
VALUES('" . $ordernummer . "', '" . $artikel . "', '" . $nummer . "', '". $titel ."', '" . $aantal . "', '" . $artikelprijs . "', '". $status ."')");
}
mysqli_query($con,"INSERT INTO orders_regels (order_id, article_id, number, title, aantal, price, status_id) 
VALUES('" . $ordernummer . "', ' 10000 ', ' V-1000 ', ' Verzendkosten ', ' 1 ', '7.00', '". $status ."')");

mysqli_query($con,"INSERT INTO orders (order_id,user_id, nr, datumtijd, payment_type, send_data_id) VALUES (" . $ordernummer . ", ". $userid .", " . $sOrderId . ", " . $t . ", 2, 0)");

mail ('------------@------.nl, "start.php benaderd", $msg);


Wat ik al gevonden of geprobeerd heb
Ik heb al gekeken of dit ligt aan de browser die gebruikt wordt heb alle varianten van zowel desktop en mobiele versies geprobeerd dit geeft geen problemen bij mij.
Ik heb een mail functie in het bestand toegevoegd dat mij de data stuurt voordat dit na de rabobank gaat. Hier krijg ik net als voorheen een gevulde mail als ik hem verstuur en als de klant dit doet gaat het weer fout.


Ik hoop dat jullie hier iets in kunnen zien ik zie er in elk geval niks in.

[ Voor 8% gewijzigd door RobIII op 26-01-2016 17:09 . Reden: list -> code tags ]

Alle reacties


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
offtopic:
Als je code post, gebruik dan code tags a.u.b. i.p.v. [list=1] tags :X

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • break-blade
  • Registratie: Juni 2011
  • Laatst online: 15-04 12:59
sorry eerste keer dat ik hier iets plaats :P

Acties:
  • 0 Henk 'm!

  • Douweegbertje
  • Registratie: Mei 2008
  • Laatst online: 20-09 20:54

Douweegbertje

Wat kinderachtig.. godverdomme

Je moet gaan debuggen.. Kijk in je error log wat er voorbij gekomen is.

Verder vang je totaal niets af, wellicht kun je eens een try / catch implementeren en deze naar je e-mailen met de fout.

Los van dat kan niemand echt iets met dit summiere stukje code, vooral niet als je niet weet wat de input is van de klant.
Daarbij mis ik zelf nog het stukje waar je $con gedefinieerd is, maar ik neem aan dat zoiets vast wel ergens staat.

Ik hoop in elk geval dat je de kwaliteit van je code nog eens gaat verbeteren, vooral als dit voor een echte klant is met een heuse webshop.

Acties:
  • 0 Henk 'm!

  • pedorus
  • Registratie: Januari 2008
  • Niet online
Ik mis een beetje de relevante code en situatie. Het is mogelijk dat sessies bij de klant niet werken, omdat deze geen cookies accepteert. Of dat jij ergens bent ingelogd waardoor $_SESSION['Zend_Auth']['storage']; bestaat, maar dat de klant dit niet doet. Waar $ordernummer vandaan komt is me sowieso niet duidelijk.

Wat wel duidelijk is, is dat dit nogal gevoelig is voor ongewenste sql injection, en dat je iets met parameterized queries zou moeten doen..

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


Acties:
  • +2 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
For the love of all that's holy gebruik alsjeblieft prepared statements voor je queries.

https://niels.nu

Pagina: 1