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
7 svar · 811 visningar · startad av tilleritova
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
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);
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)?
Skapa en tabell för alla order och en tabell för alla orderrader, sen använder du autoincrement på ordertabellen helt enkelt.
Finns det någon rad så att den skickar ett mail till mig när jag har fått en beställning?
tack allihopa för hjälpen... det funkar bra nu...
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);