<?php
class login {
public static function LastIp($ip) {
$ip = $_SERVER['REMOTE_ADDR'];
$db->query("INSERT INTO user WHERE ip = '" .mysql_real_escape_string($_POST['last_ip']) ."'");
$_SESSION['last_ip'] = $ip;
}
}
?>

Ik weet hoe ik een classe iets kan luiten uitvoeren

<?php $login = new LogIn($_POST['name'], $_POST['password'], $_POST['last_ip']); ?>

Door bijvoorbeeld dit te gebruiken wat verder in me script staat, ,maar hoe zet ik nou precies een functie aan het werk hoe zorg ik dat mijn script het leest en gebruikt, om de een of andere reden begrijp ik het niet zal misschien heel dom klinken, maar ik ben echt een php leek.
Bijna geen 1 regel klopt in dit script. Waarom begin je ook meteen met OOP? Dat kunnen zelfs mensen die 3 jaar PHP scripten nog niet.

Begin gewoon bij het begin door bijv. de phpbeginnershandleiding te lezen. Daarna kun je misschien verder gaan met SQL en OOP (beide handleidingen beschikbaar op die site)
Aangezien deze functie statisch is, moet je hem zo aanroepen: "login::LastIp("127.0.0.1");"
Maar waarschijnlijk wil je dit niet, want dan heeft hij geen beschikking over de meegegeven variabelen, dus probeer dit eens:
<?php
class login
{
	// deze functie word aangeroepen als je "new login("","","")" doet.
	public function __construct($name, $password, $ip)
	{
		// Doe er dingen mee.
	}
	
	public function LastIp($ip)
	{
		// Doe er dingen mee
	}
}

$login = new login("name", "password", "127.0.0.1");
$login->LastIp("8.8.8.8");
?>
<?php session_start();
require_once('db.class.php');

class login {

public function LogIn($name, $password) {

//als naam en wachtwoord goed gepost zijn.
if(!isset($_POST['name']) && (!isset($_POST['password']) )) {
echo ('Velden niet ingevuld');
} else {
global $db;

$res = $db->query("SELECT * FROM user WHERE name = '" . $db->escape_all_not_tolerated_chararacters($name)
. "' AND password = '" . $db->escape_all_not_tolerated_chararacters($password) . "'");

if($db->numRows($res == 1)){
// dan maak sessie loggedin met name/pass. en ip.
$_SESSION['loggedin'] = $name && $password;
echo ("u bent ingelogd " . $res ." ");
}
else {
echo $ip;
echo ('naam of wachtwoord onjuist');
}
}
}



public static function LastIp($ip) {
$ip = $_SERVER['REMOTE_ADDR'];
$db->query("INSERT INTO user WHERE ip = '" .mysql_real_escape_string($_POST['last_ip']) ."'");
$_SESSION['last_ip'] = $ip;
echo ('zie iets');
}


}

$login = new LogIn($_POST['name'], $_POST['password'], $_POST['last_ip']);
?>


[size=xsmall]Toevoeging op 31/08/2011 13:21:24:[/size]

dat is het complete script, het inloggen werkt wel degelijk :P het probleem is dat ik niet weet/snap hoe ik een functie aanzet zonder dat zinnetje op regel 41 te gebruiken....
ik wil dat die function LastIp ook iets gaat doen.

[size=xsmall]Toevoeging op 31/08/2011 13:39:53:[/size]

nvm het antwoord was vrij simpel heb nu wel een error dat de functie niet bestaat, maar hij roept hem wel aan :P bedankt wouter ik had erover heen gelezen ;)
Als je een echte leek op php gebied bent, zoals ik, heb je hier meer aan
Ik vind de uitleg op phptuts van wouter iets duidelijker,
maar leek is misschien overdreven ik programmeer normaal gezien java en ben sinds anderhalve week bezig met php :P
Als je Java kent, moet php niet al te moeilijk zijn, van een echte programmeertaal naar een script taal is volgens de programmeurs makkelijker dan andersom.
Ja het is ook makkelijker denk ik (a) maar af en toe van die problemen geef mij maar java >.< (als het kon).
Nu weer een error met het aanroepen van die functie.

Fatal error: Call to undefined function lastIp() in /Applications/MAMP/htdocs/infodatek/classes/class_login_comments.php on line 43

<?php session_start();
require_once('db.class.php');

class login {

public function LogIn($name, $password) {

//als naam en wachtwoord goed gepost zijn.
if(!isset($_POST['name']) && (!isset($_POST['password']) )) {
echo ('Velden niet ingevuld');
} else {
global $db;

$res = $db->query("SELECT * FROM user WHERE name = '" . $db->escape_all_not_tolerated_chararacters($name)
. "' AND password = '" . $db->escape_all_not_tolerated_chararacters($password) . "'");

if($db->numRows($res == 1)){
// dan maak sessie loggedin met name/pass. en ip.
$_SESSION['loggedin'] = $name && $password;
echo ("u bent ingelogd " . $res ." ");
}
else {
echo $ip;
echo ('naam of wachtwoord onjuist');
}
}
}



public function lastIp($ip) {
$ip = $_SERVER['REMOTE_ADDR'];
$db->query("INSERT INTO user WHERE ip = '" .mysql_real_escape_string($_POST['last_ip']) ."'");
$_SESSION['last_ip'] = $ip;
return $ip;
echo ('zie iets');
}


}

$login = new LogIn($_POST['name'], $_POST['password']);
lastIp($ip);
?>
$login->lastIp($ip) ?
Notice: Undefined variable: ip in /Applications/MAMP/htdocs/infodatek/classes/class_login_comments.php on line 43

Notice: Undefined variable: db in /Applications/MAMP/htdocs/infodatek/classes/class_login_comments.php on line 33

Fatal error: Call to a member function query() on a non-object in /Applications/MAMP/htdocs/infodatek/classes/class_login_comments.php on line 33

$login = new LogIn($_POST['name'], $_POST['password']);
$login->lastIp($ip);

[size=xsmall]Toevoeging op 31/08/2011 14:17:54:[/size]

had ik al geprobeerd :P
je moet wel $ip aanmaken he! $_SERVER['REMOTE_ADDR'];
+ er is geen verbinding met de db. De var $db is niet vindbaar -> de query mislukt daardoor.

Reageren