Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno PHP kód - kontrola

Dobrý deň, čo mám v následujúcom kóde zle?



<?php

$admin-pass = $_POST['adminpass'];

if ($admin-pass == "heslo")
{
echo "heslo je správne!";
}
else
{
echo "heslo je nesprávne!";
}

?>

Prípadne môžete mi sem napísať tú správnu verziu ako by to malo byť? Ďakujem vopred.

Předmět Autor Datum
Pomlčka v názvu proměnné by být neměla.
Wikan 22.11.2018 14:38
Wikan
a spravne by nikdy nemalo byt heslo len tak v premennej, idealne je ukladat hash.
Mlocik97 22.11.2018 15:11
Mlocik97
Dobre, ďakujem a ešte sa chcem spýtať: Vytvoril som zápis do databáze, všetko funguje. Následne som…
AD4M 22.11.2018 18:56
AD4M
Kvůli přihlášení čteš celou tabulku? Pro vstup stačí znát jméno libovolného admina? A co když jich b…
Wikan 22.11.2018 19:03
Wikan
Samozrejme to ešte upravovať budem. Ale môžeš mi prosím napísať kde je chyba? Toto je len taká testo…
AD4M 22.11.2018 19:08
AD4M
Nemáš nějak špatně kódování toho souboru? Nebo můžeš ho sem přímo vložit?
Wikan 22.11.2018 19:11
Wikan
To už som tiež kontroloval, kódovanie mám všade nastavené na UTF-8-ROM.
AD4M 22.11.2018 19:12
AD4M
A můžeš ho sem teda vložit? Případně všechny?
Wikan 22.11.2018 19:13
Wikan
Vyriešené, stačilo len zmeniť kódovanie na stránke :).
AD4M 22.11.2018 19:19
AD4M
Když máš ty soubory v UTF-8, tak nemůžeš v hlavičce říkat, že je v ISO-8859-1. A vážně HTML4 v roce…
Wikan 22.11.2018 19:25
Wikan
Čo už... :D
AD4M 22.11.2018 19:37
AD4M
A dá sa nejako zmeniť nvu na HTML5?
AD4M 22.11.2018 19:50
AD4M
NVU asi ne, ten už se dávno nevyvíjí. Ale jakýsi jeho nástupce je http://www.bluegriffon.org/ Stejně…
Wikan 22.11.2018 20:02
Wikan
Veľmi pekne ďakujem, je oveľa lepší než nvu! Veľká vďaka! :-) poslední
AD4M 22.11.2018 22:14
AD4M

Dobre, ďakujem a ešte sa chcem spýtať:

Vytvoril som zápis do databáze, všetko funguje. Následne som urobil výpis z databáze.

Vytvoril som si install2.php s následujúcim kódom:


<?php
require_once('Db.php');
require_once('mysqlconnect.php');

if ($_POST)
{
echo "Údaje boli úspešne uložené!<br><br>";
echo "<a href=\"test.php\">Pokračuj</a>"; ?>
}

Db.php som stiahol z internetu (overená stránka), a mysqlconnect.php som si vytvoril. MysqlConnect.php obsahuje klasický kód na pripojenie ku databáze:

<?php
	require_once('Db.php');
	require_once('mysqlconfig.php');
	Db::connect($localhost, $databaza, $username, $pass);
	
	if ($_POST)
	{
		Db::query('INSERT INTO adminka (adminpass, hashcode) VALUES (?, ?)', $_POST['adminpass'], $_POST['hashcode']);
	}
?>

mysqlconfig.php obsahuje čisto len premenné. Problém nie je tak extra veľký, len ma prekvapila jedna "vecička". Zo začiatku všetko fungovalo perfektne, zapisovanie, výpis atď... lenže keď som stránku admin-login.php raz obnovil, pri PHP kóde (tam, kde má vypísať echo) sa mi zobazujú rôzne znaky napr. obrátený ?, #& atď... neviem vôbec kde je chyba. Nastalo to ako som vytvoril mysqlconfig.php, ale príde mi dosť blbé že by to bolo kvôli tomuto, pretože obsah súboru sú fakt len premenné a text, príklad: $text = "text";.

admin-login.php kód:

require_once('Db.php');
require_once('mysqlconnect.php');

$vypis = Db::queryAll('SELECT * FROM adminka');

foreach ($vypis as $v)
{
if ($_POST['adminpass'] == $v['adminpass'])
{
echo "Heslo je správne! <a href=\"spravuj-web/adminka.php\">vstúpiť</a>";
}
}

Takže pred echo textom sa mi vždy ukážu nejaké znaky, až potom text príklad: ?#&Heslo je správne!

Kvůli přihlášení čteš celou tabulku?
Pro vstup stačí znát jméno libovolného admina? A co když jich bude mít víc stejné heslo? To tam těch linků bude víc?
Celé zabezpečení spočívá v tom, že nikdo nezná link pro vstup do administrace? Co když ho někdo zadá přímo?

Zpět do poradny Odpovědět na původní otázku Nahoru