Jump to content

skarecrow

New Members
  • Posts

    9
  • Joined

  • Last visited

    Never

Posts posted by skarecrow

  1. [quote author=Daniel0 link=topic=111862.msg453596#msg453596 date=1161154002]
    Seems like a good idea skarecrow, but why not just use runkit_function_remove and then define it with the same name as the one you removed instead? You should also note that those functions are experimental and that they require a PECL extension installed, so if you are programming for a client, then you will require them to have the runkit extension, but the client may be at a shared host and therefor not having access php.ini to load the extension (or can it be done using dl()?).
    [/quote]

    hehe, i think i just got what you meant. ;) that would have helped me if i understood that a while ago. lol
    i will give that a shot, will look alot nicer also ;) Thanks for the sugestion!


    [i][b][EDIT][/b][/i]

    Never mind on that, good idea but it isnt letting me do it that way.
  2. Never mind! I fixed it!
    I wasnt thinking "FUNCTION" :P I had to make $MySQL global in the function.

    so here is a working example

    [code]<?PHP
    runkit_function_copy('mysql_connect', 'tmp_mysql_connect');
    runkit_function_copy('mysql_select_db', 'tmp_mysql_select_db');
    runkit_function_remove('mysql_connect');
    runkit_function_remove('mysql_select_db');

    class MySQL {

    public $server;
    public $user;
    private $pass;
    private $link;
    private $dbase;

    public function __Construct() { }

    public function cl_mysql_connect($server, $user, $pass) {

    $this->server = $server;
    $this->user = $user;
    $this->pass = $pass;

    $this->link = tmp_mysql_connect($server, $user, $pass) or die(mysql_error());

    }

    public function cl_mysql_select_db($dbase) {

    $this->dbase = $dbase;
    tmp_mysql_select_db($dbase) or die(mysql_error());

    }

    }

    $MySQL = new MySQL();

    runkit_function_add('mysql_connect', '$server, $user, $pass', 'global $MySQL; $MySQL->cl_mysql_connect($server, $user, $pass);');
    runkit_function_add('mysql_select_db', '$dbase', 'global $MySQL; $MySQL->cl_mysql_select_db($dbase);');
    mysql_connect("localhost", "root", "");
    mysql_select_db("warped");
    ?>[/code]

    now time to recreate a bunch of functions and create a secure mysql class ;) WOOT! Thanks for all the help. I might post the finished product here.
  3. [code]Warning: runkit_function_add() expects exactly 3 parameters, 1 given in /home/skarecrow/public_html/test/index.php on line 31[/code]



    Well, I got it all figured it out, I got it to start working without errors. I went to add a new MySQL method to the class and now get this..


    [code]Fatal error: Call to a member function cl_mysql_connect() on a non-object in /home/skarecrow/public_html/test/index.php(38) : runkit created function on line 1
    [/code]

    From This

    [code]<?PHP
    runkit_function_copy('mysql_connect', 'tmp_mysql_connect');
    runkit_function_copy('mysql_select_db', 'tmp_mysql_select_db');
    runkit_function_remove('mysql_connect');
    runkit_function_remove('mysql_select_db');

    class MySQL {

    public $server;
    public $user;
    private $pass;
    private $link;
    private $dbase;

    public function __Construct() { }

    public function cl_mysql_connect($server, $user, $pass) {

    $this->server = $server;
    $this->user = $user;
    $this->pass = $pass;

    $this->link = tmp_mysql_connect($server, $user, $pass) or die(mysql_error());

    }

    public function cl_mysql_select_db($dbase) {

    $this->dbase = $dbase;
    tmp_mysql_select_db($dbase);

    }

    }

    $MySQL = new MySQL();

    runkit_function_add('mysql_connect', '$server, $user, $pass', '$MySQL->cl_mysql_connect($server, $user, $pass);');
    runkit_function_add('mysql_select_db', '$dbase', '$MySQL->cl_mysql_select_db($dbase);');
    mysql_connect("localhost", "root", "");
    mysql_select_db("warped");
    ?>[/code]


    but it works just fine if i use this

    [code]<?PHP
    runkit_function_copy('mysql_connect', 'tmp_mysql_connect');
    runkit_function_copy('mysql_select_db', 'tmp_mysql_select_db');
    runkit_function_remove('mysql_connect');
    runkit_function_remove('mysql_select_db');

    class MySQL {

    public $server;
    public $user;
    private $pass;
    private $link;
    private $dbase;

    public function __Construct() { }

    public function cl_mysql_connect($server, $user, $pass) {

    $this->server = $server;
    $this->user = $user;
    $this->pass = $pass;

    $this->link = tmp_mysql_connect($server, $user, $pass) or die(mysql_error());

    }

    public function cl_mysql_select_db($dbase) {

    $this->dbase = $dbase;
    tmp_mysql_select_db($dbase) or die(mysql_error());

    }

    }

    $MySQL = new MySQL();

    runkit_function_add('mysql_connect', '$MySQL, $server, $user, $pass', '$MySQL->cl_mysql_connect($server, $user, $pass);');
    runkit_function_add('mysql_select_db', '$MySQL, $dbase', '$MySQL->cl_mysql_select_db($dbase);');
    mysql_connect($MySQL, "localhost", "root", "");
    mysql_select_db($MySQL, "warpedd");
    ?>[/code]

    as you can see im sending the variable to the runkit function. I dont want to do that :( thats going to ruin the whole idea, lol
  4. Alright, I got rid of the abstract error by creating an abstract function inside the class now im getting this error....

    [code]<?PHP
    runkit_function_rename('mysql_connect', 'tmp_mysql_connect');

    class MySQL {

    public $server;
    public $user;
    private $pass;

    public function __Construct($server, $user, $pass) {

    echo "Hello World";

    $this->server = $server;
    $this->user = $user;
    $this->pass = $pass;

    $this->cl_mysql_connect();

    }

    abstract function cl_mysql_connect() {

    tmp_mysql_connect($this->server, $this->user, $this->pass) or die(mysql_error());

    }

    }

    runkit_function_add('mysql_connect', '$server, $user, $pass', '$MySQL = new MySQL($server, $user, $pass);');
    mysql_connect("localhost", "root", "");
    ?>[/code]

    [code]
    Fatal error: Abstract function MySQL::cl_mysql_connect() cannot contain body in /home/skarecrow/public_html/test/index.php on line 26
    [/code]

    I <3 Errors!

    I am new to MySQL OOP, and OOP in general. Im sure its something obvious.
  5. no this is a personal project. for my site.

    here is what I have so far, i am still having problems ;) trying to work things out.

    [code]<?PHP
    class MySQL {

    public $server;
    public $user;
    private $pass;

    public function __Construct($server, $user, $pass) {

    $this->server = $server;
    $this->user = $user;
    $this->pass = $pass;

    mysql_connect($this->server, $this->user, $this->pass) or die(mysql_error());
    mysql_select_db("warped");

    }

    public function cl_mysql_query($query) {

    echo "Executing Query {$query}";

    }


    }
    $MySQL = new MySQL("localhost", "root", "");

    runkit_function_rename('mysql_query', 'tmp_mysql_query');
    runkit_function_add('mysql_query', '$query', '$MySQL->cl_mysql_query($query);');
    mysql_query("SELECT * FROM members") or die(mysql_error());
    ?>[/code]

    right now the error is...

    [code]Fatal error: Call to a member function cl_mysql_query() on a non-object in /home/skarecrow/public_html/test/index.php(30) : runkit created function on line 1[/code]

    if i refresh once or twice i then get


    [code]Warning: runkit_function_rename() [function.runkit-function-rename]: tmp_mysql_query() already exists in /home/skarecrow/public_html/test/index.php on line 29

    Warning: runkit_function_add() [function.runkit-function-add]: Function mysql_query() already exists in /home/skarecrow/public_html/test/index.php on line 30
    Table 'warped.members' doesn't exist[/code]


    then if i try this

    [code]<?PHP
    runkit_function_rename('mysql_connect', 'tmp_mysql_connect');

    class MySQL {

    public $server;
    public $user;
    private $pass;

    public function __Construct($server, $user, $pass) {

    echo "Hello World";

    $this->server = $server;
    $this->user = $user;
    $this->pass = $pass;

    $this->cl_mysql_connect();

    }

    public function cl_mysql_connect() {


    tmp_mysql_connect($this->server, $this->user, $this->pass) or die(mysql_error());

    }

    }

    runkit_function_add('mysql_connect', '$server, $user, $pass', '$MySQL = new MySQL($server, $user, $pass);');
    mysql_connect("localhost", "root", "");
    ?>[/code]

    I will get his

    [code]Hello World
    Fatal error: Cannot call abstract method 0A±XDZÇ±::¨?±ð?±() in /home/skarecrow/public_html/test/index.php on line 25
    [/code]

    hehe
  6. i am not sure i understand what exactly you mean, care to explain a little more :) thanks

    I was just searching and found an interesting extension.
    Its a runkit extension. It allows you to copy functions, remove functions and copy a function over as that function. For example, from this site...
    [code]< ?php
    runkit_function_remove('print_r');
    function print_rs($what)
    {
    echo "You said =".$what;
    }
    runkit_function_copy('print_rs','print_r');
    print_r("yeah");
    ?>[/code]

    I bet I could use the php_value auto_prepend_file "/path/to/class.php" to my server config and just use this runkit to rename all the mysql functions then use the renamed functions in the class. say there is mysql_query() i could rename it to tmp_mysql_query() and in my class use tmp_mysql_query() instead of mysql_query() or something. idk I think this will help. sorry if i am confusing cause I have just confused myself, I have it all pictured in my head just not sure how to explain it :) I will give this a shot and let you guys know how it goes.
  7. The PHP crypt() function uses a one-way encryption algorithm. If you crypt the password with this function you could brute force it but I dought anyone would take that route for forgotten passwords.
    Although you cannot un-encrypt the password you can easily generate them a new password and send them the new password via email, or you could even set up a temporary password they can login with. Once they login they can simply change there password.
    Hope this helps!
  8. Hello,
    I have just created a MySQL Class in PHP and I wanted to try making it impossible for my developers to use the MySQL Functions.
    I have disabled all the MySQL Functions via the PHP configuration under disable_functions and was now wondering if it is by any chance possible to enable the functions in a certain file or directory. I was going to do a little hacking on the MySQL module to do this but I want to make sure there isnt an easier method to it.
    Any help would be great!
    Thanks,
      SkareCrow
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.