Database / Sikker call-back / stramme regler for hent-ning af data
Hej
Vil høre om der er nogen der kender til at få en database til at være helt striks med data. jeg koder i php og mysql. Jeg oplever mit program ikke helt er heavy nok med regler til feks. et id som bliver generert. Jeg har været igang med at lave et kurv system mellem 3 domæner 2 alias til en primary domæne. Har fået det hele til at spille sammen, men men så ikke alligevel jeg oplever at se, det som en anden person har taget i kurven, det er en tabel i databasen styre det med et id. En cookie med det id til at skrifte side, hvor der kommer et id i url så, hvor der så oprettes det id på det andet alias. til coockie, så den hele tiden følger med. rundt på siderne.
Det lyder som om du kigger i den forkerte retning. Vi har i hvert fald ikke mulighed for at sige noget ud fra hvad du fortæller her.
Du kan ikke komme til at se noget fra en anden persons kurv fordi php eller mysql ikke er "strikse nok" med data. På en eller anden måde må du have sat et forkert id, lavet en id-generator der ikke er unik, eller skrevet noget kode der ikke tjekker for det korrekte. Og det kan vi ikke se.
Har lidt kode til lidt af det der gør at man kan se sin kurv fra flere alias: GUID genrator: mt_srand((double)microtime()*10000); $charid = strtoupper(md5(random_bytes(5))); $hyphen = chr(45);// "-" $uuid = substr($charid, 0, 8).$hyphen .substr($charid, 8, 4).$hyphen .substr($charid,12, 4).$hyphen .substr($charid,16, 4).$hyphen .substr($charid,20,12);
return $uuid;
Hentning af kurven igennem id: { global $wpdb; $table_name = $wpdb->prefix . "**********************"; $getShowData = $wpdb->get_results($wpdb->prepare("SELECT * FROM $table_name WHERE ip = %s ", $_COOKIE['guid'])); $getAllValues = array(); foreach ($getShowData as $data) { if ($data->ip == $_COOKIE['guid']) { foreach (WC()->cart->get_cart() as $getData => $value) { $getAllValues[] = $value['variation_id']; } $areThere = in_array($data->variation_id, $getAllValues);
if (!$areThere) { WC()->cart->add_to_cart($data->product_id, 1, $data->variation_id); } } } }
Din GUID er ikke unik nok, husk at alt hvad der kommer fra klienten kan fakes.
Så i stedet for bruge en cookie, så ville jeg nok vælge bare at bruge PHP sessions, og så kan du altid gøre det mere sikkert derfra.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.