Thomas. Skrevet 24. januar 2009 Del Skrevet 24. januar 2009 (endret) Hei, har litt problemer ;p Jeg får resultat TRUE uansett hva jeg skriver/ikke skrive noe i feltene i formen. class Reg { public $user; public $pass; public $email; public $tos; public function error($value) { print '' . $value . ''; return false; } public function __construct () { $this -> user = quote_smart ( $_POST['bruker31'] ); $this -> pass = createRandomPassword(); $this -> email = quote_smart ( $_POST['email'] ); $this -> tos = quote_smart ( $_POST['tos'] ); if(!$this -> user || !$this -> email || !$this -> tos) {return false;} else {return true;} } public function user_check ($user) { $check = $dbh -> prepare("SELECT * FROM brukere WHERE nick = ? LIMIT 1"); if($check->execute(array($user))) return true; else return false; } } /* registrere seg */ if(isset($_POST['registrer'])) { $r = new Reg(); if($r == true) { echo "true"; } else { echo "false"; } } Endret 24. januar 2009 av php_user Lenke til kommentar
Jonas Skrevet 24. januar 2009 Del Skrevet 24. januar 2009 (endret) Når du setter $r til et nytt objekt, så inneholder $r det objektet, og ikke returverdien fra __construct(). Endret 24. januar 2009 av Jonas Lenke til kommentar
Thomas. Skrevet 24. januar 2009 Forfatter Del Skrevet 24. januar 2009 Når du setter $r til et nytt objekt, så inneholder $r det objektet, og ikke returverdien fra __construct(). Hvordan kan få den? Lenke til kommentar
Jonas Skrevet 24. januar 2009 Del Skrevet 24. januar 2009 (endret) Det er ikke meningen at du skal ha noe returverdi fra __construct(). Du prøver rett og slett å bruke objektorientering helt feil. Endret 24. januar 2009 av Jonas Lenke til kommentar
Thomas. Skrevet 24. januar 2009 Forfatter Del Skrevet 24. januar 2009 Du prøver rett og slett å bruke objektorientering helt feil. Kan du forklare hva jeg gjør feil da? Lenke til kommentar
Jonas Skrevet 24. januar 2009 Del Skrevet 24. januar 2009 Kan du forklare hva jeg gjør feil da? Det er skrevet et tonn med bøker om dette, så det skal nok et mirakel til før jeg bare kan forklare deg det med et par paragrafer her. Hovedproblemet ditt nå er nok at du skriver en klasse for hver spesifikke oppgave du gjør. Reg-klassen kan ikke brukes til noe som helst annet, og dessuten så har du egentlig bare flyttet funksjoner og metoder inn i et klasse-scope. Virker ikke helt som om du forstår hvorfor/hvordan du skal programmere objektorientert eller hvilken nytteverdi det gir, og da har du ikke kommet noe særlig lenger. Foreslår at du leser litt mer og ser på eksempler på objektorienterte løsninger. http://en.wikipedia.org/wiki/Object-oriented_programming http://en.wikipedia.org/wiki/Separation_of_concerns PS. Du tar ingen steg fremover i læringsprosessen dersom du prøver å blande noe objektorientert kode i det du skriver nå. Programstrukturen er fortsatt dårlig og hvis du noen gang ønsker å nærme deg mafiadrømmen må du i det minste bruke et velkjent og testet design pattern. http://en.wikipedia.org/wiki/Design_patter...mputer_science) http://en.wikipedia.org/wiki/Model-view-controller#PHP http://www.onlamp.com/pub/a/php/2005/09/15/mvc_intro.html Lenke til kommentar
Thomas. Skrevet 24. januar 2009 Forfatter Del Skrevet 24. januar 2009 Takk for svar! Men lurer på noe ang. dette: Når du setter $r til et nytt objekt, så inneholder $r det objektet, og ikke returverdien fra __construct(). Utføres __construct når jeg kaller på klassen? Lenke til kommentar
Jonas Skrevet 24. januar 2009 Del Skrevet 24. januar 2009 Construct kalles automatisk når du oppretter en instans av objektet. $foo = new Bar (); Lenke til kommentar
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å