[ 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: 5404
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: 14572
Témy: 66 | 66
Bydlisko: Žilina
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ľ
Obrázok užívateľa

Registrovaný: 28.04.11
Prihlásený: 30.12.24
Príspevky: 296
Témy: 27 | 27
Bydlisko: Martin/Brno
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 ?


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ľ
Obrázok užívateľa

Registrovaný: 28.04.11
Prihlásený: 30.12.24
Príspevky: 296
Témy: 27 | 27
Bydlisko: Martin/Brno
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 ?


Offline

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

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51 | 51
Bydlisko: Bratislava
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;
   }
}


_________________
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
 [ 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

973

19.10.2010 14:24

dessert

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

registrácia

v Správy pre vedenie fóra

8

1231

28.01.2008 22:25

_DanWer_

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

Registracia

v PHP, ASP

4

558

11.07.2010 20:30

Flety

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

registracia

v PHP, ASP

9

1363

13.05.2006 20:37

shaggy

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

Registracia

v HTML, XHTML, XML, CSS

28

1278

02.02.2008 12:43

jato

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

Registrácia

v PHP, ASP

20

977

18.09.2010 12:58

emer

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

registrácia

v PHP, ASP

10

655

11.05.2010 18:09

dessert

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

registrácia

v PHP, ASP

2

410

08.03.2014 21:30

DessertBA

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

Registrácia

v Sieťové a internetové programy

5

725

12.04.2008 13:31

Enermax

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

REGISTRACIA Problém...

v Assembler, C, C++, Pascal, Java

3

531

08.08.2011 9:16

matwej

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

Registrácia domény

v Domény

6

872

14.12.2009 12:59

Blackshadow

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

chyba ,registracia....

v PHP, ASP

24

1129

04.07.2008 21:01

Blackshadow

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

WindowsLive registracia

v Herné konzoly

4

737

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

520

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

570

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

676

12.08.2009 19:23

banzai



© 2005 - 2025 PCforum, edited by JanoF