webForumDet fria alternativet

Lägga variabler i en inkluderad php fil eller en databas?

PHP

12 svar · 536 visningar · startad av pakmannen

Medlem sedan dec. 2002227 inlägg
Frågan#1

Hej!

Håller på med en lite större sida, där jag behöver ha ett gäng "globala" variabler typ "$rowColor1=#FFFFFF;", "$rowColor2=#000000;" mm som skall kunna ändras via ett administrativt system och sedan då kommer att användas via alla mina sidor. Skall jag då lagra detta i en tabell i min databas (kommer ju bli jobbigt om jag hela tiden vill lägga till nya variabler) eller kan jag på något sätt inkludera en fil som heter något i stil med globals.php och sedan ändra direkt i denna filen via admin systemet? Hur gör man i så fall detta?

Hoppas ni förstår vad jag menar. :)

Medlem sedan juni 20006 031 inlägg
#2

Du har ju två alternativ.
1. Spara i databas
2. Spara i textfil

Vilket du väljer är ju helt upp till dig själv. Även om jag personligen skulle ha använt databas.

När du skriver till en fil så använder man fopen och fwrite.

Medlem sedan dec. 2002227 inlägg
#3

Okej, ska kolla upp fopen och fwrite. Men kan du ge en förklaring till varför du skulle använt en databas? Vad ger det för fördelar?

Medlem sedan maj 20012 237 inlägg
#4

pakmannen:

En fördel med en databas är att det är lättare att lagra data i en databas.
Sen är det enkelt att sortera och hämta bara valda delar.

En databas kan även indexera innehållet så att det blir snabbare att söka efter data.

Om du istället vill spara all data i en textfil så måste du antingen skapa ett eget system för lagring, läsning sökning osv osv. En databas (MySql t ex) har detta redan.

Du måste givetvis lära dig hur man skapar och arbetar med databaser.

Själv så skulle jag nog välja att arbeta med en databaser, än att pilla med text-filer.

Det finns säkert färdiga lösningar för att bearbeta data lagrad i text-filer.

Har du inte tillgång till en databas (SQL, access) så får du "nöja dig" med att lagra i text-filer.

Sökning av data från en databas är i större sammanhang effektivare om datan lagras i en databas.

EDIT: några stavfel

Medlem sedan juni 20015 009 inlägg
#5

Är det variablar kan man ju sparar de i en vanlig php-fil som man inkluderar som vanligt och på så sätt kommer åt de enkelt. Vill man sedan ändra i den filen går det att lösa med fopen/fwrite. Jag brukar lösa det så när det gäller variablar som ändras sällan (aldrig) men används ofta. :)

Medlem sedan dec. 2002227 inlägg
#6

Givetvis använder jag databaser till det mesta. Qimen beskriver ungefär det jag vill. Jag kan ge ett mer konkret exempel:

Gör en större webshop kan man säga, och vill att administratören skall kunna välja vilken valuta som skall skrivas ut. Alltså om det ska stå "SEK", "£" eller "$" tex. Detta bör ju då läggas i en variabel så jag kan skriva ut det varje gång jag ska skriva ut ett pris. Typ.

Medlem sedan aug. 20002 975 inlägg
#7

Personligen tycker jag inte det känns bra att ha PHP-filer som är skrivbara.

Är det endast enkla uppgifter du ska spara, så kan det vara värt att ta en titt på parse_ini_file.
Du får variablerna i en array, som sedan är lätt att ändra och med en loop spara till textfilen.

Medlem sedan juni 20015 009 inlägg
#8

Matte skrev:

Personligen tycker jag inte det känns bra att ha PHP-filer som är skrivbara.

Jag har funderat en del på det men har kommit fram till att det inte är så farligt sålänge man har filen utanför webbroten? Fast jag kanske har fel. :)

Medlem sedan dec. 2002227 inlägg
#9

Matte skrev:

Personligen tycker jag inte det känns bra att ha PHP-filer som är skrivbara.

Är det endast enkla uppgifter du ska spara, så kan det vara värt att ta en titt på parse_ini_file.
Du får variablerna i en array, som sedan är lätt att ändra och med en loop spara till textfilen.

Parse_ini verkar helt klart intressant. Den används bara för att läsa från en ini fil eller? Man skriver med fwrite?

Medlem sedan aug. 20002 975 inlägg
#10

Du kan skriva med fwrite om du sätter skrivrättigheter på filen. Det är bara en vanlig textfil.
Du får bara se till så att du ställer upp den i rätt format. Men det är det enkelt att skriva en funktion som fixar.

Dock har parse_ini_file en hel del begränsningar. Det blir bl.a. problem om du ska lagra citationstecken. Även några andra tecken kan ge problem, kommer dock inte nu ihåg vilka.

Men ska du lagra enkla värde så är parse_ini_file ett utmärkt alternativ.

Medlem sedan dec. 2002227 inlägg
#11

Följdfråga: Kan man sätta rättigheter på en fil med php, eller måste det göras via FTP:n?

D'oh, hittade chmod funktionen på php.net

Medlem sedan nov. 200413 inlägg
#12

Får följande meddelande när jag använder parse_ini_file:

Warning: parse_ini_file(): SAFE MODE Restriction in effect. The script whose uid is 37748 is not allowed to access /customers/tjoff.com/tjoff.com/httpd.www/ehandel/projekt owned by uid 0

Hittade något om safe_mode på php.net, men det verkar ligga i php.ini som jag inte tror jag kan ändra på. Kan man komma runt detta på något sätt?

Medlem sedan aug. 20002 975 inlägg
#13

Sätt CHMOD 666 på filen så du får skrivrättigheter.

Har själv tillämpat detta på sevrar med safe_mode, och det har aldrig varit några problem.

264 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)