function iduzivatele ($prezdivka, $heslo, $link)
function iduzivatele
|
26.11.2004 17:57
Lukáš Kokoška
|
Vetsinou pouzivam takto :
function iduzivatele ($prezdivka, $heslo)
{
global $link;
...
protoze pokud mam vicero volani teto fce, tak nemusim volat pokazde identifikator spojeni s db |
|
|
Je to tak
|
26.11.2004 18:10
Petr Zajíc
|
Tak tak. V dalším díle, který je už napsaný, mám z výukových důvodů podobně neoptimalizované funkce
email_z_id a heslo_z_id (a myslím, že ještě jednu). Plánuju v jednom díle ke konci to všechno zoptimalizovat. Obětoval jsem korektnost ve prospěch názornosti.
Vlastně nejlepší by bylo mít ten link jako úplně globální a tvořit ho jednou za životní cyklus. Dokonce teoreticky není vůbec potřeba, protože když se nespecifikuje, měl by se script pokusit použít existující připojení.
Bohužel jak víme, PHP automaticky nezpřístupňuje globální proměnné v těle funkcí, takže se musí použít ono klíčové slovo global. |
|
|
opravte to
|
27.11.2004 17:16
mrzout
|
Proboha osetrete tam vstupy nebo alespon obrovskejma pismenama napiste, ze je to kvuli bezpecnosti pro ostry provoz nepouzitelny.
KAZDY kdo zacina ted pujde a zkopiruje si to do sveho projektu, myslete na to! |
|
|
Re: opravte to
|
28.11.2004 12:21
Petr Zajíc
|
Co máte na mysli? |
|
|
Re: opravte to
|
30.11.2004 01:21
Jan Houštěk
|
P. Vraný měl patrně na mysli fenomén jménem SQL injection. Fakt by se ty vstupy měly nějakým alespon základním zpusobem sanitizovat. |
|
|
Re: opravte to
|
30.11.2004 13:22
Petr Zajíc
|
Já ten fenomén "SQL injection" znám, ale nemyslím si, že by dalo nabourat do databáze pomocí zde zveřejněných skriptů. V PHP došlo od doby, kdy to byl diskutovaný problém, již k mnoha bezpečnostním opatřením.
Tak například jako výchozí chování je od jisté doby v PHP zapnuta direktiva magic_quotes_gpc, která působí, že všechny proměnné získané pomocí metod get, post nebo cookie obsahující jednoduchou uvozovku, dvojitou uvozovku nebo zpětné lomítko automaticky oescapovány. Tato direktiva je zapnuta i zde na serveru.
Jako další bezpečnostní prvek by se měl vzít v úvahu fakt, že příkaz mysql_query provede vždy jen jeden dotaz, takže triky typu předání středníku a nějakého dalšího textu do dynamicky sestavovaného dotazu už taky nefungují.
Kombinací uvdených pravidel je SQL injection sama o sobě prakticky vyloučena. Pokud jste ovšem nějakou bezpečnostní chybu objevili, sem s ní. |
|
|
Re: opravte to
|
30.11.2004 23:05
Jan Houštěk
|
Spolehat se na nejakou vlastnost PHP je cesta do pekel. A o "bezpecnostnich" vlastnostech to plati dvojnasob.
Navic i v pripade, ze by pouzivany engine nebyl tak strasny, jako je, tak by nejaka zakladni specifikace uzivatelskych vstupu a jejich osetreni dle teto specifikace mela patrit k naprosto rutinnim zalezitostem. |
|
|
Re: opravte to
|
1.12.2004 22:23
Petr Zajíc
|
Dam stovku za prvni funkcni e-mailem zaslany postup, jak na soucasne verzi spachat SQL injection. Jasne? |
|
|
Re: opravte to
|
2.12.2004 09:22
Jan Houštěk
|
Stovka je naprosto smesna motivace. Tezko tim nekoho primejes, aby ti zaslal exploit a odhalil tak zatim nezname zranitelnosti enginu :) |
|
|
Re: opravte to
|
19.7.2006 00:16
Aleš Hakl
|
Problem PHP je ten, ze nespolehat na tuhle featuru moc rozumne nelze. (proste to vypnout v php.ini a kaslat na to me neprijde rozumne, protoze je to defaultne zaple) |
|
|
Dotaz
|
28.11.2004 13:35
mysql_php
|
Mohl bych poprosit autara aby mi mi napsal link kde se da stahnout kompletni adresar vaseho projektu i s databasi nevim jestli jsem ji vytvoril dobre. Dekuji |
|
|
Re: Dotaz
|
28.11.2004 14:17
Petr Zajíc
|
Zdravím,
kouzlo tohoto projektu je v tom, že to vzniká "za pochodu". Takže na konci každého dílu je odkaz na stažení zipu obsahujícího aktuální verzi "projektu". Příkazy pro databázi budu zveřejňovat tak, jak se budou přidávat tabulky. Momentálně je tam jedna tabulka, její definice byla v minulém díle.
http://www.linuxsoft.cz/article.php?id_article=538
Na konec to asi pochopitelně stáhneme do jednoho souboru (bez dat). |
|
|
nastaveni SQL
|
18.2.2006 14:48
Andrej Kurochenko
|
Dobrý den,
Velice mě zaujal váš serial o php, čtu jej se zaujetím a zkouším co jsem se naučil. Ale jaksi jsem se zasekl u registrace ( 71 članek ) Pro hosting používám Webzdarma a nevim jak tam nastavit SQL. Vytvořiljsem tabulku a i přesto mi to piše chyby. Mohl byste mi poradit prosím.
Stači zajit na: http://www.heechee.wz.cz/php/index.php a tam poklikat na odkazy.
Byl bych moc vděčny za vaší odpověď a radu kde dělám chybu. Předem děkuji. |
|
|
Re: nastaveni SQL
|
18.2.2006 14:55
Ondřej Čečák
|
Vsak to obsahuje chybova hlaska:
mysql_connect(): Unknown MySQL Server Host 'SQL_HOST' (1) in /3w/wz.cz/h/heechee/php/registrace.php on line 32
Nastavte spravne parametry pro pripojeni k databazi.
|
|
|
Re: nastaveni SQL
|
18.2.2006 17:38
Andrej Kurochenko
|
mohlo by to vypadat takto? // tělo skriptu - nejprve si vytvoříme odkaz na databázi
require("config.php");
$link=mysql_connect ($host, $user, $password);
mysql_select_db($database);
takto by vypadal config.php: <?php
$host = "webzdarma";
$user ="Franta";
$password ="heslo";
$database ="webzdarma";
?> Děkuji za odpověď |
|
|
znovu nevim
|
18.2.2006 18:40
Andrej Kurochenko
|
hned ci jsem vyřešil jeden problem, je tu další.
Tentokrat jsem si to přečetl několikrát, ale pořad si nevím rady.
Jedna se o takovouhle chybu: Fatal error: Call to undefined function: iduzivatele() in /3w/wz.cz/h/heechee/php/index.php on line 9 Opravdu nevím co tam mam definovat.Děkuji za případnou odpověď |
|
|
Re: znovu nevim
|
18.2.2006 19:28
o.k.
|
Opet vam to ukazuje ta chybova hlaska.
V tom skriptu nekde (konkretne na radku 9) volate funkci iduzivatele() a asi ji nikde nemate nadefinovanou. Takze je zapotrebi ji nejdrive nadefinovat. |
|
|
Re: znovu nevim
|
19.2.2006 22:42
Petr Zajíc
|
Jinak - já jsem to psal postupně. Takže jak seriál pokračoval, tak byl portál čím dál tím "kompletnější" (ke kompletnímu portálu to celé má pochopitelně ještě dost daleko) a pro studium kódu je tedy lepší stahovat spíše poslední verze portálu. |
|
|
viac sesssion hodnot
|
18.7.2006 23:46
mattonik
|
Ako mozem ukladat a kontrolovat viac hodnot session? Dakujem |
|
|
Re: viac sesssion hodnot
|
18.7.2006 23:53
mattonik
|
Problem sa mi uz podarilo vyriesit, mal som to zle ozatvorkovane |
|
|
Parada
|
24.10.2006 22:38
Peter Rožnay
|
Zdravím autora tohto seriálu.
Píšem čiste ako totálny laik a zlený amatér... tento seriál ma tak nadchol, že aj ked prídem z práce a musím sa venovať svojej 2 ročnej dcérke, tak večer, keď už konečne zaspí posadím ženu k TV (dam jej košom) a vrhám sa na váš serál o PHP. Momentálne som skončil 71. kapitolu a vytešujem sa z mojho "provizorného" portálu ako malé dieťa. Už mi funguje registrácia a aj prihlásenie, ešte som si to trosku vylepšil (po prihlásení schovám položku v menu registrácia)... je to super seriál a aj napriek tomu, že vznikol pred viac ako 2 rokmi som rad že som ho našiel... už sa teším na ďalšie a ďalšie časti.
Štve ma len jedna vec... že sm zatiaľ nenabral odvahu a nenainštaloval som si linux. Ale už to vyzerá tak, že sa k tomu predsa len dostanem :) zatial len cez wmvare... Na firemnom notebooku by mi to asi neprešlo, hehehe.
Nuž, ďakujem za dobrý seriál...
PS: mne tieto príklady fungujú na prvý pokus, nemám s tým žiadne problémy. |
|
|
Re: Parada
|
25.10.2006 15:52
Petr Zajíc
|
Mno, konečně to taky někomu funguje ;-)) Většina lidí si to moc dobře nepřečte a pak se diví. Jen tak dál, vydržte a stane se z Vás programátor ;-))) |
|
|
přihlášení
|
11.11.2006 19:50
Pavel Jastrzembski
|
Tak jsem konečně vyřešil pár problémů s registraci... a dal jsem se na přihlašeni.... nevim proč ale stale mi to píše, že jmeno a/nebo heslo nesouhlasí viz http://pablotest.ic.cz/index.php?clanek=login/prihlaseni (musite se nejdřive registrovat)
|
|
|
prezivka v strankach
|
12.1.2008 16:10
rudhas gasper
|
Pomocou čoho mam zabespečit aby prihlaseny videl svoju prezyvku na všetkych strankach ktore vyžaduju registraciu.Inač som velmi potešeny stimto serialom,,Prosim pište mi na rudhas@post.sk
alebo reagujte dakujem. |
|
|
Tak už jsem se také dokousal až sem :)
|
3.2.2008 10:09
Jan 'Jan16' Sixta
|
Tak už jsem se taky dokousal k článku 71. Váš tutoriál se mi moc líbí. PHPčko se učím už asi týden a už mám svůj vlastní gbook. Určitě zkusím i nějaký takovýhle portál. Jestli chcete tak se na ten můj první výtvor podívejte sem:
www.pas-prog.ic.cz/php_testy/gbook.php
JE to sice hrozná blbost, ale mám z toho radost, protože to funguje a kupodivu je to i validní :)
Děkuji za skvělý tutoriál o php!
Ahoj, Honza |
|
|
Problem s prihlasovanim
|
22.4.2008 21:48
Marek Mucha
|
Zdravím,
jakožto začátečník v PHP jsem začal studovat váš seriál a nyní vylepšuji svoje stránky tak, aby byly dynamické a vše se "odehrávalo" v souboru index.php. Nicméně potřebuji mít zaheslovanou určitou část webu, avšak při přihlašování (použit skript func.php a prihlaseni.php obdobne jako v serialu) to píše chybu:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/free/ic.cz/m/manasweb/root/www/test/func.php on line 27
Netuším co a jak... mohl by mi prosím někdo poradit jak to udělat aby mi přihlašování fungovalo? Testuju jak na Linuxu tak na Win a i na hostingu je tato hláška...
Děkuji |
|
|
Warning
|
3.6.2008 17:18
Vladimir Macko
|
Ja mam ten isty problem ako Marek Mucha,
tiez mi ukazuje tuto chybu
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /3w/xf.cz/k/knr-presov/3/func.php on line 23
Prosim o pomoc |
|
|
value
|
13.5.2010 07:01
Robert Jedek
|
Dobrý den, nevíte někdo jak je možné,že se mi ve formuláři na přihlášení objevuje jméno a heslo pro přihlášení k databázi? |
|
|
par chyb
|
13.3.2012 20:12
Jakub Šilar
|
Vim ze tento serial je uz hosne stary ale podle me je pouzivan nejvice. V tomto prikladu musim priznat ze sem mel opravdu hodne chyb (chyby mi nevadí nejprve se je snazim opravit sam a kdyz se mi nedari kouknu do diskuze). Jelikoz chyby, které sem mel, me dneska hodne nastvali napisu je sem a pro budouci ctenare dam k dispozici, ale nejsem dobry programator v podstate mam znalosti nacerpane z predchozich dílů tak se spise snazim nektere chyby ocurat nez vyresit.
Po nahrani skriptu na localhost se mi v indexu zobrazovala chyba ze $_POST["heslo/prezdivka"] neni definovaná to jsem vyresil(ocural) tak ze kdyz $_POST["heslo/prezdivka"] neni at se doplni prazdnym retezcem, ale to se mi pak pokazde zobrazovalo ze Uživatelské jméno a/nebo heslo nesouhlasí a to sem nasledne vyresil (samozrejme ve skriptu prihlaseni.php) ze kdyz je $_POST["heslo/prezdivka"] prazdny retezec at se neudela nic. Byl bych rad kdyby mi nekdo poradil lepsi reseni protoze tohle se mi zda velice lamacke.
Napsal sem to jenom proto, ze by nekdo mohl mit stejny problem jako ja. |
|
|