Autor | Zpráva | ||
---|---|---|---|
cesss Profil * |
#1 · Zasláno: 28. 6. 2012, 11:59:30 · Upravil/a: cesss
Ahoj všem,
mám docela velký problém. Dělal jsem registrační formulář, vše hotovo, i nahrávání avataru apod... a teď jsem se dostal k tomu nejdůležitějšímu - samotné registraci. Takže jsem si vytvořil na localhostu databázi (mysql) a pracoval jsem na připojení. Mám hlavičku webu která se includuje do webu samotného... Hlavička začíná <?php session_start(); require_once ('../mysql_spojit.php'); Soubor mysql_spojit obsahuje informace o připojení k databázi a samotné připojení. Nachází se v nadřazeném adresáři webu Když mám adresářovou strukturu C:\dev\www tak ve složce www mám hlavicka.php a v dev mám složku www a mysql_spojit.php. Obsah souboru mysql_spojit.php <?php DEFINE ('DB_USER', 'root'); DEFINE ('DB_PASS', 'xxx'); DEFINE ('DB_HOST', 'localhost'); DEFINE ('DB_DB', 'xxx'); $dbc = mysql_connect ('DB_HOST', 'DB_USER', 'DB_PASS'); if (!$dbc) { echo '<p><font color="red"><b>Chyba při připojení k databázi</b><br />'.mysql_error()'</font></p>'; } else { mysql_select_db ('DB_DB'); } ?> Jenže když půjdu na stránku registrace, která začíná <?php $titul_stranky = "Registrace"; // title v html $current = "registrovat"; // aby věděl, na které položce v menu se nachází @include_once ('zahlavi.php'); @include_once ('menu_intro.php'); ?> <div id="container"> ... tak se objeví jen bílá obrazovka a když dám zobrazit zdrojový kód, NIC tam není! Netuším, kde může být problém. Zkoušel jsem dát mysql_spojit.php do rootu (ne do nadřazeného adresáře), ale to samé, když require_once dám pryč, vše funguje jak má. Nevíte, co s tím je? Díky moc! ¨Vyřešeno Tím, že jsem měl @include_once ('zahlavi.php'); tak jsem zrušil zobrazování chyb logicky i pro to mysql_spojit.php ... V tom mysql_spojit.php chybí tečka při spojování toho echa... v tom byla ta chyba, která se ani nezobrazovala. Jenže jsem měl nový problém: Psalo to: Chyba při připojení k databázi Unknown MySQL server host 'DB_HOST' (11001) Já vůl jsem ty konstanty dal do apostrofů :D Hotovo Ale pokud dělám něco špatně, např. kvůli bezpečnosti nebo tak, určitě mi prosím tady napište, budu to tu sledovat... S PHP a SQL dělám prvně... díky! |
||
Alphard Profil |
#2 · Zasláno: 28. 6. 2012, 12:15:30
„Ale pokud dělám něco špatně, např. kvůli bezpečnosti nebo tak, určitě mi prosím tady napište“
Ty @ jsou už z principu špatně, chyby se nepotlačují! Na produkčním serveru se jen změní přímý výpis na logování. Podobně mysql_error() se nesmí použít na ostrém webu. |
||
cesss Profil * |
#3 · Zasláno: 28. 6. 2012, 13:01:39
Nemusíš na mě křičet... říkám že s PHP a SQL dělám prvně.
Proč nesmím mysql_error() používat na ostrém webu? |
||
Šéva Profil |
#4 · Zasláno: 28. 6. 2012, 13:09:45
kvuli napadeni DB... bude ti to pak vypisovat chybove hlasky a utocnik toho muze lehce zneuzit
|
||
cesss Profil * |
#5 · Zasláno: 28. 6. 2012, 13:21:05
Díky za odpověď
Můžu logovat nějak nejen php chyby ale i mysql chyby? |
||
Šéva Profil |
#6 · Zasláno: 28. 6. 2012, 13:25:46
jestli se nepletu,tak když si zapnes log_error tak to zapisuje snad všechny chyby co nastanou a někdy se dozvíš i více než z display_error
|
||
cesss Profil * |
#7 · Zasláno: 28. 6. 2012, 13:45:32 · Upravil/a: cesss
Dobře, mockrát děkuju :)
.htaccess php_flag display_errors off php_flag log_errors on |
||
Alphard Profil |
#8 · Zasláno: 28. 6. 2012, 14:10:13
cesss:
„Nemusíš na mě křičet...“ Omlouvám se, vy jste na problém nakonec přišel sám, to je naopak vynikající. Ale často jsou zde dotazy, kdy je @ pomale na každém řádku, popis chyby "nefunguje to" a co s tím. Člověk časem začne striktně říkat takle ne, aniž bych chtěl křičet. |
||
cesss Profil * |
#9 · Zasláno: 28. 6. 2012, 14:24:28
Chápu, to už je "riziko povolání" :D V pohodě :)
Udělal jsem taky chybu, že jsem to nezkusil bez těch @... Díky |
||
Časová prodleva: 12 let
|
0