HTML5 alert () -ben megjelenő script? (több lent)
Sziasztok,
Az alább script eredményét szeretném megjeleníteni, úgy, hogy amint betéved valaki az oldalra feldobja neki és amíg nem sikerül neki a login ne engedje tovább a popup.
<form name="loginform" onSubmit="return validateForm();" action="sli.html" method="post">
<label>ID</label>
<input type="text" name="usr" placeholder="username">
<label>Jelszó</label>
<input type="password" name="pword" placeholder="password">
<input type="submit" value="Login"/>
</form>
<script>
function validateForm() {
var id = document.loginform.usr.value;
var pw = document.loginform.pword.value;
var hid = "Valami";
var hpw = "Valami";
var cid = "Valami";
var cpw = "Valami";
if (((id == hid) && (pw == hpw))||((id == cid) && (pw == cpw))) {
return true;
}
else {
alert ("Helytelen ID/Jelszó.");
return false;
}
}
1. Íme:
˙˙˙˙while (!validateForm()) {
˙˙˙˙}
2. A böngésző a második popupnál felajánlja, hogy a felhasználó letiltsa a popupokat, ergo hatástalan.
3. Kliensoldalon nem illik autentikálni
4. Változóneveknek ne használj értelmetlen rövidítéseket. Illik értelmes angol szavakat, kifejezéseket használni, mint pl. userId, password, stb.
5. Egy függvény egy return!
6. Egy függvény csak egy dolgot csinál, de azt jól és mellékhatás nélkül: annak az alertnek nem ott van a helye
7. Boolean értéket assign-olsz boolean érték alapján. Nem illik if-et használni, hacsak nem elkerülhetetlen. Mivel az az alert ott rossz helyen van, ide nem kell az if. Add vissza a vizsgált feltételt.
...
Mégegyszer hangsúlyoznám: Autentikációt nem szabad kliensoldalon végezni.
A képen láthatóhoz hasonlót nem a HTML-ben kell megcsinálni, hanem a webszerveren kell beállítani.
Basic access authentication a neve.
Vagy a webszerver konfigjában, vagy pedig .htaccess fájllal lehet beállítani, esetleg szerver oldali scripteléssel pl. phpval, vagy egyéb script nyelvekkel
Az alert() függvény nem HTML5, hanem Javascript:
A belinkelt képen látható megjelenő ablakot pedig a böngésző generálja (minden böngészőnél egyedi) a - jelen esetben a routeren található - webszerver által küldött HTTP 401 Authorization Required és WWW-Authenticate: Basic realm="..." fejléceire reagálva, és az ellenőrzést is a szerver végzi el, nem a kliens oldali Javascript-kód (ugyanis ez az utóbbi a böngészőben látható, így könnyedén kijátszható).
Ha popup ablakban akarsz megjeleníteni egy bejelentkezési űrlapot, használj valamilyen keretrendszert, amiben van Popup-ablak.
Ilyen például a Bootstrap:
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!