<?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");
?>
//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 ;)
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
//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);
?>