Ahojte všichni cca
před týdnem jsem dokončil php tutorialy, v 5. dílu byl db.php tak jsem si ho
stáhnul a chtěl ho použít pro login formu ale když napíšu
Db::connect('mysql.hostinger.cz', 'ners_db', 'u483056427_net, 'aheslo:-P') tak
mi to vypíše
"Warning: PDO::__construct(): php_network_getaddresses: getaddrinfo failed:
Po�adovan� n�zev je platn�, ale nebyla nalezena ��dn� data
po�adovan�ho typu. in C:\xampp\htdocs\nettest\Db.php on line 48"
Fatal error: in C:\xampp\htdocs\nettest\Db.php on line 48" jsem z toho
ztracený..
ani pomocí localhostu to nejde, zobrazí mi to stránku registrace.php bez
problému ale jak dám registrovat vypíše to samé co předtím https://ctrlv.cz/1drk
tohle je na 60 řádku v db.php $statement =
self::$connection->prepare($query);
jop napsal, když nejsem v databazi 20 minut odhlásí mě to samo a chce to po
mě heslo a vždy funguje.
Nesmies sa vzdavat. Ak budes hladat LEN nove/funkcne riesenia, vela sa toho
nenaucis.
Skus radsej prist na to, preco to nejde ... to Ti da viac, nez najst na nete
funkcne riesenie bez toho, aby si tomu rozumel.
Ten riadok s DSN zmen na tu ip adresu co mas v control paneli. Tam mas
vlastne napisane ze sa mas pripajat cez tu adresu.
$dsn = "mysql:host=31.170.164.42;dbname=ners_db";
Ta hlaska
Call to member function prepare() on null
je vlastne chyba ze sa snazis robit dotazy a nie si pripojeny na databazu.
Pripojenie na databazu by mal byt objekt a nie null.
Dalsie nedorozumenie je ze ta odhlasuje kazdych 20 minut. Odhlasuje ta z
uzivatelskeho rozhrania pri necinnosti 20 minut. Tvojho php scriptu sa to
netyka, pretoze on sa prihlasuje pri kazdom volani programu.
Urcite sa nevzdavaj. Programovanie nie je o zopakovani riesenia problemu ale
o opakovanom rieseni problemov.
To znamena ze $dsn sa vytvori v triede Db v metode connect. Tato metoda
potrebuje 4 parametre: host, databasu, usera a heslo. Takze tie tvoje riadky v
tvojom registrace.php zmen takto:
Tie posledne dve zatvorky je prazdne heslo, teda ziadne heslo. Je dolezite
ked volas nejaku metodu triedu aby si si pozrel ake parametre potrebuje a dal mu
ich v spravnom poradi a spravnej forme.
znamena ze sa pripajas na dobry server kde bezi SQL a sql ti odpoveda
chybovou hlaskou. Teraz si uz len skontroluj ze mas spravnu databazu, uzivatela
a heslo.
Všechno mám dobře.. vše co jste mi radili běží ale na hostingu
webzdarma.cz ...... ale když chci to dát na hostinger.cz tak prostě to nejde,
hledal jsem u nich v nápovědě a mají tam napsané "
Mohu se připojit k MySQL z mého domácího počítače?
Ne. Vzdálené připojení k MySQL je zakázáno z bezpečnostních a
výkonnových důvodů. Můžete se připojit k MySQL pomocí vašich PHP
skriptů, které jsou hostovány na našich serverch.
"
a prostě nevím jak to myslí... na webzdarma mi to funguje ale na hostingru
ne.
a ještě tam mají napsané "
Jaký host name použít pro MySQL?
Vstupte do ovládacího panelu a klikněte na ikonu "MySQL". Váš MySQL
hostname bude uveden zde.
Důležité! Nikdy nepoužívejte "localhost" jako MySQL hostname. Jinak
budete mít odepřen přístup.
"
nechci to mít na webzdarma.cz ty data protože mám zaplacenej hosting u
hostingeru.cz i domenu tak doufám že to půjde.
A máš na tom hostingu databázy povolené pripájať sa na ňu externe?
Môže byť že niektorí poskytovatelia majú také nastavenie, že na ich
databázy sa dá pripojiť len z ich serverov (nie z iných a nie z
localhost-u).
Len tak ma napadlo, ja sa napr. u endory neviem dostať na ftp kým si
nezmenim povolenú IP, tak možno tam je niečo podobné
$connect = mysql_connect("mysql.hostinger.cz", "u483056427_jojo", "123456789") ordie("Couldn't connect to the database!");
mysql_select_db("login1") ordie("Couldn't find database");
zkusil jsem si ještě v noci nahodit jiný login, ale i tak to nejde, musí
být určitě chyba na straně hostingu.
ale když jsem oba loginy nahodil na webzdarma jede to ..
Och chlape, ale tvoja databáza sa nevolá login1 ale
u483056427_jojo, teda rovnako ako užívateľ zdá sa. To
login1 je už tabuľka v danej databáze.
Na pripojenie z tvojho skriptu na tú databázu máš použiť tú ip, máš
to napísané vyššie v tom obrázku čo si posielal v predchádzajúcich
komentároch. klikaj tu
A prečo zas používaš mysql_connect?! Ten je zastaralý a nemá sa
používať, preto ti píše chybu. Používaj prosím PDO (teda wrapper Db.php
z NERS-u). Mám taký pocit že skúšaš veci ktorým zatiaľ nerozumieš a
neprešiel si tutoriály poctivo, len stiahol kód.
Tak ja ti to zhrniem:
// pridanie databázového wrapperu do tvojej aplikácierequire('Db.php');
// nastavenie pripojenia na tvoju databázu u hostingeru$host = "31.170.164.42"; // mal by si použiť tú ip čo som čítal, ak funguje mysql.hostinger.cz tak budiž$database = "u483056427_jojo"; // názov tvojej databázy, zmeň si tak ako si si vytvoril db$user = "u483056427_jojo"; // užívateľské meno pod ktorým sa prihlasuješ na databázu$password = "123456789"; // heslo očividne// pripojenie na databázu pomocou toho Db wrappera
Db::connect($host, $database, $user, $password);
A nezabudni že si musíš povoliť pripojenie na databázu z tvojej ip! www.mojeip.cz
Děkuju moc! Mám to. Tutoriál jsem si četl poctivě.. jenom jsem nebyl na
orientačním programováním v php.. přisahám že jsem to dělal poctivě
jenom jsem to špatně
pochopil. A ještě jednou děkuju moc
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.