[ 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 | 13
NapísalOffline : 16.03.2014 15:34 | registrácia blbne

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: 5447
Témy: 30 | 30
Bydlisko: Bratislava
NapísalOffline : 16.03.2014 15:47 | registrácia blbne

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: 14691
Témy: 66 | 66
Bydlisko: Žilina
Vek: 30
NapísalOffline : 16.03.2014 17:15 | registrácia blbne

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 | 13
Napísal autor témyOffline : 16.03.2014 18:16 | registrácia blbne

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ľ
registrácia blbne

Registrovaný: 28.04.11
Prihlásený: 12.12.17
Príspevky: 291
Témy: 26 | 26
Bydlisko: Martin/Brno
Vek: 23
NapísalOffline : 17.03.2014 0:02 | registrácia blbne

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 ?


_________________
Stroje: zobraziť
NTB:
Lenovo W541 | i7-4810MQ | Quadro K1100M | 500GB SSD | 16GB RAM | Fedora 25 + i3wm

Mobil:
Nexus 5X

DSLR
Nikon D5100
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 | 13
Napísal autor témyOffline : 17.03.2014 22:09 | registrácia blbne

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


Offline

Užívateľ
Užívateľ
registrácia blbne

Registrovaný: 28.04.11
Prihlásený: 12.12.17
Príspevky: 291
Témy: 26 | 26
Bydlisko: Martin/Brno
Vek: 23
NapísalOffline : 17.03.2014 23:12 | registrácia blbne

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 ?


_________________
Stroje: zobraziť
NTB:
Lenovo W541 | i7-4810MQ | Quadro K1100M | 500GB SSD | 16GB RAM | Fedora 25 + i3wm

Mobil:
Nexus 5X

DSLR
Nikon D5100
Offline

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

Registrovaný: 27.07.07
Príspevky: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 18.03.2014 9:29 | registrácia blbne

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;
   }
}


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
 [ Príspevkov: 8 ] 


registrácia blbne



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

21

620

19.10.2010 14:24

dessert

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

Registracia

v HTML, XHTML, XML, CSS

28

697

02.02.2008 12:43

jato

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

Registracia

v PHP, ASP

4

265

11.07.2010 20:30

Flety

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

Registrácia

v Sieťové a internetové programy

5

420

12.04.2008 13:31

Enermax

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

registrácia

v Správy pre vedenie fóra

8

872

28.01.2008 22:25

_DanWer_

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

Registrácia

v PHP, ASP

20

591

18.09.2010 12:58

emer

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

registrácia

v PHP, ASP

2

132

08.03.2014 21:30

DessertBA

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

registrácia

v PHP, ASP

10

359

11.05.2010 18:09

dessert

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

registracia

v PHP, ASP

9

887

13.05.2006 20:37

shaggy

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

Registracia domeny

v Domény

10

793

10.02.2008 13:44

wolf14

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

Registrácia domény

v Domény

6

565

14.12.2009 12:59

Blackshadow

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

chyba ,registracia....

v PHP, ASP

24

700

04.07.2008 21:01

Blackshadow

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

WindowsLive registracia

v Herné konzoly

4

454

18.12.2011 20:04

Luks

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

Registracia online

v Obchody, reklamácie a právo

3

299

18.08.2010 13:42

Jeffo

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

Registrácia súboru

v Operačné systémy Microsoft

2

312

30.09.2008 16:02

Nexus

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

registracia notebooku

v Notebooky a netbooky

5

352

12.08.2009 19:23

banzai



© 2005 - 2017 PCforum, edited by JanoF