FAQ |
Kalender |
![]() |
#1 | ||
|
|||
Medlem
|
Hej!
Jag jobbar med en e-butik och har valt att lagra kundernas varukorgar i tilfälliga txt filer på min server och med hjälp av sessins hålla kolla på filen. Jag har stött på ett problem när jag ska ge kunderna möjlighet att ta bort en artikel ut varukorgen. För att lägga in information gör jag så här: Kod:
$filnamn = session_id() . ".txt"; $varudata = "namn=" . $n . ";pris=" . $p . ";id=" . $i . ";anta=" . $a .";artn=" . $t . ";*"; $filnamn = session_id() . ".txt"; $file = fopen($filnamn, "a"); fputs($file, $varudata); fclose($file); header('location:index.php'); Kod:
namn=Rockbruttan;pris=71.2;id=41;ant=1;*namn=Adde;pris=89;id=40;ant=1;*namn=testt;pris=34;id=39;anta=1;*namn=Adde;pris=89;id=40;anta=1;artn=;* Tack för din hjälp! |
||
![]() |
![]() |
![]() |
#2 | ||
|
|||
Medlem
|
Lägg ett kontrolltecken efter varje artikeldel ex | (stolpe), då kan du loopa genom raden med strtok()
Kod:
$rad = file_get_contents($filnamn); $nyrad = ''; $temp = strtok($rad, '|'); while($temp !== false) { if(varan ska vara kvar) { $nyrad .= $temp; } $temp = strtok('|'); } file_put_contents($filnamn, $nyrad); |
||
![]() |
![]() |
![]() |
#3 | |||
|
||||
Klarade millennium-buggen
|
Mitt språkoberoende tips: modifiera aldrig filen utan skriv om den helt och hållet varje gång.
|
|||
![]() |
![]() |
![]() |
#4 | ||
|
|||
Medlem
|
Varför inte spara varukorgen som en associativ array i sessionen istället?
T.ex.: array("produkt" => 12, "pris" => 199, "antal" => 1); |
||
![]() |
![]() |
![]() |
#5 | |||
|
||||
Mycket flitig postare
|
Antingen:
1. Splitta filen med explode('*'), ta bort array-elementet med produkten som inte är önskad och imploda den igen. 2. preg_replace:a bort (eller sätt antal till noll) den oönskade produkten För övrigt är det väl enklare att använda en databaslösning eller xml för detta - sqlite? Och titta på file_put_contents och file_get_contents som är både modernare, enklare och bättre än fopen, fput, etc. |
|||
![]() |
![]() |
![]() |
#6 | ||
|
|||
Medlem
|
Om du nu måste spara datan i en fil på servern skulle jag rekommenderat funktionerna serialize() och unserialize(). Läs mer på www.php.net
|
||
![]() |
![]() |
![]() |
#7 | ||
|
|||
Klarade millennium-buggen
|
Citat:
|
||
![]() |
![]() |
![]() |
#8 | |||
|
||||
Mycket flitig postare
|
Citat:
|
|||
![]() |
![]() |
![]() |
#9 | |||
|
||||
Mycket flitig postare
|
Citat:
|
|||
![]() |
![]() |
Svara |
|
|