Nefunkcny kod na vkladanie dat do databazy

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

fili
Level 1.5
Level 1.5
Příspěvky: 102
Registrován: prosinec 11
Pohlaví: Muž
Stav:
Offline

Re: Nefunkcny kod na vkladanie dat do databazy

Příspěvekod fili » 13 úno 2012 20:16

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

Reklama
Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: srpen 08
Bydliště: Brno
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Nefunkcny kod na vkladanie dat do databazy

Příspěvekod CZechBoY » 13 úno 2012 21:52

jednoducho..
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

fili
Level 1.5
Level 1.5
Příspěvky: 102
Registrován: prosinec 11
Pohlaví: Muž
Stav:
Offline

Re: Nefunkcny kod na vkladanie dat do databazy

Příspěvekod fili » 13 úno 2012 22:07

Jednoducho??? :lol: To sa Ti povie, ked to vies, ale ako to ma presne vyzerat?

Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: srpen 08
Bydliště: Brno
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Nefunkcny kod na vkladanie dat do databazy

Příspěvekod CZechBoY » 13 úno 2012 22:08

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 ;)
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

fili
Level 1.5
Level 1.5
Příspěvky: 102
Registrován: prosinec 11
Pohlaví: Muž
Stav:
Offline

Re: Nefunkcny kod na vkladanie dat do databazy

Příspěvekod fili » 13 úno 2012 23:06

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();
?>

Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: srpen 08
Bydliště: Brno
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Nefunkcny kod na vkladanie dat do databazy

Příspěvekod CZechBoY » 14 úno 2012 16:41

eh?
to escapování proměnných až po odeslání do databáze je jaksi k ničemu :D
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

fili
Level 1.5
Level 1.5
Příspěvky: 102
Registrován: prosinec 11
Pohlaví: Muž
Stav:
Offline

Re: Nefunkcny kod na vkladanie dat do databazy

Příspěvekod fili » 14 úno 2012 21:56

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?

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.

Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: srpen 08
Bydliště: Brno
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Nefunkcny kod na vkladanie dat do databazy

Příspěvekod CZechBoY » 14 úno 2012 22:45

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é :D

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

fili
Level 1.5
Level 1.5
Příspěvky: 102
Registrován: prosinec 11
Pohlaví: Muž
Stav:
Offline

Re: Nefunkcny kod na vkladanie dat do databazy

Příspěvekod fili » 15 úno 2012 09:18

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.

Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: srpen 08
Bydliště: Brno
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Nefunkcny kod na vkladanie dat do databazy

Příspěvekod CZechBoY » 15 úno 2012 10:43

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
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

fili
Level 1.5
Level 1.5
Příspěvky: 102
Registrován: prosinec 11
Pohlaví: Muž
Stav:
Offline

Re: Nefunkcny kod na vkladanie dat do databazy

Příspěvekod fili » 15 úno 2012 23:20

"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();
?>

Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: srpen 08
Bydliště: Brno
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Nefunkcny kod na vkladanie dat do databazy

Příspěvekod CZechBoY » 15 úno 2012 23:31

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


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 6 hostů