Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][MySQL][PHP]bład w kodzie rejestracji
Forum PHP.pl > Forum > Przedszkole
Karol346
Witam mam rejestracje i logowanie ale sa chyba błedy w kodzie
co źle w rejestracji ?
otóz mozna miec X kont na 1 email , a warunek jest ze tylko 1
po 2 mozna miec X kont na 1 nick , a warunek jest ze tylko 1
po 3 hasla moga byc rozne , konto zostanie zalozone , a w tabelki wprawadzi sie 1
oto kod :
  1. <html>
  2. <head>
  3. <title>Rejestracja</title>
  4. <meta http-equiv="content-type" content="text/html; charset=iso-8859-2" />
  5. <meta http-equiv="content-language" content="pl">
  6. </head>
  7.  
  8. <body>
  9. <form action="" method="POST">
  10.  
  11. <b>Nick: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</b> <input type="text" name="username" /><i>&nbsp;&nbsp; Potrzebny aby się zalogować na konto.</i> <br></br>
  12. <b>Hasło: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</b><input type="password" name="haslo" /> <i>&nbsp;&nbsp; Zapamiętaj je i nie podawaj <u>nikomu</u>, Administracja nigdy nie będzie cię prosić o hasło.</i><br></br>
  13. <b>Powtórz hasło:&nbsp;&nbsp;&nbsp;&nbsp;</b> <input type="password" name="haslo2" /> <br> </br>
  14. <b>E-mail: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</b> <input type="email" name="email" /> <i>&nbsp;&nbsp; Wymagane do weryfikacji konta.</i>
  15. </br>
  16. </br>
  17. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  18. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  19. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  20. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  21. <input type="submit" value="Zarejestruj się." /> </br>
  22.  
  23. </form>
  24. Lub jeśli masz już konto <a href="logowanie.php"/><font color="blue"/>Zaloguj się !</font></a>
  25. </body>
  26.  
  27. </html>
  28.  
  29. <?php
  30. include ('db.php');
  31.  
  32. $name = $_POST['username'];
  33. $password = $_POST['haslo'];
  34. $password2 = $_POST['haslo'];
  35. $email = $_POST['email'];
  36.  
  37. if($name != NULL and $password !=NULL and $email!=NULL){
  38.  
  39. $mysql = mysql_fetch_array(mysql_query("select username from reg where username = $name"));
  40. $mysql2 = mysql_fetch_array(mysql_query("select email from reg where email = $email"));
  41. if($mysql2['email'] == null){
  42. echo"Podany adres email został już zarejestrowany!!";
  43. }elseif($mysql['username'] == null){
  44. echo"Podany nick jest już zarejestrowany!!";
  45. }elseif($password == $password2){
  46. $rejestracja = "insert into `reg` (`username`, `email`, `haslo`) VALUES ('$name', '$email', '$password')";
  47. $rejestracja2 = mysql_query($rejestracja);
  48. if($rejestracja2){
  49. echo "Zostałeś poprawnie zarejestrowany";
  50. }else{
  51. echo"ups.. wystąpił jakiś problem sprubuj ponownie za chwile";
  52. }
  53. }else{
  54. echo"Podałeś róźne hasła!!";
  55. }
  56. }
  57. ?>


a w logowaniu jest prawie OK tyle ze po zalogowaniu chce aby przenosiło do pages/index.php (gdy dobre dane) jasli złe komunikat popraw dane
oto kod
  1. <html>
  2. <head>
  3. <title>Logownie</title>
  4. <meta http-equiv="content-type" content="text/html"; charset="iso-8859-2" />
  5. <meta http-equiv="content-language" content="pl">
  6.  
  7. <style type="text/css">
  8. .log {
  9. margin-left:15px;
  10. margin-top:40px;
  11. background-color:red;
  12. width:600;
  13. height:72;
  14. }
  15.  
  16. .zaloguj {
  17. margin-left:20px;
  18. }
  19.  
  20.  
  21. </style>
  22.  
  23. </head>
  24. <body>
  25. <font size="25" color="blue"/> </br>Logowanie</font>
  26. <form action="logowanie.php" method="POST" class="log">
  27. <b>Login:</b>&nbsp;&nbsp <input type="text" name="username"/><!--</br>--><input class="zaloguj" name="loguj" type="submit" value="Zaloguj" /></br>
  28. <b>Hasło:</b>&nbsp;&nbsp <input type="password" name="haslo"/></br></br>
  29. <!-- <input class="zaloguj" name="loguj" type="submit" value="Zaloguj" /></br>-->
  30. <a href="rejestracja.php" /><font color="yellow"/>Jeśli nie posiadasz konta załóż je Za Darmo</font> </a>
  31. </form>
  32. </body>
  33. </html>
  34.  
  35. <?php
  36. include ('db.php');
  37. $login = $_POST['username'];
  38. $pass = $_POST['haslo'];
  39.  
  40. if($login!=null and $pass!=null){
  41. $mysql = mysql_fetch_array(mysql_query("select user_id from `reg` where `username` = '$login' AND `haslo` = '$pass' limit 1"));
  42. if($mysql == NULL){
  43. echo'<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>';
  44. include "menu/stopka.php";
  45. echo "<script type='text/javascript'>window.alert('Błędne haslo u/lub login'):Document.location.href = 'index.php';</script>";
  46. }elseif($mysql != NULL){
  47. $_SESSION['zalogowany'] = true;
  48. $_SESSION['username'] = $_POST['username'];
  49. $_SESSION['haslo'] = $_POST['haslo'];
  50. echo "Jesteś zalogowany.";
  51. header("Location: 1/index2.php");
  52. }
  53. }
  54. ?>


Dziękuje z góry smile.gif
Kostek.88
Co do różnych haseł:

  1. $name = $_POST['username'];
  2. $password = $_POST['haslo'];
  3. $password2 = $_POST['haslo'];
  4. $email = $_POST['email'];


Zauważ, że przy $password2 też masz odwołanie do inputa haslo... czyli warunek jest zawsze spełniony

  1. if($mysql2['email'] == null){


zamień na

  1. if($mysql2['email']) {


albo

  1. if( strlen(@$mysql2['email']) > 0) {


To samo tyczy się username

Poza tym sprawdź, czy na pewno Ci się dobrze wybierają dane z tabeli (zmienne $mysql i $mysql2)

No i header("Location: 1/index2.php"); zmnienić na header("Location: pages/index.php"); , tylko wywal to echo 'jesteś zalogowany'....
Karol346
Zmieniłem jak mówiłes i dalej nic :/
możesz sam sprawdzic TUTAJ !
(adres mojej strony WWW ale podstrona do rejestracji)
Kostek.88
Pokaż nowy kod
Karol346
w częsci HTML nie zmieniałem wiec masz tylko php

  1. <?php
  2. include ('db.php');
  3.  
  4. $name = $_POST['username'];
  5. $password = $_POST['haslo'];
  6. $password2 = $_POST['haslo'];
  7. $email = $_POST['email'];
  8.  
  9. if($name != NULL and $password !=NULL and $email!=NULL){
  10.  
  11. $mysql = mysql_fetch_array(mysql_query("select username from reg where username = $name"));
  12. $mysql2 = mysql_fetch_array(mysql_query("select email from reg where email = $email"));
  13. if($mysql2['email']) {
  14. echo"Podany adres email został już zarejestrowany!!";
  15. }elseif($mysql['username']) {
  16. echo"Podany nick jest już zarejestrowany!!";
  17. }elseif($password == $password2){
  18. $rejestracja = "insert into `reg` (`username`, `email`, `haslo`) VALUES ('$name', '$email', '$password')";
  19. $rejestracja2 = mysql_query($rejestracja);
  20. if($rejestracja2){
  21. echo "Zostałeś poprawnie zarejestrowany";
  22. }else{
  23. echo"ups.. wystąpił jakiś problem sprubuj ponownie za chwile";
  24. }
  25. }else{
  26. echo"Podałeś róźne hasła!!";
  27. }
  28. }
  29. ?>
Kostek.88
No dobra, ale dlaczego nie zmieniłeś jeszcze na górze tego drugiego $_POST na haslo2, jak Ci wyżej napisałem?

Po drugie popróbuj w tym kierunku, bo za bardzo zagmatwałeś te IF-y

  1. <?php
  2. if(strlen($name) > 0 && strlen($password) > 0 && strlen($email) > 0) {
  3.  
  4. $mysql = mysql_fetch_array(mysql_query('select username from reg where username = "' . $name . '"'));
  5. $mysql2 = mysql_fetch_array(mysql_query('select email from reg where email = "' . $email . '"'));
  6.  
  7. if($mysql2 == true || $mysql == true || $password != $password2) {
  8.  
  9. if($mysql2){
  10. echo "Podany adres email został już zarejestrowany!!<br />";
  11. }
  12.  
  13. if($mysql){
  14. echo"Podany nick jest już zarejestrowany!!<br />";
  15. }
  16.  
  17. if($password != $password2){
  18. echo"Podałeś róźne hasła!!";
  19. }
  20. } else {
  21. $rejestracja = "insert into `reg` (`username`, `email`, `haslo`) VALUES ('".$name."', '".$email."', '".$password."')";
  22. $rejestracja2 = mysql_query($rejestracja);
  23. if($rejestracja2){
  24. echo "Zostałeś poprawnie zarejestrowany";
  25. }else{
  26. echo"ups.. wystąpił jakiś problem sprubuj ponownie za chwile";
  27. }
  28. }
  29. }
  30. ?>
Karol346
Ehhh... nic :/
Chyba sobie odpuszcze

Ale + leci za chęci smile.gif
Leihto
  1. <?php
  2. include ('db.php');
  3.  
  4. $name = addslashes($_POST['username']);
  5. $password = addslashes($_POST['haslo']);
  6. $password2 = addslashes($_POST['haslo']);
  7. $email = addslashes($_POST['email']);
  8.  
  9. if(!empty($name) and !empty($password) and !empty($email))
  10. {
  11. $mysql = mysql_num_rows(mysql_query("SELECT `username` FROM `reg` WHERE `username` = '".$name."'"));
  12. $mysql2 = mysql_num_rows(mysql_query("SELECT `email` FROM `reg` WHERE `email` = '".$email."'"));
  13.  
  14. if($mysql2 > 0)
  15. {
  16. echo"Podany adres email został już zarejestrowany!!";
  17. }
  18. if($mysql > 0)
  19. {
  20. echo"Podany nick jest już zarejestrowany!!";
  21. }
  22. if($password == $password2)
  23. {
  24. $rejestracja = "INSERT INTO `reg` (`username`, `email`, `haslo`) VALUES ('".$name."', '".$email."', '".$password."')";
  25. $rejestracja2 = mysql_query($rejestracja);
  26.  
  27. if($rejestracja2)
  28. {
  29. echo "Zostałeś poprawnie zarejestrowany";
  30. }
  31. else
  32. {
  33. echo "Ups.. Wystąpił jakiś problem spróbuj ponownie za chwilę";
  34. }
  35. }
  36. else
  37. {
  38. echo "Podałeś różne hasła!!";
  39. }
  40. }
  41. else
  42. {
  43. echo "Nie podałeś wszystkich danych!";
  44. }
  45. ?>


Próbuj wink.gif
Dodałem addslashes i poprawiłem kilka błędów ortograficznych smile.gif
Tak w ogóle to w zapytaniach miałeś błędnie brakowało Ci '' przed emailem i nickiem smile.gif


@edit

Zrobiłem jeszcze to logowanie :] Troszkę zaingerowałem w kod, myślę że tak będzie lepiej, a jeśli to Ci przeszkadza to przepraszam smile.gif

  1. <html>
  2. <head>
  3. <title>Logownie</title>
  4. <meta http-equiv="content-type" content="text/html"; charset="iso-8859-2" />
  5. <meta http-equiv="content-language" content="pl">
  6. <style type="text/css">
  7. .log {
  8. margin-left:15px;
  9. margin-top:40px;
  10. background-color:red;
  11. width:600;
  12. height:72;
  13. }
  14. .zaloguj {
  15. margin-left:20px;
  16. }
  17. </style>
  18. </head>
  19. <body>
  20. <font size="25" color="blue"/> </br>Logowanie</font>
  21. <form action="logowanie.php" method="POST" class="log">
  22. <b>Login:</b>&nbsp;&nbsp <input type="text" name="username"/><!--</br>--><input class="zaloguj" name="loguj" type="submit" value="Zaloguj" /></br>
  23. <b>Hasło:</b>&nbsp;&nbsp <input type="password" name="haslo"/></br></br>
  24. <!-- <input class="zaloguj" name="loguj" type="submit" value="Zaloguj" /></br>-->
  25. <a href="rejestracja.php" /><font color="yellow"/>Jeśli nie posiadasz konta załóż je Za Darmo</font> </a>
  26. </form>
  27. </body>
  28. </html>
  29.  
  30.  
  31. <?php
  32. include ('db.php');
  33. $login = $_POST['username'];
  34. $pass = $_POST['haslo'];
  35.  
  36. if($login!=null and $pass!=null)
  37. {
  38. $mysql = mysql_fetch_array(mysql_query("SELECT `user_id` FROM `reg` WHERE `username` = '".$login."' AND `haslo` = '".$pass."'"));
  39. if(empty($mysql))
  40. {
  41. echo'<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>';
  42. include "menu/stopka.php";
  43. echo "<script type='text/javascript'>window.alert('Błędne haslo u/lub login'):Document.location.href = 'index.php';</script>";
  44. }
  45. else
  46. {
  47. $_SESSION['zalogowany'] = true;
  48. $_SESSION['username'] = $login;
  49. $_SESSION['haslo'] = $pass; // Nie wiem po co to dodajesz do sesji, ale to twoja decyzja :]
  50. /*echo "Jesteś zalogowany.";
  51. header("Location: 1/index2.php"); */
  52. echo "<script type='text/javascript'>window.alert(Jestes zalogowany'):Document.location.href = 'pages/index.php';</script>";
  53. }
  54. }
  55. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.