[PHP] Problem ze skryptem rejestracyjnym


(Ryan370z) #1
<?

         session_start();     

         mysql_connect ("mysql.cba.pl", "omegaforce", "killer565");

         mysql_select_db("omegaforce_c0_pl");

         $pass=$_POST['Pass'];

         $login=$_POST['Nick'];

         $password2=md5($pass);

         $password=strtr($pass , "#!@$%^&*()-=_+{}][\":;'><,.?`~/*\||" , "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");

         $login2=strtr($login , "#!@$%^&*()-=_+{}][\":;'><,.?`~/*\||" , "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");

         if($pass!=$password || $login!=$login2)

         echo('');

         $sql="SELECT * FORM `users` WHERE login='".$_POST['Nick']."' OR mail='".$_POST['mail']."'";

         $haslo=mysql_fetch_row($sql);

         if (!($haslo[0])) echo (''); # BŁĄD

          else

          {

           if ($haslo[0] != $password2) echo ('');

          }

         if(($haslo[0]) && ($password2))

         {

          if($haslo[0] == $password2)

         {

          $_SESSION['logged']= true;

          $_SESSION['user']= $_POST['Nick'];

          $Q = mysql_query('SELECT `kasa`,`sila`,`zrecznosc`, `celnosc`, `refleks`, `top`, `arena`, `bron`, `rekawice`, `helm`, `buty`, `kamizelka`, `tarcza`, `lvl` FROM `users` WHERE `login` = "'.$_SESSION['user'].'"');

          $dane = mysql_fetch_row($Q);

          echo('Przejdź tu, aby grać: ');

         }

         }[/code]

W linijce przy której jest komentarz #BŁĄD jest problem, gdyż nie działa część odpowiadająca za sprawdzanie, czy konto o podanym e-mailu lub nicku istnieje.


(Damgora) #2

SELECT FROM...


#3

Ry4n370z , proszę zapoznaj się z tą stroną oraz tym tematem, a następnie popraw tytuł tematu, używając przycisku ac7a4cd89050aa6e.gif


(Ryan370z) #4

Hm ja u siebie mam FROM a nie FORM. Nie miałem tego więc coś się wkradło.

<?

         $connect=mysql_connect("mysql.cba.pl", "omegaforce", "killer565" );

         mysql_select_db("omegaforce_c0_pl");          

         $pass=$_POST['Pass'];

         $login=$_POST['Nick'];

         $password=strtr($pass , "#!@$%^&*()-=_+{}][\":;'><,.?`~/*\||" , "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");

         $login2=strtr($login , "#!@$%^&*()-=_+{}][\":;'><,.?`~/*\||" , "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");

         if($pass!=$password || $login!=$login2)

          echo('');

         else 

         {

          $sql= mysql_fetch_row("SELECT * FROM 'users' WHERE login='".$_POST['Nick']."' OR mail='".$_POST['mail']."');

          if ($sql) 

          echo('')

          else

          {

           if(!($_POST['Nick'] && $_POST['Pass'] && $_POST['Repeat'] && $_POST['mail']))

            echo('');

            elseif($_POST['Pass'] != $_POST['Repeat'])

             echo('');

           else

           { 

            $Pass=$_POST['Pass'];

            $md5= md5($Pass);

            $sql2="INSERT INTO `users` (`login`, `pass`, `mail`, `kasa`, `sila`, `zrecznosc`, `celnosc`, `refleks`, `top`, `arena` ,`bron`, `rekawice`, `helm`, `buty`, `kamizelka`, `tarcza`, `lvl`) VALUES ('".$_POST['Nick']."', '$md5', '".$_POST['mail']."', '1000', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1')";

            $query= mysql_query($sql2);

            echo('');

           }

          }

         }

         echo('');

         echo(' ');

         echo('');

         echo('');

         echo('');

         echo('');

         echo('');

         echo('');

         echo('');

         echo('');

      ?>[/code]

Tutaj jest dobrze.


(Damgora) #5

tu jest błąd - ta funkcja nie przyjmuje zapytania jako argument tylko jego wynik


(Ryan370z) #6

?? Czyli jak powinno wygląd poprawiony wiersz? Usunąć te dwa cudzysłowia w nawiasach?

$sql= mysql_fetch_row(SELECT * FROM 'users' WHERE login='".$_POST['Nick']."' OR mail='".$_POST['mail']."');

(Damgora) #7
$sql= mysql_fetch_row(mysql_query("SELECT * FROM 'users' WHERE login='".$_POST['Nick']."' OR mail='".$_POST['mail']."'"));

na przykład tak


(Ryan370z) #8

Ok, wkleiłem twoją propozycję. Teraz jest bląd w linijce 44, czyli tu:

$sql= mysql_fetch_row(mysql_query("SELECT * FROM 'users' WHERE login='".$_POST['Nick']."' OR mail='".$_POST['mail']."'));

          if ($sql[0]) 

          echo(''); # error[/code]

echo to jedyna instrukcja znajdująca się po instrukcjii if.


(Damgora) #9

nie zauważyłem niedomkniętego ciągu na samym końcu (dalej ta sama linijka) - poprawiłem poprzedni post

dopisz brakujący "


(Ryan370z) #10

Działą ale teraz jest taki problem, że niezaleznie czy wpiszę po raz 5 te same dane czy inne, nowe to zawsze pisze że konto zostało utworzone.