som si precital http://www.secit.sk/sk/content/sql-injection to sa dalo
a este na blackhole, ale tam som tomu moc nerozumel, pokial ide o formulare, kde sa zapisuju udaje do databazy,
momentalne mam problem ako zamedzit vlozeniu duplicitnych udajov napr. meno, heslo
Nefunkcny kod na vkladanie dat do databazy
- CZechBoY
- Master Level 9.5
- Příspěvky: 8813
- Registrován: srpen 08
- Bydliště: Brno
- Pohlaví:
- Stav:
Offline
- Kontakt:
Re: Nefunkcny kod na vkladanie dat do databazy
jednoducho..
1) SELECTneš si hodnoty, jestli už tam nejsou
2) dáš unikátní klíče na sloupce v tabulce MySQL
1) SELECTneš si hodnoty, jestli už tam nejsou
2) dáš unikátní klíče na sloupce v tabulce MySQL
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
Re: Nefunkcny kod na vkladanie dat do databazy
Jednoducho???
To sa Ti povie, ked to vies, ale ako to ma presne vyzerat?

- CZechBoY
- Master Level 9.5
- Příspěvky: 8813
- Registrován: srpen 08
- Bydliště: Brno
- Pohlaví:
- Stav:
Offline
- Kontakt:
Re: Nefunkcny kod na vkladanie dat do databazy
už jsem napsal nástřel..
neznám tvůj kod ani databázi tak nemůžu napsat přesně jak by to mohlo být
neznám tvůj kod ani databázi tak nemůžu napsat přesně jak by to mohlo být

PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
Re: Nefunkcny kod na vkladanie dat do databazy
tu je kod:
<?php
$meno = $_POST['meno'];
$ulica = $_POST['ulica'];
$cislo = $_POST['cislo'];
$mesto = $_POST['mesto'];
$psc = $_POST['psc'];
$mail = $_POST['mail'];
$www = $_POST['www'];
$mobil = $_POST['mobil'];
$login = $_POST['login'];
$password = $_POST['password'];
$sql="INSERT INTO owners(meno, ulica, cislo, mesto, psc, mail, www, mobil, login, password) VALUES('$meno', '$ulica', '$cislo', '$mesto', '$psc', '$mail', '$www', '$mobil', '$login', '$password')";
$meno=MySQL_Real_Escape_String($meno);
$ulica=MySQL_Real_Escape_String($ulica);
$cislo=MySQL_Real_Escape_String($cislo);
$mesto=MySQL_Real_Escape_String($mesto);
$psc=MySQL_Real_Escape_String($psc);
$mail=MySQL_Real_Escape_String($mail);
$www=MySQL_Real_Escape_String($www);
$mobil=MySQL_Real_Escape_String($mobil);
$login=MySQL_Real_Escape_String($login);
$password=MySQL_Real_Escape_String($password);
$query=MySQL_Query($sql);
if($sql){
echo "Registrácia prebehla v poriadku. Teraz sa môžete <a href=\"../prihlasit.php\">prihlásiť</a><br>";
} else {
echo "Údaje sa nepodarilo vložit! Prosim skuste znova pozorne vyplnit formulra.<br><br>";
echo "MySQL chyba:<span style='color:red'>".MySQL_Error()."</span><br>";
echo "SQL dotaz:<b>".htmlSpecialChars($sql)."</b><br>";
}
mysql_close();
?>
<?php
$meno = $_POST['meno'];
$ulica = $_POST['ulica'];
$cislo = $_POST['cislo'];
$mesto = $_POST['mesto'];
$psc = $_POST['psc'];
$mail = $_POST['mail'];
$www = $_POST['www'];
$mobil = $_POST['mobil'];
$login = $_POST['login'];
$password = $_POST['password'];
$sql="INSERT INTO owners(meno, ulica, cislo, mesto, psc, mail, www, mobil, login, password) VALUES('$meno', '$ulica', '$cislo', '$mesto', '$psc', '$mail', '$www', '$mobil', '$login', '$password')";
$meno=MySQL_Real_Escape_String($meno);
$ulica=MySQL_Real_Escape_String($ulica);
$cislo=MySQL_Real_Escape_String($cislo);
$mesto=MySQL_Real_Escape_String($mesto);
$psc=MySQL_Real_Escape_String($psc);
$mail=MySQL_Real_Escape_String($mail);
$www=MySQL_Real_Escape_String($www);
$mobil=MySQL_Real_Escape_String($mobil);
$login=MySQL_Real_Escape_String($login);
$password=MySQL_Real_Escape_String($password);
$query=MySQL_Query($sql);
if($sql){
echo "Registrácia prebehla v poriadku. Teraz sa môžete <a href=\"../prihlasit.php\">prihlásiť</a><br>";
} else {
echo "Údaje sa nepodarilo vložit! Prosim skuste znova pozorne vyplnit formulra.<br><br>";
echo "MySQL chyba:<span style='color:red'>".MySQL_Error()."</span><br>";
echo "SQL dotaz:<b>".htmlSpecialChars($sql)."</b><br>";
}
mysql_close();
?>
- CZechBoY
- Master Level 9.5
- Příspěvky: 8813
- Registrován: srpen 08
- Bydliště: Brno
- Pohlaví:
- Stav:
Offline
- Kontakt:
Re: Nefunkcny kod na vkladanie dat do databazy
eh?
to escapování proměnných až po odeslání do databáze je jaksi k ničemu
IF($sql) vždycky projde, musíš tam kontrolovat proměnnou $result
pošli ještě kde máš unikátní klíče v DB
to escapování proměnných až po odeslání do databáze je jaksi k ničemu

IF($sql) vždycky projde, musíš tam kontrolovat proměnnou $result
pošli ještě kde máš unikátní klíče v DB
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
Re: Nefunkcny kod na vkladanie dat do databazy
Prečo?????? "to escapování proměnných až po odeslání do databáze je jaksi k ničemu"
Robil som to podla Teba.
A tato cast kodu ma vyzerat takto?
Žiadne kľúče tam nemam.
Robil som to podla Teba.
A tato cast kodu ma vyzerat takto?
Kód: Vybrat vše
if($result){
echo "Registrácia prebehla v poriadku. Teraz sa môžete <a href=\"../prihlasit.php\">prihlásiť</a><br>";
} else {
echo "Údaje sa nepodarilo vložit! Prosim skuste znova pozorne vyplnit formulra.<br><br>";
echo "MySQL chyba:<span style='color:red'>".MySQL_Error()."</span><br>";
echo "SQL dotaz:<b>".htmlSpecialChars($sql)."</b><br>";
}
Žiadne kľúče tam nemam.
- CZechBoY
- Master Level 9.5
- Příspěvky: 8813
- Registrován: srpen 08
- Bydliště: Brno
- Pohlaví:
- Stav:
Offline
- Kontakt:
Re: Nefunkcny kod na vkladanie dat do databazy
podle mě? já ti posílám ukázky kodu, nepíšu ti, že to máš dát přes odeslání do databáze, to je snad jasné 
jojo je to dobře
hoď unikátní indexy na jméno a prostě na všechno co chceš mít jedinečné

jojo je to dobře
hoď unikátní indexy na jméno a prostě na všechno co chceš mít jedinečné

PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
Re: Nefunkcny kod na vkladanie dat do databazy
Toto som nepochopil "nepíšu ti, že to máš dát přes odeslání do databáze, to je snad jasné"
a kam to teda mam dat?
Pridal som si tie kluce na prihlasovacie udaje meno a heslo. Chybu mi vypisuje takto:
"Údaje sa nepodarilo vložit! Prosim skuste znova pozorne vyplnit formular.
Duplicate entry 'jako' for key 2" - Problem je v tom, ze by som to potreboval mat v slovencine,
a vypisalo mi konkretne len jeden aj ked som dal dva rovnake udaje a navyse mi priratavalo
ID aj ked udaje do tabulky neboli vlozene.
a kam to teda mam dat?
Pridal som si tie kluce na prihlasovacie udaje meno a heslo. Chybu mi vypisuje takto:
"Údaje sa nepodarilo vložit! Prosim skuste znova pozorne vyplnit formular.
Duplicate entry 'jako' for key 2" - Problem je v tom, ze by som to potreboval mat v slovencine,
a vypisalo mi konkretne len jeden aj ked som dal dva rovnake udaje a navyse mi priratavalo
ID aj ked udaje do tabulky neboli vlozene.
- CZechBoY
- Master Level 9.5
- Příspěvky: 8813
- Registrován: srpen 08
- Bydliště: Brno
- Pohlaví:
- Stav:
Offline
- Kontakt:
Re: Nefunkcny kod na vkladanie dat do databazy
chybu duplicate to hodí nečekaně při duplikaci..
na heslo nedávej unikát, to je blbost
jméno je celý jméno nebo jen první jméno?
escapování proměnných dej samozřejmě před vložení do db
na heslo nedávej unikát, to je blbost
jméno je celý jméno nebo jen první jméno?
escapování proměnných dej samozřejmě před vložení do db
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
Re: Nefunkcny kod na vkladanie dat do databazy
"chybu duplicate to hodí nečekaně při duplikaci.." - Ano to som chcel, ale cakane, aby som separoval ucty uzivatelov.
Len by som chcel, aby mi to nevypisovalo v AJ, ale v slovencine - Vami zadane meno uz pouziva iny uzivatel, prosim zvolte si ine.
S tym "if($result)" to vobec nefunguje, funguje to s "if($sql)"
A to escapovanie mam mat tu, alebo tesne pred $sql="INSERT INTO..." ?
<?php
$meno=MySQL_Real_Escape_String($meno);
$ulica=MySQL_Real_Escape_String($ulica);
$cislo=MySQL_Real_Escape_String($cislo);
$mesto=MySQL_Real_Escape_String($mesto);
$psc=MySQL_Real_Escape_String($psc);
$mail=MySQL_Real_Escape_String($mail);
$www=MySQL_Real_Escape_String($www);
$mobil=MySQL_Real_Escape_String($mobil);
$login=MySQL_Real_Escape_String($login);
$password=MySQL_Real_Escape_String($password);
$meno = $_POST['meno'];
$ulica = $_POST['ulica'];
$cislo = $_POST['cislo'];
$mesto = $_POST['mesto'];
$psc = $_POST['psc'];
$mail = $_POST['mail'];
$www = $_POST['www'];
$mobil = $_POST['mobil'];
$login = $_POST['login'];
$password = $_POST['password'];
$sql="INSERT INTO owners(meno, ulica, cislo, mesto, psc, mail, www, mobil, login, password) VALUES('$meno', '$ulica', '$cislo', '$mesto', '$psc', '$mail', '$www', '$mobil', '$login', '$password')";
$query=MySQL_Query($sql);
if($sql){
echo "Registrácia prebehla v poriadku. Teraz sa môžete <a href=\"../prihlasenie.php\">prihlásiť</a><br>";
} else {
echo "Údaje sa nepodarilo vložit! Prosim skuste znova pozorne vyplnit formular.<br><br>";
echo "<span style='color:red'>".MySQL_Error()."</span><br>";
}
mysql_close();
?>
Len by som chcel, aby mi to nevypisovalo v AJ, ale v slovencine - Vami zadane meno uz pouziva iny uzivatel, prosim zvolte si ine.
S tym "if($result)" to vobec nefunguje, funguje to s "if($sql)"
A to escapovanie mam mat tu, alebo tesne pred $sql="INSERT INTO..." ?
<?php
$meno=MySQL_Real_Escape_String($meno);
$ulica=MySQL_Real_Escape_String($ulica);
$cislo=MySQL_Real_Escape_String($cislo);
$mesto=MySQL_Real_Escape_String($mesto);
$psc=MySQL_Real_Escape_String($psc);
$mail=MySQL_Real_Escape_String($mail);
$www=MySQL_Real_Escape_String($www);
$mobil=MySQL_Real_Escape_String($mobil);
$login=MySQL_Real_Escape_String($login);
$password=MySQL_Real_Escape_String($password);
$meno = $_POST['meno'];
$ulica = $_POST['ulica'];
$cislo = $_POST['cislo'];
$mesto = $_POST['mesto'];
$psc = $_POST['psc'];
$mail = $_POST['mail'];
$www = $_POST['www'];
$mobil = $_POST['mobil'];
$login = $_POST['login'];
$password = $_POST['password'];
$sql="INSERT INTO owners(meno, ulica, cislo, mesto, psc, mail, www, mobil, login, password) VALUES('$meno', '$ulica', '$cislo', '$mesto', '$psc', '$mail', '$www', '$mobil', '$login', '$password')";
$query=MySQL_Query($sql);
if($sql){
echo "Registrácia prebehla v poriadku. Teraz sa môžete <a href=\"../prihlasenie.php\">prihlásiť</a><br>";
} else {
echo "Údaje sa nepodarilo vložit! Prosim skuste znova pozorne vyplnit formular.<br><br>";
echo "<span style='color:red'>".MySQL_Error()."</span><br>";
}
mysql_close();
?>
- CZechBoY
- Master Level 9.5
- Příspěvky: 8813
- Registrován: srpen 08
- Bydliště: Brno
- Pohlaví:
- Stav:
Offline
- Kontakt:
Re: Nefunkcny kod na vkladanie dat do databazy
s tebou to asi nepude jinak než ty kody měnit sám :(
PHP píše:<?php
$meno = $_POST['meno'];
$ulica = $_POST['ulica'];
$cislo = $_POST['cislo'];
$mesto = $_POST['mesto'];
$psc = $_POST['psc'];
$mail = $_POST['mail'];
$www = $_POST['www'];
$mobil = $_POST['mobil'];
$login = $_POST['login'];
$password = $_POST['password'];
$meno=MySQL_Real_Escape_String($meno);
$ulica=MySQL_Real_Escape_String($ulica);
$cislo=MySQL_Real_Escape_String($cislo);
$mesto=MySQL_Real_Escape_String($mesto);
$psc=MySQL_Real_Escape_String($psc);
$mail=MySQL_Real_Escape_String($mail);
$www=MySQL_Real_Escape_String($www);
$mobil=MySQL_Real_Escape_String($mobil);
$login=MySQL_Real_Escape_String($login);
$password=MySQL_Real_Escape_String($password);
$sql="INSERT INTO owners(meno, ulica, cislo, mesto, psc, mail, www, mobil, login, password) VALUES('$meno', '$ulica', '$cislo', '$mesto', '$psc', '$mail', '$www', '$mobil', '$login', '$password')";
$query=MySQL_Query($sql);
if($query){
echo "Registrácia prebehla v poriadku. Teraz sa môžete <a href=\"../prihlasenie.php\">prihlásiť</a><br>";
}
elseif(mysql_errno()==1062){
echo "Uživatelské jméno ".htmlentities(StripSlashes($meno))." je již používáno, zvolte prosím jiné<br>".mysql_error();
}
else {
echo "Údaje sa nepodarilo vložit! Prosim skuste znova pozorne vyplnit formular.<br><br>";
echo "<span style='color:red'>".MySQL_Error()."</span><br>";
}
mysql_close();
?>
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
Zpět na “Programování a tvorba webu”
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 7 hostů