Autor | Zpráva | ||
---|---|---|---|
tonda Profil * |
Našel jsem toho více a napsal bych to asi takhle-
$spojeni = mysql_connect("localhost","uzivatel","heslo") or die (" <p>Spatne zadane udaje (asi heslo, server nebo jmeno.) v admin/db.php </p> "); mysql_select_db("jmeno_databaze", $spojeni) or die ('Spatne zadana databaze v admin/db.php - ' . mysql_error()); mysql_query("SET NAMES utf8"); - Děkuji za odpověď. |
||
SwimX Profil |
#2 · Zasláno: 5. 11. 2009, 17:48:57
tonda:
pro tvé účely doma v pořádku, na servr bych rozhodně nedával hlášky že je špatně heslo, nebo todle tamto a už vůbec ne kde. Na servru prostě ERROR_REPORTING(0); a všechny chybové hlášky -> Vyskytl se problém, kontaktujte správce sítě... |
||
tonda Profil * |
#3 · Zasláno: 5. 11. 2009, 18:34:04
Děkuji, ale můžeš mi napsat jak to má tedy správně vypadat pro připojení na server jako příklad nebo vzor?
|
||
Saitek192 Profil |
#4 · Zasláno: 5. 11. 2009, 18:48:25
$connect = mysql_connect("localhost","jmeno","heslo") or die (mysql_error());
|
||
Joker Profil |
#5 · Zasláno: 5. 11. 2009, 18:59:21
Saitek192: Viz SwimX, běžný uživatel nepotřebuje vědět jaká chyba nastala. "Na hraní" stačí to co tam tonda má, pro nějaké reálné nasazení něco jako "Nastala chyba, na odstranění se pracuje. Pokud problémy přetrvají, ozvěte se na *e-mail*."
|
||
Majkl578 Profil |
#6 · Zasláno: 5. 11. 2009, 19:07:36
|
||
tonda Profil * |
#7 · Zasláno: 6. 11. 2009, 12:20:52
Děkuji Vám za snahu ukázat mi optimální připojením k databázi.T
|
||
tonda Profil * |
#8 · Zasláno: 6. 11. 2009, 12:37:55
takže by to mělo být asi takhle
- $spojeni = mysql_connect("localhost","uzivatel","heslo") or die (mysql_error()); mysql_select_db("jmeno_databaze", $spojeni) or die (mysql_error()); mysql_query("SET NAMES utf8"); - |
||
Joker Profil |
#9 · Zasláno: 6. 11. 2009, 13:51:42
tonda:
Na hraní a testování ano, pro skutečné nasazení ne. Viz výše. |
||
tonda Profil * |
#10 · Zasláno: 6. 11. 2009, 17:18:42
to Joker-Jsi mě překvapil domníval jsem se je to pro nasazení do provozu né pro test.Můžeš mi tedy napsat příklad na ostrý provoz.Děkuji,
|
||
denCo Profil |
#11 · Zasláno: 6. 11. 2009, 17:22:27 · Upravil/a: denCo
osobne si myslím že to máš úplne jedno, len nevipisuj chybové hlášky typu "zlé heslo v adresáry blablabla.php" a pod.
ja používam tieto dva $myhostName=""; $mydbName=""; $myuserName=""; $myPW=""; $connection = mysql_connect($myhostName,$myuserName,$myPW); mysql_select_db($mydbName,$connection); alebo tento ###MYSQL HOST NAME $myhostName=""; ###MYSQL DATABASE $mydbName=""; ###MYSQL USER NAME $myuserName=""; ###MYSQL PASSWORD $myPW=""; $db=mysql_connect($myhostName,$myuserName,$myPW) or die("Bohužel se nepodařílo připojit k MYSQL databázi... zkuste to prosím později."); if (!mysql_select_db($mydbName,$db)) { echo "Chyba při připojení k databázi."; exit(); } to druhé je skôr pre tých u ktorých si môžeš byť aspon trošku istý že ta nebudú chcieť poškodiť (napr. admini) |
||
Kacko Profil |
#12 · Zasláno: 6. 11. 2009, 17:28:18
Osobne bych uzivatele spis presmeroval na stranku obsahujici stejny layout a design jako zbytek webu, kde bych ho seznamil s problemem a upozornil ho, ze tento problem je v reseni.
|
||
valecekm Profil |
#13 · Zasláno: 6. 11. 2009, 19:03:26 · Upravil/a: valecekm
Kacko:
jen to trochu rozvedu ;-)... to same by melo platit nejen u samotneho spojeni s databazi, ale i u samotnych SQL dotazu...kdyby,kdyby ;-).. define("LOK_SERVER", $_SERVER['SERVER_NAME']); function Kriticka_Chyba($error_num) { Header('Location: http://'. LOK_SERVER. 'error.php?error=' . $error_num); exit; } /* . . dalsi cast php . */ @mysql_select_db($db_name) or Kriticka_Chyba(2); Samozrejmne ze kdyz je predavano neco v url, tak je treba to osetrit trosku lepe nez sem zde uvedl ;-) a pak na strance error.php vzit predane cislo z prom. $error_num a podle nej vypsat trebas hlasku z pole(odpovidajici na pozici v poli podle predaneho cisla). Taky kdyz se pouzije hezka vec @, tak se potlaci chyby vsude s cimz by se take nemelo jen tak hazet do luftu, ale melo by se to brat vazne. |
||
igamenir Profil |
#14 · Zasláno: 6. 11. 2009, 19:13:47
valecekm:
to je dobrý způsob, něco podobného jsem používal. Jen když už se přesměrovává, bylo by možná fajn přidat ještě nějaký chybový kód, třeba 503. |
||
Joker Profil |
#15 · Zasláno: 6. 11. 2009, 19:47:08
tonda:
„to Joker-Jsi mě překvapil domníval jsem se je to pro nasazení do provozu né pro test.Můžeš mi tedy napsat příklad na ostrý provoz.Děkuji,“ Ale o tom zde již dobrou čtvrthodinu hovoříme, Mlho! Viz příspěvky #2, #5 a #6... no a ty nové od #11 dál. |
||
denCo Profil |
#16 · Zasláno: 6. 11. 2009, 20:17:16
alebo jednoducho si spravit jednu stránku s chybovou hláškou a všetky chyby, ktoré sa vyskitnú presmerovať na ňu
|
||
tonda Profil * |
#17 · Zasláno: 6. 11. 2009, 21:50:13
Děkuji všem za pomoc zvláště denCo který mi napsal vzor.Joker s tím Mlho dobrej vtip ale ani do té školy bych už nemohl bo jsem překročil věk.T
|
||
valecekm Profil |
#18 · Zasláno: 6. 11. 2009, 22:18:27
denCo:
[#13] valecekm ;-) |
||
tonda Profil * |
#19 · Zasláno: 7. 11. 2009, 12:12:43
Tak že takhle asi-
$db_server="localhost"; $db_jmeno="jmeno"; $db_heslo="heslo"; $spojeni = mysql_connect($db_server,$db_jmeno,$db_heslo); @ mysql_select_db($db_databaze, $spojeni) or die ('Chyba při připojení k databázi.' . mysql_error()); mysql_query("SET NAMES utf8"); |
||
valecekm Profil |
#20 · Zasláno: 7. 11. 2009, 20:31:33
tonda:
Porad a ta sama vec. V ostrem provozu vypisovat aktualni chybu databaze je velice nerozumne a promin mi to, ale hloupe. Potencialni utocnik uvidi kde se stala chyba. Proc tam musis porad rvat mysql_error(). Zkus si nejdrive nastudovat neco o bezpecnosti, ale cti to s OTEVRENYMA OCIMA. Me to pripadne fakt jak kocourkov. Budto si znas tady strilis a nebo jsi s chapanim natom uz tak spatne kdyz ti to tu vysvetluji vsichni aporad dokola a dokola. Pokud budes jen tupe(omlouvam se zato slovo ale nic vystiznejsiho mne nenapadlo) opisovat skripty a jejich casti a lepit je dohromady, tak to nikdy nepochopis o co vlastne jde a nikdy ti to nebude fungovat tak, jak by jsi chtel, nebo aspon tak, jak by to spravne fungovat melo. Pokud opravdu nemas nic jineho na praci nez otravovat lidi, aby ti vse napsali za tebe a ty jen hongal nohama a vsechno si nechal naservirovat bez toho aniz by jsi pouzil vlastni hlavu k premysleni, tak v tom pokracuj, ale necekej ze ti nekdo s necim nekdy jeste pomuze. Omlouvam se za toto chovani vsem normalnim a sporadanej uzivatelum tohoto fora, ale tohle me uz fakt rozhodilo. |
||
tonda Profil * |
#21 · Zasláno: 7. 11. 2009, 22:03:23
Děkuji za odpověd ale tolik křiku by snad nemuselo být.
Začínám se seznamovat s databází a proto můj dotaz výše.Tak že stačilo napsat že - V ostrem provozu vypisovat aktualni chybu databaze je velice nerozumne a promin mi to, ale hloupe- je daná možnost poškození od útočníka.To chápání u mě bude už horší jak si jsi možná všiml také výše.V žádnem případě není mojí snahou někoho otravovat. |
||
valecekm Profil |
#22 · Zasláno: 8. 11. 2009, 14:25:41
tonda:
Omlouvam se tedy za ten vcerejsek. Ale jeste jednou to shrnout. V Ostrem provozu zasadne nevypisovat chyby(jekekoli, a ne jen z databaze) uzivatelovi do prohlizece. Vzdycky se je programator musi snazit potlacit tak, aby si zaprve uzivatel(utocnik) nevsiml chyby budto vubec a nebo vsiml, ale v takovem sdelini, ktere mu nebude nic platne k utoku. Tzn. Misto toho abych nechal skript dale bezet a umoznil mu vypis chyby(kdyz uz by to nijak zastavit ani neslo), tak ho radej natvrdo ukoncit i na ukor toho, ze by se vubec nezobrazilo na strance nic (ale to je az ta nejposlednejsi moznost, prikaz: break,exit() atd.). Pokud by jsi jako spravce chtel monitorovat tyto nastale chyby je moznost, kdyz je php spravne nastaveno aby tyto chyby ukladalo,a pak si je muzes nechat zobrazit.. Ale to uz je jina vec a uz si myslimm ze to rozvadim trosku do jineho tematu, tak to radej ukoncim ;-). |
||
Časová prodleva: 13 dní
|
|||
tonda Profil * |
#23 · Zasláno: 21. 11. 2009, 09:00:36
Aby byla tohle téma ucelé tak dobré vysvětlení k problému je na adrese-
http://cs.wikibooks.org/wiki/PHP_prakticky/P%C5%99ipojen%C3%AD_k_datab%C3%A1zi |
||
unlucky Profil |
#24 · Zasláno: 21. 11. 2009, 10:37:05
je zapotřebí uzavírat spojení?
|
||
Časová prodleva: 14 dní
|
|||
valecekm Profil |
#25 · Zasláno: 5. 12. 2009, 15:07:59 · Upravil/a: valecekm
unlucky:
Priste si prosim zaloz sve nove tema! Za nutnost to nepovazuji, protoze spojeni s DB za urcitou dobu samo zanikne, ale jako spravny programator by jsi mel databazi uzavrit vzdy kdyz uz se s ni nebude nic dit. Tudiz kdyz se trebas uzivatel odhlasi nebo podobne. Pokud ale spojeni s DB budes zavirat pokazdem SQL dotazu, tak to akorat budes zbytecne zatezovat. Uzavrit az tehdy, kdyz je povsem. |
||
Časová prodleva: 14 let
|
0