Ga naar inhoud
Log in om dit te volgen  
nielsba

Wat heb jij vandaag geprogrammeerd? 2.0

Aanbevolen berichten

Voor Treinenweb eindelijk de real-time-treinlocaties afgemaakt. het is en blijft nog even béta, maar van het weekend moet het online komen smiley.

Tevens heb ik gewerkt aan mijn nieuwe actuele vertrektijden-systeem met fallback.

Deel dit bericht


Link naar bericht
Delen op andere sites
Kitnkiller (link):
Alemaalte (link):
Kitnkiller (link):
Klik om eerdere quotes te tonen


Als ik op de "Join Game" button klik gebeurd er niets.


Das vreemd. Welke broweser?


Chrome


Kan je even in de console (f12 of ctrl-shift-i) of er een error is?

Deel dit bericht


Link naar bericht
Delen op andere sites
Alemaalte (link):
Kitnkiller (link):
Alemaalte (link):
Klik om eerdere quotes te tonen


Das vreemd. Welke broweser?


Chrome


Kan je even in de console (f12 of ctrl-shift-i) of er een error is?


Had overlaatst nog eens geprobeerd en toen werkte het wel (kon zijn door slechte internetverbinding, was op vakantie).

Nu werkt die ook gewoon, alleen snap ik niet hoe het werkt. Ik kan pijltjes schieten en rondlopen maar ik zie het doel van het spel niet in.

Deel dit bericht


Link naar bericht
Delen op andere sites
Kitnkiller (link):
Alemaalte (link):
Kitnkiller (link):
Klik om eerdere quotes te tonen


Chrome


Kan je even in de console (f12 of ctrl-shift-i) of er een error is?


Had overlaatst nog eens geprobeerd en toen werkte het wel (kon zijn door slechte internetverbinding, was op vakantie).

Nu werkt die ook gewoon, alleen snap ik niet hoe het werkt. Ik kan pijltjes schieten en rondlopen maar ik zie het doel van het spel niet in.


Je moet het kasteel aan de andere kant kapot maken door er met minions en/of jezelf op te staan.

Deel dit bericht


Link naar bericht
Delen op andere sites
Codeblok:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php
/*==========/
    One2xs Post API
/==========*/


namespace One2xs;

final class Post extends Auth {
  public function __construct($config = array()) {
    if(count($config) == 0 || !isset($config["loginDetails"]["username"])
                           || !
isset($config["loginDetails"]["password"])
                           || !
isset($config["postsInfo"])) {
      throw new Exception("Config not valid");
      return;
    }


    if(Auth::login($config["loginDetails"]["username"],
                   $config["loginDetails"]["password"]) === false) {
      throw new Exception("Failed to login");
      return;
    }


    $this->config = $config;
  }


  public function execute() {
    /*foreach($this->config["postsInfo"] as $post) {
      var_dump($post);
    }*/

    Request::request(array(
        CURLOPT_URL         => "http://www.one2xs.com/includes/ajaxfuncties.php",
        CURLOPT_POST        => true,
        CURLOPT_POSTFIELDS  => http_build_query(array(
              "s"             => 20,
              "t"             => 59021,
              "b"             => "hoi",
              "p"             => 109,
              "c"             => $this->csrfToken,
              "dubbelpost"    => false,
              "ding"          => false
          ))
    ));
  }


  public function __destruct() {
    Auth::logout();
  }

}

Deel dit bericht


Link naar bericht
Delen op andere sites
Raoul (link):
Post extends Auth

^ dat klinkt niet correct


ja naja...

$auth = new Auth();

Dan maar dit werkt ook prima.

Deel dit bericht


Link naar bericht
Delen op andere sites
Dylan (link):
Raoul (link):
Post extends Auth

^ dat klinkt niet correct


ja naja...

$auth = new Auth();

Dan maar dit werkt ook prima.


Heh. Je gebruikt die Auth class toch statisch? Waar heb je die [c]$auth[/c] dan voor nodig?

Deel dit bericht


Link naar bericht
Delen op andere sites
Sjoerd (link):
Dylan (link):
Raoul (link):
Post extends Auth

^ dat klinkt niet correct


ja naja...

$auth = new Auth();

Dan maar dit werkt ook prima.


Heh. Je gebruikt die Auth class toch statisch? Waar heb je die [c]$auth[/c] dan voor nodig?


Auth is niet static


toevoeging op 20 juli 2015, 20:59:33:
Het is samen 1 object zeg maar (de functies in Auth zijn wel protected)

Weet niet of dit totaal verkeerd is maar ik zie het probleem niet.


toevoeging op 20 juli 2015, 21:07:06:
Codeblok:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?php
/*==========/
    One2xs Auth
/==========*/


namespace One2xs;

abstract class Auth extends Request {

  protected $csrfToken = "";
  protected function login($username, $password) {
    if(strlen($username) == 0 || strlen($password) == 0) {
      throw new Exception("Username and/or password is invalid.");
      return;
    }


    $request = Request::request(array(
      CURLOPT_URL             => "http://www.one2xs.com/login.php",
      CURLOPT_POST            => true,
      CURLOPT_POSTFIELDS      => http_build_query(array(
            "gebruikersnaam"    => $username,
            "wachtwoord"        => $password
      ))
    ));


    if( (boolean) preg_match("/Je bent ingelogd als ". $username ."/", $request) === true) {
      preg_match(/<a href="http://www.one2xs.com/loguit?c=(.+)" title="Uitloggen">Uitloggen</a>/, $request, $token);
      $this->csrfToken = $token[1];

      return true;
    }


    return false;
  }


  protected function logout() {
    $request = Request::request(array(
      CURLOPT_URL => "http://www.one2xs.com/loguit?c=" . $this->csrfToken
    ));
  }
}

Deel dit bericht


Link naar bericht
Delen op andere sites
Gast
je dient de auth class te injecteren (niet de extenden) in de post class.

ook, Post dient PostRequest te heten.

zoiets:
Codeblok:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
  $auth
= new Authentication(Raoul, Hoi);

  try {
    $auth->login();
  }
catch (AuthException $e) {
    echo Kon niet aanmelden!;
  }


  $postRequest = new PostRequest($auth);
  $post = $postRequest->execute();

  // $post->getUser()
  // $post->getMessage()


  $auth->logout();
?>


en zo zie je, door dependency injection te gebruiken wordt je hele systeem 10x netter.

Deel dit bericht


Link naar bericht
Delen op andere sites
X
Raoul (link):
je dient de auth class te injecteren (niet de extenden) in de post class.

ook, Post dient PostRequest te heten.

zoiets:
Codeblok:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
  $auth
= new Authentication(Raoul, Hoi);

  try {
    $auth->login();
  }
catch (AuthException $e) {
    echo Kon niet aanmelden!;
  }


  $postRequest = new PostRequest($auth);
  $post = $postRequest->execute();

  // $post->getUser()
  // $post->getMessage()


  $auth->logout();
?>


en zo zie je, door dependency injection te gebruiken wordt je hele systeem 10x netter.


Zo dan..

Codeblok (voorbeeld.php):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<?php
/*==========/
    One2xs Auth
/==========*/


namespace One2xs;

class Auth {

  public $csrfToken = "";
  public function login($username, $password) {
    if(strlen($username) == 0 || strlen($password) == 0) {
      throw new Exception("Username and/or password is invalid.");
      return;
    }

    $this->request = new Request();

    $login = $this->request->post(array(
      CURLOPT_URL             => "http://www.one2xs.com/login.php",
      CURLOPT_POST            => true,
      CURLOPT_POSTFIELDS      => http_build_query(array(
            "gebruikersnaam"    => $username,
            "wachtwoord"        => $password
      ))
    ));


    if( (boolean) preg_match("/Je bent ingelogd als ". $username ."/", $login) === true) {
      preg_match(/<a href="http://www.one2xs.com/loguit?c=(.+)" title="Uitloggen">Uitloggen</a>/, $login, $token);
      $this->csrfToken = $token[1];

      return true;
    }


    throw new Exception("Login at one2xs.com failed :(");
  }


  public function logout() {
    $this->request->post(array(
      CURLOPT_URL => "http://www.one2xs.com/loguit?c=" . $this->csrfToken
    ));
  }
}


Codeblok (voorbeeld.php):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<?php
/*==========/
    One2xs Post API
/==========*/


namespace One2xs;

final class PostRequest {
  protected $auth;
  public function __construct($config = array()) {
    if(count($config) == 0 || !isset($config["loginDetails"]["username"])
                           || !
isset($config["loginDetails"]["password"])
                           || !
isset($config["postsInfo"])) {
      throw new Exception("Config not valid");
      return;
    }


    $this->auth = new Auth();
    try {
      $auth->login($config["loginDetails"]["username"],
                   $config["loginDetails"]["password"]);
    }
catch(Exception $e) {
      echo $e->getMessage();
      return;
    }


    $this->config = $config;
  }


  public function execute() {
    /*foreach($this->config["postsInfo"] as $post) {
      var_dump($post);
    }
    Request::request(array(
        CURLOPT_URL         => "http://www.one2xs.com/includes/ajaxfuncties.php",
        CURLOPT_POST        => true,
        CURLOPT_POSTFIELDS  => http_build_query(array(
              "s"             => 20,
              "t"             => 59163,
              "b"             => "test",
              "p"             => 109,
              "c"             => $this->csrfToken,
              "dubbelpost"    => true,
              "ding"          => false
          ))
    ));*/

  }

  public function __destruct() {
  //  $this->auth->logout();
  }

}

Deel dit bericht


Link naar bericht
Delen op andere sites
Gast
alsnog fout, je maakt een nieuwe auth instance aan in de post request class.

je moet de auth injecteren (= meegeven in een constructor) in de post request. Dit zodat je dezelfde auth instance kan hergebruiken overal.

Deel dit bericht


Link naar bericht
Delen op andere sites
Raoul (link):
alsnog fout, je maakt een nieuwe auth instance aan in de post request class.

je moet de auth injecteren (= meegeven in een constructor) in de post request. Dit zodat je dezelfde auth instance kan hergebruiken overal.


Dan kan ik toch beter de request class injecteren?

Deel dit bericht


Link naar bericht
Delen op andere sites
Bezig om in mijn vrije tijd een MMOCC game te maken en java te leren.

Ik probeerde tiles naast elkaar te zetten maar gaat niet echt lekker. Maar ik ben blij dat ik iets op mijn window heb gekregen.

Plaatje

Deel dit bericht


Link naar bericht
Delen op andere sites
Shahiem (link):
Bezig om in mijn vrije tijd een MMOCC game te maken en java te leren.

Ik probeerde tiles naast elkaar te zetten maar gaat niet echt lekker. Maar ik ben blij dat ik iets op mijn window heb gekregen.

Afbeelding


Als je de y iets verhoogt en je zorgt dat de transparantie werkt dan kan het er wel leuk uitzien denk ik smiley. Zou graag meer screens zien van je vooruitgang smiley

Deel dit bericht


Link naar bericht
Delen op andere sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Reageer op dit topic...

×   Geplakt als RTF formaat tekst.   Plak in plaats daarvan als platte tekst

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

Log in om dit te volgen  

×
×
  • Nieuwe aanmaken...