Avatar billede systemx Nybegynder
22. september 2005 - 09:26 Der er 9 kommentarer og
1 løsning

Hjælp til Class i PHP 5

Hey,

Har et problem med følgende kode.. Hvad gør jeg forkert?

<?php

class login {

  /* construct */
  function __construct($username,$password) {
      $this->username = $username;
      $this->password = $password;
      }

  /* check login */
  function loginCheck() {
      /* query */
      $query = "SELECT * FROM login WHERE username='$this->username' AND
password='$this->password'";

  return $query;
  }
}

?>

Koden har ikke nogen funktion endnu, ved det, men er fordi jeg er ved at debugge det men sidder fast.

$this->username og $this->password har ikke nogen værdi på trods af at jeg laver et nyt objekt sådan her :

$a = new login("brugernavntest","passwordtest");

Og når jeg printer querien:

print $a->loginCheck();

viser den bare: "SELECT * FROM login WHERE username='' AND password=''", tom :/

hvad gør jeg lige forkert? 300 point
Avatar billede drbean Nybegynder
22. september 2005 - 09:56 #1
Du skal definere dine variabler først:

<?php

class login {
private $username;
private $password;
  /* construct */
  function __construct($username,$password) {
      $this->username = $username;
      $this->password = $password;
      }

  /* check login */
  function loginCheck() {
      /* query */
      $query = "SELECT * FROM login WHERE username='$this->username' AND
password='$this->password'";

  return $query;
  }
}

?>
Avatar billede coderdk Praktikant
22. september 2005 - 10:07 #2
Den gør jo nøjagtigt hvad du beder den om... Vil du have mere logik?

<?php

class login {
  private $username;
  private $password;
  /* construct */
  function __construct($username,$password) {
      $this->username = $username;
      $this->password = $password;
      }

  /* check login */
  function loginCheck() {
      /* query */
      $query = "SELECT * FROM login WHERE username='$this->username' AND
password='$this->password'";
      // Connect til databasen med mysql_connect
      // Vælg database med mysql_select_db
      $qh = mysql_query( $query ) or die( mysql_error() );
      $row = false;
      if ( mysql_num_rows( $qh ) > 0 )
      {
        $row = mysql_fetch_assoc( $qh );
      }
      return $row;
  }
}

?>
Avatar billede drbean Nybegynder
22. september 2005 - 10:11 #3
Tror bare han vil have sin query lavet af klassen. Han returnere jo queryen.
Avatar billede coderdk Praktikant
22. september 2005 - 10:19 #4
Ja, men han brokker sig over at den bare skriver SQL ud :-D
Avatar billede drbean Nybegynder
22. september 2005 - 10:21 #5
Det er rigtigt, men han skriver jo også selv at det er det han gør:


Og når jeg printer querien:

print $a->loginCheck();

viser den bare: "SELECT * FROM login WHERE username='' AND password=''", tom :/


Password og username bliver ikke sat, da de ikke er definere i klassen, og derfor kun kan bruges i selve funktionen ;-)
Avatar billede coderdk Praktikant
22. september 2005 - 10:34 #6
Det er selvfølgelig rigtigt :-D

Hvis det skal være pænt, burde der desuden stå:

public function loginCheck() {
Avatar billede systemx Nybegynder
22. september 2005 - 11:50 #7
hvor brokker jeg mig over den skriver SQL ud ? klassen er slet ikke færdig endnu ville bare ikke kode det hele færdigt nu da jeg ikke kunne komme videre..

lav et svar så jeg kan komme af med de point
Avatar billede drbean Nybegynder
22. september 2005 - 12:11 #8
Bare behold pointene


Kan være coderdk vil ha nogen
Avatar billede coderdk Praktikant
22. september 2005 - 12:21 #9
Nææh tak :)
Avatar billede systemx Nybegynder
22. september 2005 - 12:23 #10
fuck it så giver jeg dem sku til mig selv!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

Capgemini Danmark A/S

Java Engineer

Fælles AI

AI Lead

Capgemini Danmark A/S

AI/Data Engineer

Capgemini Danmark A/S

Head of Digital Trust & Security