Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Rejestracja
Forum PHP.pl > Forum > PHP
Kamil9132
Witam
Mam taki kod:

  1. include("config.php");
  2.  
  3. $ip = $_SERVER['REMOTE_ADDR'];
  4.  
  5. $nickde = $_SESSION['nick'];
  6.  
  7. $kod = $_POST['pole'];
  8.  
  9. $kodz = $_POST['kodz'];
  10. if(!isset($nickde)){
  11.  
  12. include $_SERVER['DOCUMENT_ROOT'].'/niezreklamy.php';
  13. include $_SERVER['DOCUMENT_ROOT'].'/spis tresci.php';
  14. echo "<font size=\"7\"><div style=\"margin-left: 320px; max-width: 900px;\">";
  15.  
  16. if($kod == $kodz){
  17.  
  18.  
  19.  
  20.  
  21.  
  22. $akcja = $_GET['akcja'];
  23. if ($akcja == wykonaj) {
  24. //
  25. $nick = substr(addslashes(htmlspecialchars($_POST['nick'])),0,32);
  26. $haslo = substr(addslashes($_POST['haslo']),0,32);
  27. $vhaslo = substr($_POST['vhaslo'],0,32);
  28. $email = substr($_POST['email'],0,32);
  29. $vemail = substr($_POST['vemail'],0,32);
  30. $nick = trim($nick);
  31. //kilka sprawdzen co do nicku i maila
  32. $spr1 = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM uzytkownicy WHERE nick='$nick' LIMIT 1")); //czy user o takim nicku istnieje
  33. $spr2 = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM uzytkownicy WHERE email='$email' LIMIT 1")); // czy user o takim emailu istnieje
  34. $pos = strpos($email, "@");
  35. $pos2 = strpos($email, ".");
  36. $emailx = explode("@", $email);
  37. if ($emailx[1] == 'o2.pl') {
  38. $emailx1 = $emailx[0].'@go2.pl';
  39. $emailx2 = $emailx[0].'@tlen.pl';
  40. $spr3 = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM uzytkownicy WHERE email='$emailx1' OR `email`='$emailx2' LIMIT 1"));
  41. }elseif ($emailx[1] == 'go2.pl') {
  42. $emailx1 = $emailx[0].'@o2.pl';
  43. $emailx2 = $emailx[0].'@tlen.pl';
  44. $spr3 = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM uzytkownicy WHERE email='$emailx1' OR `email`='$emailx2' LIMIT 1"));
  45. }elseif ($emailx[1] == 'tlen.pl') {
  46. $emailx1 = $emailx[0].'@go2.pl';
  47. $emailx2 = $emailx[0].'@o2.pl';
  48. $spr3 = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM uzytkownicy WHERE email='$emailx1' OR `email`='$emailx2' LIMIT 1"));
  49. }
  50. $komunikaty = '';
  51. $spr4 = strlen($nick);
  52. $spr5 = strlen($haslo);
  53. //sprawdzenie co uzytkownik zle zrobil
  54. if (!$nick || !$email || !$haslo || !$vhaslo || !$vemail ) {
  55. $komunikaty .= "Musisz wypełnić wszystkie pola!<br>"; }
  56. if ($spr4 < 4) {
  57. $komunikaty .= "Login musi mieć przynajmniej 4 znaki<br>"; }
  58. if ($spr5 < 4) {
  59. $komunikaty .= "Hasło musi mieć przynajmniej 4 znaki<br>"; }
  60. if ($spr1[0] >= 1) {
  61. $komunikaty .= "Ten login jest zajęty!<br>"; }
  62. if ($spr2[0] >= 1) {
  63. $komunikaty .= "Ten e-mail jest już używany!<br>"; }
  64. if ($email != $vemail) {
  65. $komunikaty .= "E-maile się nie zgadzają ...<br>";}
  66. if ($haslo != $vhaslo) {
  67. $komunikaty .= "Hasła się nie zgadzają ...<br>";}
  68. if ($pos == false OR $pos2 == false) {
  69. $komunikaty .= "Nieprawidłowy adres e-mail<br>"; }
  70. if ($spr3[0] >= 1) {
  71. $komunikaty .= "Nie można zarejestrować kilku kont na jedną pocztę o2.<br>"; }
  72.  
  73. //jesli cos jest nie tak to blokuje rejestracje i wyswietla bledy
  74. if ($komunikaty) {
  75. <b>Rejestracja nie powiodła się,<br>popraw następujące błędy:</b><br><br>
  76. '.$komunikaty.'<br>';
  77. } else {
  78. //jesli wszystko jest ok dodaje uzytkownika i wyswietla informacje
  79. $nick = str_replace ( ' ','', $nick );
  80. $haslo = md5($haslo); //szyfrowanie hasla
  81.  
  82. mysql_query("INSERT INTO `uzytkownicy` (nick, email, haslo, ip) VALUES('$nick','$email','$haslo','$ip')") or die("Nie mogłem Cie zarejestrować!");
  83.  
  84. echo '<br><span style="color: green; font-weight: bold;">Witaj '.$nick.'<br><br>Zostałeś zarejestrowany.<br> Teraz możesz się <a href="logowanie.php">zalogować.</a></span><br>';
  85. }


Ale zawszę jak próbuje się zarejestrować to wyskakuje błąd:

"Nie mogłem cię zarejestrować"

Jaka jest tego przyczyna ?
thek
Ech... Skoro tak, to zamiast nic nie mówiącego:
or die("Nie mogłem Cie zarejestrować!");
walnij
or die( mysql_error() );
I myśl, a przede wszystkim naucz się debugować tego typu błędy. Masz temat "Jak poprawnie zadać pytanie" przyklejony w przedszkolu, więc przeczytaj i naucz się do tego stosować.
Kamil9132
Pojawiła sie taka informacja:

'Duplicate entry '0' for key 'PRIMARY'

Co to znaczy ?
W bazie mam taki indeks:

Nazwa klucza Typ Jednoznaczny Spakowany Column Moc Metoda porównywania napisów Null Komentarz
PRIMARY BTREE Tak Nie id 1 A



EDIT: Znalazłem przyczynę smile.gif
Nie ustawiłem AUTO_INCREMENT smile.gif
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.