WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   COOKIE i php (https://www.wn.se/forum/showthread.php?t=1044816)

habbcraw 2010-11-13 11:59

COOKIE i php
 
Hej, vet någon hur/om man kan lägga till en rad i en cookie på något sätt?
Ska använda cookie istället för att lagra en massa filer på servern.

emilv 2010-11-13 12:25

Du lagrar saker i kakor med hjälp av funktionen setcookie. Vill du "lägga till en rad" ska du således hämta ut värdet ur $_COOKIE, lägga till raden och sedan spara värdet med hjälp av setcookie.

Observera att det sparade värdet dyker upp i $_COOKIE först vid nästa sidvisning. Tänk också på att det finns en gräns på hur många och hur stora kakor du kan spara. Gränsen kan skilja sig mellan olika webbläsare, men bäst är att hålla sig till de gränser som definieras i RFC 2109 (detta är alltså vad webbläsare minst ska klara av att hantera):

Citat:

* at least 4096 bytes per cookie (as measured by the size of the
characters that comprise the cookie non-terminal in the syntax
description of the Set-Cookie header)

* at least 20 cookies per unique host or domain name

qm-alexander 2010-11-13 12:29

Hej.

Nu får du nog förklara lite bättre.
Som du förklarar nu så vill du inte ha en massa filer och ska då använda cookie?

En fil på din server är på din server medans en cookie ligger på din klients dator.


Här har du koden för en cookie i php:
bool setcookie
( string $name
[, string $value
[, int $expire = 0
[, string$path
[, string $domain
[, bool $secure = false
[, bool $httponly = false
]]]]]] )

T.ex. setcookie("test","jag gillar att testa");

För att hämta: $_COOKIE["test"];

Hoppas detta hjälper :)

habbcraw 2010-11-13 12:38

Jag har en masssa txt filer på servern med info från användare och vill spara i cookies istället men det kan bli krångligt att inte använda fopen och så.

emilv 2010-11-13 13:37

Finns det någon särskild anledning till att du valt att spara det i textfiler istället för i en SQL-databas?

habbcraw 2010-11-13 13:44

Ja det finns en anledning, nu vill jag inte gå in på annat.

tartareandesire 2010-11-13 14:02

Citat:

Ursprungligen postat av habbcraw (Inlägg 20377894)
Ja det finns en anledning, nu vill jag inte gå in på annat.

Anledningen till att han frågade var för att det är svårt att ge vettiga råd om man inte vet varför du valt det ena eller andra sättet.

Föreslår att du läser dokumentationen (om du kör PHP):
http://php.net/manual/en/function.setcookie.php

Clarence 2010-11-13 16:47

Citat:

Ursprungligen postat av habbcraw (Inlägg 20377894)
Ja det finns en anledning, nu vill jag inte gå in på annat.

Cookies kan du inte effektivt använda på sättet som du vill utan rejäla begränsningar. Vill du inte "gå in på annat" tror jag ingen kan hjälpa dig då du inte kan välja lösning innan du vet huruvida den passar för ditt problem.

1.) Beskriv problemet.
2.) Be om hjälp med hur du tänkt lösa problemet.
3.) Var öppen för att din lösning du ber om hjälp med kanske inte är rätt väg att gå ändå.

habbcraw 2010-11-13 16:52

Ok, om ni har andra bättre tips får ni gärna ta upp dem.

Clarence 2010-11-13 16:57

Citat:

Ursprungligen postat av habbcraw (Inlägg 20377915)
Ok, om ni har andra bättre tips får ni gärna ta upp dem.

Om inte problemet beskrivs kan ingen ge ett bildat förslag på lösning.

Varför vill du slippa att ha filerna på servern?
Varifrån kommer dom?
Varför lagras dom?
Hur används dom?

habbcraw 2010-11-13 17:01

Jag vill slippa dem för att det blir mer och mer filer. De skapas när en sorts uppladdning sker. De lagras för att man ska kunna se uppladdningar och ta bort.

qson 2010-11-13 17:06

Citat:

Ursprungligen postat av habbcraw (Inlägg 20377920)
Jag vill slippa dem för att det blir mer och mer filer. De skapas när en sorts uppladdning sker. De lagras för att man ska kunna se uppladdningar och ta bort.

Tänk på att cookies kan raderas när som helst av användaren (t.ex. när han byter dator/webbläsare) eller t.o.m. när han stänger webbläsaren.

Clarence 2010-11-13 17:18

Citat:

Ursprungligen postat av habbcraw (Inlägg 20377920)
Jag vill slippa dem för att det blir mer och mer filer. De skapas när en sorts uppladdning sker. De lagras för att man ska kunna se uppladdningar och ta bort.

Då låter det som om det enklaste vore att lagra metadata om uppladdningarna i en databas, men det ville du inte ens gå in på varför du inte villa göra. Ska det till möjlighet för användarna att ta bort endast sina egna uppladdningar är det också ett måste att skapa någon form av användarsystem för det. Cookies i sig är absolut inte pålitligt för det bl a av qsons anledningar.

Dennis Holm 2010-11-13 17:19

habby.
sigh..
Jag borde inte göra detta då du uppenbarligen inte vill lära dig av andra utan vill bli upplärd och få det serverad på ett fat.
MEN

ta bort IP, ta bort COOKIE från dina planer.
De är inte stabila och långsiktiga lösningar för att kontrollera vem som äger vilka bilder.

Alla bilder har en plats i databasen på något vis antar jag?
lägg till en variabel som heter "password".
Sedan gör du om din formulär för att lägga upp bilder.
Där lägger du till en enda sak.
en ruta för ett lösenord (password i databasen)
Sedan så gör du om funktionen för att ta bort filer med att man behöver ange den bildens lösenord.

På så vis så finns det ett lösenord för varje bild.
Och du får en långvarig lösning som inte kräver full registrering för att lägga till/ta bort bilder.

Du har lite att lära och att göra för din site men lycka till.
Kräv aldrig något.. och ta ALLTID till dig vad andra säger.. hur fel och dåliga de än må vara.
Ta till sig betyder inte att man håller med ;). bara att man lyssnar och funderar på det.

studiox 2010-11-13 17:28

Citat:

Ursprungligen postat av habbcraw (Inlägg 20377877)
Hej, vet någon hur/om man kan lägga till en rad i en cookie på något sätt?
Ska använda cookie istället för att lagra en massa filer på servern.

Cookies är inte lösningen. Att skräpa ner en användares browser med cookies bara för du inte kan lagra det lokalt är faktiskt en otroligt korkad idé (lika bra att vara ärlig)

En cookie har ALDRIG syftet att lagra data, utan bara REFERENSER TILL DATA. Det är till för att du ska veta att browsern är samma browser som besökte dig tidigare.

Kakor använder man för att lagra exempelvis ett unikt id som du sen på SERVERN kan översätta till vad du vill, en användare, en inställning, statistik osv.

Den informationen ska aldrig direkt lagras i en browser.

Rekommenderar dig, precis som alla andra här att plugga på lite om kakor, exempelvis här: http://sv.wikipedia.org/wiki/Cookies

habbcraw 2010-11-13 17:31

Tack mervind! Du fick mig och tänka på andra sätt! Kan berätta via pm vad jag gjorde. Dock inte klar på sidan exprimenterar lite :D

Lås tråd den är löst.

oloflolof 2010-11-13 21:03

Nu kanske detta inte var den bästa tråden men är det så omöjligt att posta lösningen i forumet så att andra med samma problem kan vända sig hit!? Är ju inte förstå gången det händer precis...


Alla tider är GMT +2. Klockan är nu 09:38.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson