Diskuze: Nejde mi zapsat PHP proměnná do Mysql Datábáze
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 15 zpráv z 15.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Jsi si jistý, že tam místo ID máš dosadit "NULL"? K čemu by pak to ID bylo, kdyby všechny záznamy měly ID null? Nevím, jak v MySQL, ale u klasického SQL se to ID v INSERT dotazu ani neuvádí...
A vrací to nějaký error? Jinak bych zkusil dát nějakou hodnotu do toho id, pokud to máš jako primární klíč tak ukládat to s null nedává moc smysl, dále bych vyhodil mysqli a přečetl si tady na webu jako pracovat s PDO a začal ho používat.
Hází to errory jen v phpmyadmin nolovy řádek se vrátil.PDO jsem zkoušel tam to samé.
ID do dotazu nevyplňuj jen v případě že más v phpmyadmin zaškrtunté AUTO_INCREMENT u id. Ten se postará že každý záznam dostane (pořadové) číslo.
Ahoj, vyzkoušej tohle a napiš, k čemu jsi došel. Použiji poznámky Michal Štěpánek a Zdeněk Srb.
SQL Injection můžu vyřešit před publikaci webu na server.Umí **var_dump() ** i předělat příkaz na správný?
No, na to bych nespoléhal. Až se ti projekt rozroste, nebudeš ani vědět, kde dotazy máš.
Var_dump() je debuggovací funkce. Umí jen vypisovat obsahy proměnných a nějaké doplňující informace k tomu.
dobře napsal ti zprávu co mi ten var_dump() udělal.
http://php.net/…e-string.php
Zabezpeceni proti sql injekci
$query = "... WHERE string='%s' AND digit=%d";
$query = sprintf($query, mysqli_real_escape_string($value1), $value2);
Nebo se da pouzit vsprintf pro array.
Jan Straka - Tomu, co pises vubec nerozumim. Pis celou vetou, nevynechavej pro tebe jasne formulace. Zkusim popsat jinymi slovy, co ti napsali uz oba Michalove.
Upravovat dotazy až před publikací na server je ta nejhorší možná varianta. Programuj správně hned "napoprvé" a nemusíš pak nic upravovat, abys to ochránil proti možným útokům. Při publikaci si totiž nemusíš vzpomenout na všechny vložené příkazy a až ti někdo tvou práci zničí, kvůli jednomu zapomenutému "neupravenému" dotazu, budeš se tlouct do hlavy a rvát si vlasy za zbytečně ztracený čas, protože jsi to nenapsal správně rovnou...
google = mysqli php query example
php "..." string, \" nebo ', "...\"...'..."
php '...' string, " nebo \', '..."...\'...'
"..."..." - tohle je nesmysl, protoze druha uvozovka ukoncuje string a ta cast
za ni bude oznacena za error
sql "...sloupec
..." zpetna uvozovka, u klavesy Q nebo 1
sql string "...'text'..."
sql cislo "...123..."
To mas marne. Ucitel jim ve skole ukazuje kody co nejvic zjednodusene. Coz
pak vede k tomu, ze je novacku pln forum a ptaji se na uplne zaklady, ktera ta
zdanlive slozitejsi konstrukce resi.
Treba u nas do dneska neakceptovali utf kodovani pro sql tabulky. Stale ukladaji
ve w1250. Nabizel jsem jim, ze jim programy upravim pro utf tabulky. Odmitly.
string(191) "INSERT INTO accounts ( username, password, bgcolor", email) VALUES ( "admin", "8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918", "#9112b7", "straka.jan5@seznam.cz") tohle mi to udělalo když jsem použil var_dump() na escapováný uživatelský input
var_dump neni echo a prohlizec - zobrazit zdrojovy kod.
Nicmene, ten sql dotaz ma temer vsechny uvozovky spatne, si myslim. Jak jsem
psal, u sloupcu tabulek se pouzivaji zpetne jednoduche. Ty tam mas dvojite. To
jsem nikdy nezkousel, ale domnivam se, ze to nebude fungovat. Zkus si najit par
prikladu googlem.
google = sql query example
Zobrazeno 15 zpráv z 15.