Forum » Šola » Rabim pomoč pri PHP-ju.
Rabim pomoč pri PHP-ju.
SPTŠLowLife ::
Pozdravljeni, ena izmed nalog pri določeni vaji pri razvoju spletnih aplikacij mi dela probleme, zato sem se obrnil na vas.
Posodobiti oz. "updejtati" moramo datum zadnje prijave za določenega uporabnika, ko se le ta prijavi v naš sistem. Zaenkrat sem si nalogo zamislil tako, a ta način ne deluje:
http://prntscr.com/ej0ecw
Kje sem naredil napako in kakšna je pravilna rešitev? Hvala.
Posodobiti oz. "updejtati" moramo datum zadnje prijave za določenega uporabnika, ko se le ta prijavi v naš sistem. Zaenkrat sem si nalogo zamislil tako, a ta način ne deluje:
http://prntscr.com/ej0ecw
Kje sem naredil napako in kakšna je pravilna rešitev? Hvala.
Yacked2 ::
Okoli date ti manjkajo dvojni narekovaji.
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!
Stari89 ::
Pomagalo bi, če bi napisal, kater error ti vrže ven.
Gledam drug printscreen, tam kjer si narisal rdeč okvir. Odstranil bi spremeljivko $date in bi napisal kar takole:
SQL stavek si shranil v spremenljivko, ampak ga nisi izvedel:
Če želiš fasat 5+, se znebi nepotrebnega gnezdenja if stavkov in raje dodaj kak "return;" več. To je zelo dobra praksa programiranja. Priporočam da se je navadiš, celo pri takih nalogah. Pa uporabljaj angleščino (tega se še posebej profesorji nočejo držat!). Recimo:
Pazi: sem bolj površne sorte in tega nisem mel kje stestirat.
Še zadnji nasvet: Ne štukaj SQL stavkov s spremenljivkami! Uporabljaj parametre! To kar kliče po SQL injection napadu! Kaj, če ti nekdo v username polje napiše " '; DROP TABLE users;" ? :) Preberi si tole: link
Gledam drug printscreen, tam kjer si narisal rdeč okvir. Odstranil bi spremeljivko $date in bi napisal kar takole:
$sql_zadnjaPrijava = "INSERT INOT user (zadnjaPrijava) VALUES(NOW())";
SQL stavek si shranil v spremenljivko, ampak ga nisi izvedel:
if (!mysqli_query($link, $sql_zadnjaPrijava)) { // izpišeš error // ... } else { // ustvarimo sejo // ... }
Če želiš fasat 5+, se znebi nepotrebnega gnezdenja if stavkov in raje dodaj kak "return;" več. To je zelo dobra praksa programiranja. Priporočam da se je navadiš, celo pri takih nalogah. Pa uporabljaj angleščino (tega se še posebej profesorji nočejo držat!). Recimo:
function Prijava() { if (!isset($_POST['gumb']) || !isset($_POST['username']) || !isset($_POST['password1'])) { echo "Missing POST parameters"; return; } if (empty($_POST['username']) || empty($_POST['password1'])) // enako, ampak lepše kot tole: $_POST['username'] == "" { echo "No data in text fields!"; return; } echo nl2br("\n"); $username = strip_tags($_POST['username']); $password1= strip_tags($_POST['password1']); $link = open_database_connection(); $hashed_password = sha1($password1); $sql = "SELECT id FROM user WHERE username = '$username' AND password = '$hashed_password'"; $result = mysqli_query($link, $sql); if (!$result) { echo "SQL error: " . mysql_error($link); return; } if (mysqli_num_rows($result) == 0) { echo "Incorrect login credentials"; return; } $sql_last_login = "INSERT INTO user (zadnjaPrijava) VALUES (NOW())"; if (!mysqli_query($link, $sql_last_login )) { echo "SQL error: " . mysql_error($link); return; } // ustvarimo sejo /// in tako naprej }
Pazi: sem bolj površne sorte in tega nisem mel kje stestirat.
Še zadnji nasvet: Ne štukaj SQL stavkov s spremenljivkami! Uporabljaj parametre! To kar kliče po SQL injection napadu! Kaj, če ti nekdo v username polje napiše " '; DROP TABLE users;" ? :) Preberi si tole: link
Stari89 ::
Ah ja, INSERT ne bo pravi. Sem mislil, da loggaš prijave v samosvojo tabelo, ne kar direkt na userja. Bo treba nardit UPDATE, tako kot na taprvem primeru. Od oka:
LP
$sql_zadnjaPrijava = "UPDATE user SET zadnjaPrijava = NOW() WHERE username = '$username' AND password = '$kodirano_geslo'";
LP
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | PHP datoteka, povezava na bazoOddelek: Izdelava spletišč | 1297 (1014) | racunalnicar |
» | PHP - header : javi napakoOddelek: Izdelava spletišč | 1322 (1277) | Camel |
» | mySQL prikaz apostrofOddelek: Izdelava spletišč | 1103 (990) | -=aVa=- |
» | [PHP] Kako izvesti neko kodo šele ob klikuOddelek: Izdelava spletišč | 1923 (1409) | krho |
» | Raziskava o ranljivosti spletnih strani z SQL bazami podatkovOddelek: Novice / Varnost | 4942 (4278) | sverde21 |