WillY- Skrevet 9. august 2011 Skrevet 9. august 2011 I loginsiden min (login.php) oppretter jeg et objekt/instans med variabler som inneholder info om brukeren (firstname,lastname osv..) hentet fra DB-en. Og etter login redirecter jeg til en ny php side. Her ser jeg altså at jeg mister infoen i objektet. Er det sånn at man mister objektene når man bytter side?? Er eneste løsningen da å lagre det i SESSION(/cookies)? Er ikke så vandt til å programmere for web...
Tom_ Skrevet 9. august 2011 Skrevet 9. august 2011 Ja, bruk sessions, f.eks: session_start(); $_SESSION['user'] = $user; $_SESSION['pass'] = $pass;
Terrasque Skrevet 10. august 2011 Skrevet 10. august 2011 overgangen vanlig -> web er litt spesielt med det samme. Viktig å huske en ting. Hver side som vises er mer eller mindre som om man startet programmet, det genererer output, programmet avsluttes, og output blir sendt til klienten. For å skille på hvem som er hvem, så pleier man å sette en cookie i browseren, og lagre en session array lokalt som blir knyttet til en ID plassert i tidligere nevnt cookie. Uansett, det som er viktig å huske på er at programmet på serveren ikke ligger og kjører (i de fleste tilfeller), men blir startet for hver visning.
WillY- Skrevet 10. august 2011 Forfatter Skrevet 10. august 2011 Ah ok! Min SESSION nå er trøkka full av forskjellige variabler. Bør vel egentlig organisere det litt med arrays.. Da er det vel bare å bruke $_SESSION['arraynavn','variable'] for å få tilgang til en array i en array? (siden SESSION selv er en array..) Litt nysgjerrig på hva man gjorde før i php når man ikke hadde SESSION da Lagra alt i cookies liksom?
Terrasque Skrevet 10. august 2011 Skrevet 10. august 2011 Tja, tror PHP alltid har hatt en slags session. Før det så gjorde man ganske mye rart, egentlig Og cookies har ikke alltid vært standard. Ene løsningen var en session id variabel man hengte på i GET format på hver URL man lagde.. Og når det gjelder session, så er det veldig god ide å ha en struktur på den, ja
Gjest Skrevet 10. august 2011 Skrevet 10. august 2011 Hvorfor ikke bare hente ut info fra DB når du virkelig trenger det?
Terrasque Skrevet 10. august 2011 Skrevet 10. august 2011 Hvorfor ikke bare hente ut info fra DB når du virkelig trenger det? Flere grunner. Blant annet ytelse, ikke all data blir puttet i database, og men må tross alt lagre hvem brukeren er uansett..
TheClown Skrevet 11. august 2011 Skrevet 11. august 2011 Det er bedre for ytelsen å hente ut informasjon av db enn å lagre drøssevis av ting i sessions. Pleier vanligvis bare å ha brukerid, passord-hash og en unik sessionid lagret i sessions/cookies. Alt annet er totalt unødvendig og fører til mer herk enn fordeler. 2
WillY- Skrevet 11. august 2011 Forfatter Skrevet 11. august 2011 Ja er jo egentlig enig i det. Og man er sikker på å få det nyeste oppdaterte om det skulle vært gjort noen endringer i databasen. Men synes det er så mye enklere og bare assigne midlertidig ting til en variabel isteden for å måtte drive med queries, eller og måtte lage en funksjon for å håndtere det. Fikk nettopp et problem nå med iframes. Viser seg at iframen har sin egen session! Noen måter å la den bruke "parent" sida sin session..?
Gjest Skrevet 11. august 2011 Skrevet 11. august 2011 Ja er jo egentlig enig i det. Og man er sikker på å få det nyeste oppdaterte om det skulle vært gjort noen endringer i databasen. Men synes det er så mye enklere og bare assigne midlertidig ting til en variabel isteden for å måtte drive med queries, eller og måtte lage en funksjon for å håndtere det. Fikk nettopp et problem nå med iframes. Viser seg at iframen har sin egen session! Noen måter å la den bruke "parent" sida sin session..? Ikke bruk iframe Oo Hvis det er en lokal fil: http://www.w3schools.com/PHP/php_includes.asp
WillY- Skrevet 11. august 2011 Forfatter Skrevet 11. august 2011 Er det fy fy? Brukte det fordi jeg ville ha scrolling. Men tror jeg heller lager alt i en side (med php include) og bruker overflow:scroll i CSS istedet. Er bare litt synd og måtte gjøre om alt..(skal være klart til mandag)
Terrasque Skrevet 11. august 2011 Skrevet 11. august 2011 (endret) Det er bedre for ytelsen å hente ut informasjon av db enn å lagre drøssevis av ting i sessions. Pleier vanligvis bare å ha brukerid, passord-hash og en unik sessionid lagret i sessions/cookies. Alt annet er totalt unødvendig og fører til mer herk enn fordeler. Hah. Hah hah hah! Haheheheah! Muahahahahahhahahahahahha! Bwahahaheeehhehehehehohohoharrr! Right.. Database queries er det du forsøker å gjøre så lite som mulig av. Spesielt queries som spres over flere tabeller. Men, vel.. session implentasjonen i PHP er jo en smule hjernedød, så... Hvis man faktisk tenker på ytelse, er det ting a la memcache som gjelder. Edit : PHP Session + memcache Endret 11. august 2011 av Terrasque
Occi Skrevet 8. september 2011 Skrevet 8. september 2011 (endret) Ja er jo egentlig enig i det. Og man er sikker på å få det nyeste oppdaterte om det skulle vært gjort noen endringer i databasen. Men synes det er så mye enklere og bare assigne midlertidig ting til en variabel isteden for å måtte drive med queries, eller og måtte lage en funksjon for å håndtere det. Derfor du burde bruke classes og/eller functions og legge det i separate-filer. Da kan du f. eks lage noe slik noe: <?php public function getUserInfo($id) { // connect to db etc. // return an array } ?> Endret 8. september 2011 av Occi
WillY- Skrevet 8. september 2011 Forfatter Skrevet 8. september 2011 Ja har det nå. Fått litt mer erfaring siden sist Setter static på alle likså godt. Hva er poenget med objekter i PHP egentlig
Occi Skrevet 8. september 2011 Skrevet 8. september 2011 Greit nok å ha static i et slikt tilfelle ja. Definisjonen på når man bør/skal bruke static kan defineres som: Enhver metode som ikke bruker eller oppdaterer klassens instansvariabler, men får all den informasjonen den trenger gjennom parameterverdier, kan og skal settes opp (deklareres) som statisk. Objekter (av klasser) er nyttige (og bør alltid brukes) for å holde struktur når det er snakk om større prosjekter med mye kode. Når man f. eks har en nettside med innlogging, nyhetssystem, galleri, adminlogin etc. så blir det kaos om man ikke legger alt inn i klasser som definerer "kategorien" til hva funksjonene gjøre i stedet for å stappe alt inn i en functions.php. Og kanskje minst like viktig har det også noe med sikkerhet (skille kode) samt det er mange muligheter med variable som kan være felles for funksjoner etc. Om du har tenkt å lage store sider med mye PHP-kode så må du før eller siden lære deg hvordan klasser fungerer, og da vil du også forstå hvorfor det er så kjekt. Det finnes ingen gode argumenter mot bruk av klasser (såkalt Objekt Orientert Programmering (OOP)).
WillY- Skrevet 8. september 2011 Forfatter Skrevet 8. september 2011 Selvfølgelig deler jeg alt opp i klasser! Jeg tenkte på objekter. Ser ikke vitsen med å opprette det i PHP..
torbjørn marø Skrevet 8. september 2011 Skrevet 8. september 2011 Selvfølgelig deler jeg alt opp i klasser! Jeg tenkte på objekter. Ser ikke vitsen med å opprette det i PHP.. Det er hverken mer eller mindre vits å opprette objekter i PHP enn i noe som helst annet språk!
Occi Skrevet 8. september 2011 Skrevet 8. september 2011 Hæ...? En klasse er jo en mal for et objekt du oppretter av klassen. <?php public class Foo { public function bar() { // do something } } $foo = new Foo() // her er $foo et objekt av klassen Foo $foo->bar(); // kaller på funksjonen bar() i klassen Foo ?>
torbjørn marø Skrevet 8. september 2011 Skrevet 8. september 2011 Hæ...? En klasse er jo en mal for et objekt du oppretter av klassen. I noen språk skiller man mellom klasser og moduler. Da bruker man klasser som blueprints for objekter, og moduler for å samle sammen funksjoner o.l. I PHP antar jeg man ikke har slike moduler, og da bruker man statiske klasser med statiske metoder til dette formålet.
Occi Skrevet 8. september 2011 Skrevet 8. september 2011 Har ikke vært borti et språk med moduler (ikke at jeg har vært borti veldig mange språk i det hele tatt), men lurer på om ikke det kanskje er en del av MVC? Kan ikke noe særlig om dette temaet. Så ja, man bruker klasser for å holde styr på funksjoner, f. eks kan man ha en klasse kalt Admin som ikke egentlig trenger å være et objekt, men som inneholder en rekke funksjoner som kan kategoriseres som admin-funksjoner (f. eks ban bruker etc.).
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå