| 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! |
||
|
|
Svara med citat
|
|
|
#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);
|
||
|
|
Svara med citat
|
|
|
#3 | |||
|
||||
|
Klarade millennium-buggen
|
Mitt språkoberoende tips: modifiera aldrig filen utan skriv om den helt och hållet varje gång.
|
|||
|
|
Svara med citat
|
|
|
#4 | ||
|
|||
|
Medlem
|
Varför inte spara varukorgen som en associativ array i sessionen istället?
T.ex.: array("produkt" => 12, "pris" => 199, "antal" => 1); |
||
|
|
Svara med citat
|
|
|
#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. |
|||
|
|
Svara med citat
|
|
|
#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
|
||
|
|
Svara med citat
|
|
|
#7 | ||
|
|||
|
Klarade millennium-buggen
|
Citat:
|
||
|
|
Svara med citat
|
|
|
#8 | |||
|
||||
|
Mycket flitig postare
|
Citat:
|
|||
|
|
Svara med citat
|
|
|
#9 | |||
|
||||
|
Mycket flitig postare
|
Citat:
|
|||
|
|
Svara med citat
|
| Svara |
|
|