Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 8 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 01.11.12
Prihlásený: 25.12.14
Príspevky: 40
Témy: 13
Príspevok NapísalOffline : 16.03.2014 15:34

Zdravím. Už dlhšiu dobu pripravujem webovú hru (tú obyčajnú klikačku) a vždy ma nejaká takáto vec zastaví. Problém je v registrácií. Pri overovaní údajov a zapisovaní je chyba. Prešiel som to asi 7 - 9 krát, nikde som nič nenašiel. Proste ten script sa nenačíta.

Ukážka: http://www.arthom.6f.sk/register.php

Zdroják:
Spoiler: zobraziť
Kód:
if (isset($_POST["register"])) {
           $vysledok = mysql_query("SELECT * FROM `users` ORDER BY ID");
         while($zaznam = mysql_fetch_array($vysledok)) {
           if (isset($_POST["suhlasim"])) {
             if (strlen($_POST["nick"]) < 14 || strlen($_POST["nick"]) > 4 || strlen($_POST["email"]) < 29 || strlen($_POST["email"]) > 4 || strlen($_POST["pass"]) < 25 || strlen($_POST["pass"]) > 4 || strlen($_POST["confirmpass"]) < 25 || strlen($_POST["confirmpass"]) > 4) {
              $zhodanick = mysql_result(mysql_query("SELECT COUNT(*) FROM `users` WHERE `username` = '".mysql_real_escape_string($_POST["nick"])."'"));
              if ($zhodanick != 0) {
                if (checkmail($_POST["email"])) {
                 if ($_POST["pass"] == $_POST["confirmpass"]) {
                   $kontrola = mysql_fetch_array(mysql_query("SELECT * FROM `users` WHERE `ip` = '$_SERVER['REMOTE_ADDR']'"));
                   if (!$kontrola) {
                    $idd = mysql_fetch_array(mysql_query("SELECT * FROM `users` WHERE `username` = '".mysql_real_escape_string($_POST["nick"])."' LIMIT 1"));
                    mysql_query("INSERT INTO `users` (`id`, `username`, `password`, `ip`, `email`, `zaregistrovany`) VALUES ('$idd['id']', '".mysql_real_escape_string($_POST["nick"])."', '".mysql_real_escape_string(md5($_POST["pass"]))."', '$_SERVER['REMOTE_ADDR']', '".mysql_real_escape_string($_POST["email"])."', '".date("d.m.Y s.i.H")."')");
                  } else echo "<div class='alert alert-danger alert-dismissable'><button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;</button>Prepáčte, ale pravdepodobne už jeden účet vlastníte, pretože IP sa zhoduje. Ak to nie je pravda, <a href='../contact.php?type=zhodaip' class='alert-link'>kontaktujte nás</a></div>";
                 } else echo "<div class='alert alert-danger alert-dismissable'><button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;</button>Prepáčte, ale heslá nie sú zhodné. Skúste to znovu !</div>";
               } else echo "<div class='alert alert-danger alert-dismissable'><button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;</button>Zadaný E-Mail }je napísaný v nesprávnom tvare !</div>";
              } else echo "<div class='alert alert-danger alert-dismissable'><button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;</button>Prepáčte, ale niekto pod takým nickom u nás je registrovaný !</div>";
             } else echo "<div class='alert alert-danger alert-dismissable'><button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;</button>Prepáčte, ale zadali ste krátke alebo dlhé údaje !</div>";
           }
          }
        }


vedeli by ste mi pomôcť? ďakujem :)


Offline

Čestný člen
Čestný člen
registrácia blbne

Registrovaný: 21.02.06
Prihlásený: 08.12.14
Príspevky: 5404
Témy: 30
Bydlisko: Bratislava
Príspevok NapísalOffline : 16.03.2014 15:47

Fuj, ten kód sa mi ani len nechce čítať.
Ale keďže sa ti tam nič nezobrazí (a predpokladám, že tam mal byť aspoň formulár), tak to vyzerá na nejakú syntaktickú chybu (chýbajúca bodkočiarka napr.).

A ak to je celý kód, tak ti tam napr. chýba pripojenie na db (+ je tam kopa nezmyslov, ako dĺžka emailu a pod.).







_________________
Neradím a nekomunikujem cez SS, ak niečo potrebujete, máte iné možnosti: Ak vám zmizla téma, alebo sa vám niečo nepáči. Ak potrebujete nahlásiť príspevok/človeka, reportujte ho. Ak máte s niečim problém, riešte to v danej téme.
Offline

Skúsený užívateľ
Skúsený užívateľ
registrácia blbne

Registrovaný: 24.01.08
Prihlásený: 13.09.17
Príspevky: 14572
Témy: 66
Bydlisko: Žilina
Príspevok NapísalOffline : 16.03.2014 17:15

Citácia:
mysql_real_escape_string(md5($_POST["pass"]))

Naozaj escapuješ hash? Ku zvyšku sa radšej nevyjadrím, ale aspoň toto si preboha oprav a prestaň používať MD5, ktorý dnes crackneš už aj tabletom...

Ja sa teším, že si si našiel o bezpečnosti aspoň niečo, ale programovanie je téma, pri ktorej nemôžeš zaspať pri postupoch zpred 10tich rokov a viac sa tým už nezaoberať. Napr mysql_ funkcie by sa nemali využívať už vôbec...

Čo sa týka konkrétneho problému, treba používať editor so zvýrazňovaním syntaxe a automatickou detekciou chýb... Potom si nájdeš chybu veľmi rýchlo určite aj sám ;)







_________________
C#, PHP, ...
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 01.11.12
Prihlásený: 25.12.14
Príspevky: 40
Témy: 13
Príspevok Napísal autor témyOffline : 16.03.2014 18:16

nj to je sila zvyku :D som stará škola, používam notepad++, všetko pekne zvýraznené ale chyba nikde ...


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 28.04.11
Prihlásený: 29.03.24
Príspevky: 296
Témy: 27
Bydlisko: Martin/Brno
Príspevok NapísalOffline : 17.03.2014 0:02

1. Nerozumiem preco to mas cele vo while a robis to pre kazdeho uzivatela.
2. if ($zhodanick != 0) takze chces aby tam uz niekto taky existoval ?


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 01.11.12
Prihlásený: 25.12.14
Príspevky: 40
Témy: 13
Príspevok Napísal autor témyOffline : 17.03.2014 22:09

to je kvôli podmienke ak niekto s takým menom neexistuje aby išlo ďalej .. preto !=


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 28.04.11
Prihlásený: 29.03.24
Príspevky: 296
Témy: 27
Bydlisko: Martin/Brno
Príspevok NapísalOffline : 17.03.2014 23:12

no ale ak dobre vidim ty to mas naopak. Predsa ak sa to nerovna 0 tak niekto taky musi existovat nie? A co ten while ?


Offline

Správca fóra
Správca fóra
registrácia blbne

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51
Bydlisko: Bratislava
Príspevok NapísalOffline : 18.03.2014 9:29

V uvedenom skripte nevidno ziadnu logiku, preto to ani fungovat nemoze. Pocnuc nezmyselnym while cyklom, cez kontrolu dlzky zadanych udajov, ktora vlastne nic spravne neskontroluje, opakovany vyber rovnakych dat z jednej tabulky, kontrolu ipcky, ... a konciac vyberom idcka neexistujuceho usera, ktore chces pouzit na insert noveho. Cele zle. Najlepsie spravis, ked to cele vymazes a zacnes pekne od zaciatku. Mozno ta toto trosku usmerni:
Kód:
if($_POST)
{
   //...

   if(($status = checkformdata(...)) === TRUE)
   {
      $res = mysql_query("SELECT 1 FROM `users` WHERE `username` = '".$nick."'");
   
      if(mysql_num_rows($res) == 0)
      {
         //INSERT
      }
   }
   else
   {
      echo $status;
   }
}







_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Odpovedať na tému [ Príspevkov: 8 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. registracia

v PHP, ASP

9

1287

13.05.2006 20:37

shaggy Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Registracia

v HTML, XHTML, XML, CSS

28

1228

02.02.2008 12:43

jato Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Registrácia

v PHP, ASP

20

916

18.09.2010 12:58

emer Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. registrácia

v PHP, ASP

10

591

11.05.2010 18:09

dessert Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. registrácia

v PHP, ASP

2

374

08.03.2014 21:30

DessertBA Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Registrácia

v Sieťové a internetové programy

5

666

12.04.2008 13:31

Enermax Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. registracia

v PHP, ASP

21

898

19.10.2010 14:24

dessert Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. registrácia

v Správy pre vedenie fóra

8

1176

28.01.2008 22:25

_DanWer_ Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Registracia

v PHP, ASP

4

515

11.07.2010 20:30

Flety Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Alza-registracia

v Obchody, reklamácie a právo

1

859

09.09.2008 16:03

Peterson Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. registracia domeny

v Domény

12

958

23.12.2008 18:08

JanoF Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Hadanka registracia.

v Krčma

12

846

02.12.2008 19:25

Palinhoo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Duplicitna registracia?

v Správy pre vedenie fóra

4

2374

19.07.2011 17:09

SNAKE_3 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Registracia domeny

v Domény

10

1092

10.02.2008 13:44

wolf14 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. PHPBB3 Registrácia

v Redakčné systémy

3

703

19.05.2009 20:32

RoFliXuS Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Registrácia domény

v Domény

6

1141

09.05.2011 17:29

mokus Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra