Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Jan Lupčík
Tvůrce
Avatar
Jan Lupčík:7.8.2014 16:59

Ahoj,
zrovna dělám registraci na své webovky. Jenže pokud se chci zaregistrovat, tak mi to napíše, že nemám vyplněna všechna pole (viz. kód). Při tom jsem je všechny vyplnil. Vím, že mám chybu v kódě, ale nevím kde. Dlouhé hodiny jsem na to koukal a nic nenašel. Vím, že vy nejste tak slepí jako já. Pomůžete mi prosím?
Předem děkuji za odpověď.
Kód:

<body>
                        <h2>Registrace</h2>
                                <form action="?page=registrace" method="post">
                                        Přihlašovací jméno:<br>
                                        <input type="text" name="username" /><br><br>
                                        Heslo:<br>
                                        <input type="password" name="password" /><br><br>
                                        Heslo znovu:<br>
                                        <input type="password" name="password2" /><br><br>
                                        E-mail:<br>
                                        <input type="text" name="email" /><br><br>
                                        <input type="submit" name="submit_reg" value="Registrovat" />
                                </form>
<?php
        $error = "";
        if(isset($_POST['submit_reg']))
        {
                $username = addslashes(mysql_real_escape_string($_POST['username']));
                $password = addslashes(mysql_real_escape_string($_POST['password']));
                $password2 = addslashes(mysql_real_escape_string($_POST['password2']));
                $email = addslashes(mysql_real_escape_string($_POST['email']));

                if($username && $password && $password2 && $email)
                {
                        if($password == $password2)
                        {
                                $query = mysql_query("SELECT `id` FROM `users` WHERE `username` = '" . $username . "'") or die(mysql_error());
                                if(mysql_num_rows($query) == 0)
                                {
                                        $pass = sha1(strtoupper($username) . ':' . strtoupper($password));
                                        $get_id = mysql_query("SELECT MAX(id) FROM `users`") or die(mysql_error());
                                        $fetch_id = mysql_fetch_array($get_id);
                                        $id = fetch_id(0 + 1);
                                        mysql_query("INSERT INTO `users`(`id`, `username`, `password`, `email`) VALUES('".$id."', '".$username."', '".$pass."', '".$email."')") or die(mysql_error());
                                        $error = "Byl jste úspěšně zaregistrován!";
                                }
                                else $error = "Toto jméno je již obsazeno!";
                        }
                        else $error = "Zadaná hesla se neshodují!";
                }
                else $error = "Nevyplnil/a jste všechna políčka!";
        }
        echo $error;
?>
</body>
</html>
Odpovědět
7.8.2014 16:59
TruckersMP vývojář
Avatar
Odpovídá na Jan Lupčík
Martin Konečný (pavelco1998):7.8.2014 17:16

Ahoj,

z prvního pohledu mi to připadá OK. Zkus si dumpnout ty proměnné ($username atd.).

Btw, nevím, co dělá funkce fetch_id(), ale ten parametr 0 + 1 vypadá hezky :)

Jo a funkce addslashes() je tam zbytečná.

Editováno 7.8.2014 17:19
Nahoru Odpovědět
7.8.2014 17:16
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
Jan Lupčík
Tvůrce
Avatar
Odpovídá na Martin Konečný (pavelco1998)
Jan Lupčík:7.8.2014 18:25

Dumpnout? Jako přehodit? Dík, něco málo jsem si našel na netu a sestavil jsem to do sebe se svými znalostmi, takže něco je tam navíc (krom toho addslashes už asi nic). :)

Editováno 7.8.2014 18:28
Nahoru Odpovědět
7.8.2014 18:25
TruckersMP vývojář
Avatar
Odpovídá na Jan Lupčík
Martin Konečný (pavelco1998):7.8.2014 18:35

Dumpnout je takový PHPčkovský obrat pro "vypsat pomocí funkce var_dump()" (příp. print_r()). Např. var_dump($user­name);

Mimo to, nemusíš zjišťovat poslední ID uživatele. Stačí sloupci ID nastavit AUTO_INCREMENT a hodnota se dosadí automaticky (jednoduše ten sloupec id můžeš z toho INSERTu vyškrtnout).

Nahoru Odpovědět
7.8.2014 18:35
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
Jan Lupčík
Tvůrce
Avatar
Odpovídá na Martin Konečný (pavelco1998)
Jan Lupčík:7.8.2014 18:53

No jo AI jsem si v phpMyAdmin nastavil. Já jsem teď na mobilu, tak zítra ráno ihned vyzkouším, ale jinak tedy díky. Pak písnu :)

Nahoru Odpovědět
7.8.2014 18:53
TruckersMP vývojář
Avatar
Tonda Kozák
Člen
Avatar
Tonda Kozák:7.8.2014 21:45

Já to zkoušel a funguje mi to v pořádku (ta podmínka). Jediná možnost, která mě napadá, funguje ti správně připojení k databázi?

 
Nahoru Odpovědět
7.8.2014 21:45
Avatar
Jan Lupčík
Tvůrce
Avatar
Odpovídá na Tonda Kozák
Jan Lupčík:7.8.2014 21:50

To jsem dělal podle jednoho tutoriálu a tam to fungovalo v pohodě. Zkusím si tam překontrolovat ty kódy, ale pokud by mi to nefungovalo, hodí mi to error. Ráno budu moudřejší a snad Vaše rady pomůžou. Děkuji :)

Nahoru Odpovědět
7.8.2014 21:50
TruckersMP vývojář
Avatar
Jan Lupčík
Tvůrce
Avatar
Odpovídá na Tonda Kozák
Jan Lupčík:8.8.2014 17:26

Tak teda addslashes jsem odstranil a dal tam ty

var_dump($username);

atd. na Vaše rady a vypsalo mi to toto:

Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

Takže to vypadá, že to bude asi chyba serveru. Nebo to je moje chyba?

Nahoru Odpovědět
8.8.2014 17:26
TruckersMP vývojář
Avatar
Tonda Kozák
Člen
Avatar
Odpovídá na Jan Lupčík
Tonda Kozák:8.8.2014 17:44

Nemůžeš se připojit k databázi. Buď můžeš mít špatně zadané přihlašovací údaje, nebo pokud hostuješ na nějakém free hostingu (pochybném), může být chyba tam.

Mimochodem, pokud ty stránky nejsou ještě určeny pro veřejnost, (nikdo je nezná) je dobré si zapnout vypisování chybových hlášek. Pokud jsou však stránky veřejné, není toto příliš bezpečné.

Editováno 8.8.2014 17:47
 
Nahoru Odpovědět
8.8.2014 17:44
Avatar
Jan Lupčík
Tvůrce
Avatar
Jan Lupčík:8.8.2014 18:55

Ty mám dobře, takže je to hostingem (je free). Ty stránky se už navštěvují, akorát já je potřebuji na prozkoušení PHP a ne dělat stránky světa. No s**e mě to, protože jsem teprve na ZŠ, takže mé možnosti jsou omezené. Tak nic no. Jde tam vidět (chybová hláška), že to je jejich problém. Tak tedy dík :)

Nahoru Odpovědět
8.8.2014 18:55
TruckersMP vývojář
Avatar
Tonda Kozák
Člen
Avatar
Odpovídá na Jan Lupčík
Tonda Kozák:8.8.2014 19:03

Můžu vědět, jaký hosting používáš?

 
Nahoru Odpovědět
8.8.2014 19:03
Avatar
Jan Lupčík
Tvůrce
Avatar
Odpovídá na Tonda Kozák
Jan Lupčík:8.8.2014 19:17

webzdarma.cz

Nahoru Odpovědět
8.8.2014 19:17
TruckersMP vývojář
Avatar
Tonda Kozák
Člen
Avatar
Tonda Kozák:8.8.2014 19:26

Máš jako server uvedeno: mysql.webzdarma.cz?
Máš vůbec aktivované přihlašovací údaje?

Nechceš změnit webhosting? :-)

 
Nahoru Odpovědět
8.8.2014 19:26
Avatar
Jan Lupčík
Tvůrce
Avatar
Odpovídá na Tonda Kozák
Jan Lupčík:8.8.2014 19:30

Ano a údaje jsem i překopíroval správně. Rád bych změnil, ale neznám takový, kde máš min. 200 MB místa a phpMyAdmina. :(

Nahoru Odpovědět
8.8.2014 19:30
TruckersMP vývojář
Avatar
Tonda Kozák
Člen
Avatar
Tonda Kozák:8.8.2014 19:35

Než jsem si pořídil placený (což je nejlepší), byl jsem celkem spokojený s Endora.cz.

Webzdarma, myslím, obecně nemá moc dobrou pověst. Případně zkus jejich podporu (na kterou ale občas kašlou), nebo aspoň jejich fórum.

 
Nahoru Odpovědět
8.8.2014 19:35
Avatar
Jan Lupčík
Tvůrce
Avatar
Odpovídá na Tonda Kozák
Jan Lupčík:8.8.2014 19:42

Vypadá hezky. S webzdarma jsem spokojen, ale pokud jim blbne databáze, kašlu na to. Napíši jim a také tam na fórum a když mi nikdo do týdne neodpoví, přestupuji na Endoru. S placeným budu pracovat, až budu moc dělat brigádu. Ještě jednou děkuji za ochotu :)

Nahoru Odpovědět
8.8.2014 19:42
TruckersMP vývojář
Avatar
Odpovídá na Jan Lupčík
Martin Konečný (pavelco1998):8.8.2014 19:51

Občas na testování používám hosting php5.cz. Dříve jsem používal i endoru.

Nahoru Odpovědět
8.8.2014 19:51
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
Michal Žůrek - misaz:8.8.2014 20:36

a jenom tak ze srandy nezkoušíš se z localhostu připojit na databázi na vzdáleném serveru, že ne?

 
Nahoru Odpovědět
8.8.2014 20:36
Avatar
Jan Lupčík
Tvůrce
Avatar
Odpovídá na Michal Žůrek - misaz
Jan Lupčík:8.8.2014 20:43

Ne. Jedná se o web http://application.wz.cz (nechtěl jsem ho zveřejňovat, ale odpovídám na tvojí otázku). Localhost mi blbne. Rozjedu na něm pouze phpMyAdmina a proto to zkouším na svém webu :)

Nahoru Odpovědět
8.8.2014 20:43
TruckersMP vývojář
Avatar
Jan Lupčík
Tvůrce
Avatar
Odpovídá na Martin Konečný (pavelco1998)
Jan Lupčík:8.8.2014 20:46

Taky nevypadá špatně na zkoušení, ale na projekty bych to nepoužil. Má pouze 50 MB místa :(
Pozn. když jsem hledal přes Google, tak jsem psal free hosting místo php hosting. Koukám, že používáte jenom ty nejlepší. Dík :)

Nahoru Odpovědět
8.8.2014 20:46
TruckersMP vývojář
Avatar
Odpovídá na Jan Lupčík
Michal Žůrek - misaz:8.8.2014 20:47

a je databáze v administraci webzdarma aktivovaná? Dostaneš se tam přes ten jejich 100let neaktualizovaný phpMyAdmin ke kterému mají v administraci odkaz?

 
Nahoru Odpovědět
8.8.2014 20:47
Avatar
Jan Lupčík
Tvůrce
Avatar
Odpovídá na Michal Žůrek - misaz
Jan Lupčík:8.8.2014 20:51

Ano, je. V té databázi mám i tabulky a kdyby nebyla aktivovaná, smažou se a nedostanu se tam. Je to ta jejich databáze (při prvním otevření jsem nevěřil očím - vypadá jinak a tabulka se tvoří 2 minuty).

Nahoru Odpovědět
8.8.2014 20:51
TruckersMP vývojář
Avatar
Odpovídá na Jan Lupčík
Martin Konečný (pavelco1998):8.8.2014 22:17

Myslím, že i sami na webu php5.cz píší, že to slouží k testování. Na nějaký ostrý provoz je stejně lepší něco placeného (pochopitelně).

Nahoru Odpovědět
8.8.2014 22:17
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
Jan Lupčík
Tvůrce
Avatar
Jan Lupčík:9.8.2014 17:36

Dnes jsem z nudy si na mobilu pročítal fóra a zjistil jsem, že některé příkazy byly zrušeny, ale jdou manuálně zapnout. Zítra to zkusím a když tak písnu :)
P.S. Na podporu jsem psal, zajímá mě, co mi odpoví :)

Nahoru Odpovědět
9.8.2014 17:36
TruckersMP vývojář
Avatar
Odpovídá na Jan Lupčík
Michal Žůrek - misaz:9.8.2014 17:58

haha, nevím jestli budeš mít štěstí větší než já, ale já jsem na podpoře vždy narazil na paní Marcelku, která nic neví, jen když je problém tak jsem z ní dostal něco vy stylu "do 14 dní to oprav nebo ti zruším hosting" :D Hodně štěstí.

 
Nahoru Odpovědět
9.8.2014 17:58
Avatar
Jan Lupčík
Tvůrce
Avatar
Jan Lupčík:9.8.2014 20:17

Pokud se mi to nepovede manuálně zapnout a nikdo neodpoví, přestupuji na jiný hosting. Aspoň budu mít zkušenosti s webzdarma :)

Nahoru Odpovědět
9.8.2014 20:17
TruckersMP vývojář
Avatar
Jan Lupčík
Tvůrce
Avatar
Odpovídá na Jan Lupčík
Jan Lupčík:10.8.2014 13:33

Dnes jsem tedy přidal do .htaccess tento řádek kvůli zapnutí některých PHP funkcí (na doporučení webzdarma, protože některé vypnuli):

php_flag allow_url_fopen on

Bohužel ani po této funkci to pořád vypisuje, že všechna políčka nejsou vyplněna. Tak kde je chyba už opravdu nevím, i když mám vše dobře vyplněné... :(
Od podpory zatím žádná odpověď, ale z fóra jsem hned po půl hodině dostal odpověď od jednoho uživatele. Buď si mám prý tam dát svůj phpMyAdmin nebo jednosouborový Adminer. Asi to vidím tak, že půjdu někam jinam, ale ještě teda zkusím tu radu. :)
EDIT: Bohužel, chyba je opravdu na straně webzdarma. Po stáhnutí a přidání Adminera mi to napíše tu samou chybu, co u registrace:

Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

Počkám do neděle, jinak přestupuji.

Editováno 10.8.2014 13:37
Nahoru Odpovědět
10.8.2014 13:33
TruckersMP vývojář
Avatar
Jan Lupčík
Tvůrce
Avatar
Odpovídá na Michal Žůrek - misaz
Jan Lupčík:10.8.2014 16:50

Tak jsem to nakonec vyřešil sám. V kódu mi chyběl $ a mezera. Také pomohlo přidání

session_start();

Úspěšně jsem se zaregistroval a i přihlásil. Už stačí jenom poupravit uživatelské rozhraní a umožním i návštěvníkům se zaregistrovat. Moc Vám děkuji a také i Misazovi, který mi ukázal tvář webzdarma :) A žádám o uzavření této diskuze.
P.S. Jak jsem přišel na tuto chybu? Stačilo udělat jinou chybu v pozdější fázi kódu a vyskočilo to samo.

Akceptované řešení
+20 Zkušeností
Řešení problému
Nahoru Odpovědět
10.8.2014 16:50
TruckersMP vývojář
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.

Zobrazeno 28 zpráv z 28.