Witam. Postaram się, krótko opisać jak zalogować się, używając AJAXA.
Do obsługi Ajaxa wykorzystałem darmową bibliotekę AdvAjax dostępną pod tym adresem http://advajax.anakin.us/
żciągamy ją i wrzucamy do kodu html, tworzymy przy tym prosty formularz:
Kod:
<html>
<head>
<script type="text/javascript" src="advajax.js"></script>
</head>
<body>
<form>
<input type="text" name="login"><br>
<input type="password" name="haslo"><br>
<input type="button" name="loguj" onclick="wyslij(this.form)" value="loguj">
</form>
</body>
</html>
funkcję wyslij(this.form) stworzymy w osobnym pliku form.js. this.form jest referencją (uchwytem) do wszystkich pól w formularzu, którą przekazujemy jako parametr do funkcji wyslij.
plik form.js
Kod:
function wyslij(oForm) {
advAJAX.post({
url: "login.class.php",
login : oForm.login.value,
haslo : oForm.haslo.value,
onLoading : function() {document.getElementById('loader').style.visibility = "visible";},
onComplete : function() {document.getElementById('loader').style.visibility = "hidden";},
onSuccess : function(obj) { alert(obj.responseText);},
onError : function(obj) { alert("Error: " + obj.status); },
});
}
modyfikujemy html (dodajemy plik form.js do kodu oraz ukrytą warstwe do informowania o procesie wczytywania danych):
Kod:
<html>
<head>
<script type="text/javascript" src="advajax.js"></script>
<script type="text/javascript" src="form.js"></script>
</head>
<body>
<div id="loader" style="visibility: hidden">wczytywanie...</div>
<form>
<input type="text" name="login"><br>
<input type="password" name="haslo"><br>
<input type="button" name="loguj" onclick="wyslij(this.form)" value="loguj">
</form>
</body>
</html>
zapytanie sql:
Kod:
CREATE TABLE `ziemia`.`uzytkownicy` (
`id` INT( 5 ) UNSIGNED NOT NULL AUTO_INCREMENT ,
`login` VARCHAR( 10 ) NOT NULL ,
`haslo` VARCHAR( 12 ) NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE = InnoDB
dodanie rekordu sql:
Kod:
INSERT INTO `ziemia`.`uzytkownicy` (
`id` ,
`login` ,
`haslo`
)
VALUES (
NULL , 'slammer', 'adminek'
);
no i dochodzimy do kluczowego pliku php. Nazwanego login.class.php:
Kod:
<?
//wypadaloby utworzyc klase do obslugi zapytan sql. Aby nie komplikowac utworze wszystko jednym
class login {
private $login;
private $haslo;
function __construct($login, $haslo) {
$this->login = $login;
$this->haslo = $haslo;
}
function sprawdz() {
mysql_connect('host', 'login', 'haslo');
mysql_select_db('ziemia');
$result = mysql_query("SELECT * FROM uzytkownicy WHERE login='$this->login' AND haslo='$this->haslo'");
while ($row = mysql_fetch_row($result)) {
echo 'zalogowany: '.$row[1];
}
}
}
$login = new login($_POST['login'], $_POST['haslo']);
$login->sprawdz();
?>
Zakładki