webForumDet fria alternativet

Ordernummer

7 svar · 811 visningar · startad av tilleritova

tilleritovaMedlem sedan okt. 2005167 inlägg
#1

Hej.

Jag håller på med en Enkel Webshop som bygger på textfiler.
Man fyller i ett Formulär som skriver till en .txt-fil.

Jag vill ha ett ordernummer som ökar med 1 varje gång någon fyller i formuläret... kan någon hjälpa mig med det?

Tack

SpinxMedlem sedan nov. 200323 inlägg
#2

Skapa en separat textfil som håller koll på aktuellt ordernr om du inte kan använda dig av en mysql databas.

$filename = "c:\\Inetpub\\wwwroot\\ordernr.txt";
$handle = fopen($filename, "a+");
rewind($handle);
$ordernr = fgets($handle);
if(!is_numeric($ordernr)) $ordernr = 0;
fclose($handle);
$ordernr++;

$handle = fopen($filename, "w");
fwrite($handle, $ordernr);
fclose($handle);
oskarsMedlem sedan nov. 20051 263 inlägg
#3

Spinx skrev:

Skapa en separat textfil som håller koll på aktuellt ordernr om du inte kan använda dig av en mysql databas.

$filename = "c:\\Inetpub\\wwwroot\\ordernr.txt";
$handle = fopen($filename, "a+");
rewind($handle);
$ordernr = fgets($handle);
if(!is_numeric($ordernr)) $ordernr = 0;
fclose($handle);
$ordernr++;

$handle = fopen($filename, "w");
fwrite($handle, $ordernr);
fclose($handle);

Hur skulle man gjort om man kör MySQL (som jag gör)?

SpinxMedlem sedan nov. 200323 inlägg
#4

Skapa en tabell för alla order och en tabell för alla orderrader, sen använder du autoincrement på ordertabellen helt enkelt.

tilleritovaMedlem sedan okt. 2005167 inlägg
#5

Finns det någon rad så att den skickar ett mail till mig när jag har fått en beställning?

@ndersMedlem sedan juni 200026 914 inlägg
tilleritovaMedlem sedan okt. 2005167 inlägg
#7

tack allihopa för hjälpen... det funkar bra nu...

The_HulkMedlem sedan juni 20031 937 inlägg
#8

För att göra ditt skript säkrare bör du även låsa filen så ingen annan kan ändra den medan du läser och uppdaterar ordernummret.
kolla mer på flock http://se.php.net/manual/sv/function.flock.php

har inte testat skriptet utan endast försökt modifiera det så att den ska låsa filen.

$filename = "c:\\Inetpub\\wwwroot\\ordernr.txt";
$handle = fopen($filename, "a+");

if (flock($handle, LOCK_EX))  // do an exclusive lock
{
  rewind($handle);
  $ordernr = fgets($handle);
  if(!is_numeric($ordernr)) $ordernr = 0;
  $ordernr++;
  rewind($handle);
  fwrite($handle, $ordernr);
  flock($handle, LOCK_UN); // release the lock
}
else
{
   echo "Couldn't lock the file !";
}

fclose($handle);
Genererad på 381 ms · cache AV · v20260730165559-full.f96bc7eb