Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][klasy][mysql] Problem z rejestracją nowych użytkowników :/
Forum PHP.pl > Forum > PHP
Smoker
Witam wszystkich programistów smile.gif Jestem początkujący w dziedzinach programowania i chciałbym się was poradzić. W ramach nauki robię sobie stronkę opartą na php i myql i trochę wstyd ale utknąłem już na początku smile.gif Zacząłem od pisania skryptu który zaloguje mnie na stronę i to ładnie działa jednak mam problem przy skrypcie realizującym rejestrację nowych użytkowników. Wszystkie dane są przekazywane za pomocą metody POST a skrypt zachowe się tak jakby nie otrzymywał do tej zmiennej żadnych danych i wykonuje polecenie if(!isSet($_POST['user']) || !isSet...etc) powodujące powrót do strony formularza rejestracyjnego zamiast rejestracji. Próbowałem już chyba wszystkiego i nie wiem o co mu chodzi i co mogłem tam żle napisać :/ Poniżej zamieszczam kody 2 plików: rejestracja.php(z formularzem rejestracyjnym) i nowy_user.php(z poleceniami rejestracyjnymi) Byłbym bardzo wdzięczny gdyby któremuś z was udałoby się znaleźć co tu może być źle.

rejestracja.php
Kod
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  <html>
  <head>
    <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2">
  
    <title>Race - rejestracja</title>
  
    <link rel="stylesheet" href="style.css" type="text/css">
      
  <script language="JavaScript" type="text/javascript">
  <!-- Linia ukrywająca kod przed przeglądarkami nie obsługującymi JavaScriptu
  function sprawdz(){
      var f = document.forms.rejestracja;
      
      if(f.user.length < 3){
          alert('Nick musi mieć minimum 3 znaki!');
          return;
      }
      if(f.user.length > 16){
          alert('Nick nie może być dłuższy niż 16 znaków!');
          return;
      }
      if(f.haslo.length < 4){
          alert('Hasło musi mieć minimum 4 znaki!');
          return;
      }
      if(f.haslo.length > 16){
          alert('Hasło nie może być dłuższe niż 16 znaków!');
          return;
      }
      if(f.haslo.value != f.haslo2.value){
          alert('Podane hasła nie są identyczne!');
          return;
      }
      if(f.user.value == "" || f.haslo.value == "" || f.haslo2.value == "" || f.email.value == ""){
          alert('Wypełnij wszystkie wymagane pola!');
          return;
      }
  f.submit();
  }
  // koniec kodu JavaScriptu
  </script>
  </head>
  <body>
  <center>
  Wpisz swoje dane.<br>
   Dane oznaczone gwiazdką(*) są wymagane.<br>
  <form name="rejestracja" action="nowy_user.php" method="post">
  <table>
      <tr><td>Nick*</td><td><input name="user" type="text"></td></tr>
      <tr><td>Hasło*</td><td><input name="haslo" type="password"></td></tr>
      <tr><td>Powtórz hasło*</td><td><input name="haslo2" type="password"></td></tr>
      <tr><td>Email*</td><td><input name="email" type="text"></td></tr>
      <tr><td>Imię</td><td><input name="imie" type="text"></td></tr>
      <tr><td>Miasto</td><td><input name="miasto" type="text"></td></tr>
      <tr><td>Gg</td><td><input name="gg" type="text"></td></tr>
      <tr><td colspan="2" align="right"><input type="button" value="Zarejestruj" name="zarejestruj" onClick="sprawdz();"></td></tr>
  </table>
  </form>
  </center>
  </body>
  </html>


nowy_user.php
Ten plik sie tu nie zmieścił bo jest za duży smile.gif ale można go zobaczyć tutaj: nowy_user.php

Z góry dzięki za odpowiedź
jareeny
z niecierpliwością czekamy na drugi plik
Smoker
Cytat(jareeny @ 2.02.2009, 15:34:18 ) *
z niecierpliwością czekamy na drugi plik

Już jest ^^ smile.gif
jareeny
  1. <?php
  2. if($user == "" || $haslo == "" || $email == ""){
  3.          return EMPTY_FIELDS;
  4.      }
  5. ?>


na

  1. <?php
  2. if(empty($user) || empty($haslo) || empty($email)) {
  3. return EMPTY_FIELDS;
  4. }
  5. ?>


Choć to nie jest błąd, który powoduje złe działanie skryptu.

A ogólnie to proponuje wywalić wszystkie małpy przed funkcjami i sprawdzić czy nie ma błędów z bazą...

BTW. Co Ty przypisujesz tym stałym? ;o
Smoker
z małpami już próbowałem ale z połączeniem nie ma żadnych problemów a tamto zamieniłem i z funkcją empty nawet ładniej wygląda smile.gif
jareeny
Przepuść wszystkie POSTY przez var_dump i sprawdź czy w ogóle dane idą do nich
Smoker
przepuściłem i wszytsko w jaknajlepszym porządku smile.gif do każdej zmiennej $_POST przypisał odpowiednie dane

Kod
$_POST['user'] = string(4) "user"
$_POST['haslo'] = string(5) "haslo"
$_POST['email'] = string(5) "email"
$_POST['imie'] = string(4) "imie"
$_POST['miasto'] = string(6) "miasto"
$_POST['gg'] = string(2) "gg"
jareeny
  1. <?php
  2. $query = "INSERT INTO users SET user=$user, haslo=$haslo, email=$email, imie=$imie, miasto=$miasto, gg=$gg, dataRejestracji='CURDATE()' ";
  3. ?>


Każdą zmienną daj w "" (apostrofy/cudzysłowy)
Smoker
tez nic tongue.gif probowałem też usunąc poprostu kod odpowiadający za przekierowanie do strony rejestracji(chociaz powinien zadziałać tylko jeśli nie ma nic w zmiennych $_POST) bo zamiast rejestrować wraca na tą stronę:

Kod
else if(!isSet($_SESSION['user']) || !isSet($_SESSION['haslo']) || !isSet($_SESSION['email'])){
      include('rejestracja.php');
      }


ale dalej nic bo wykonuje skrypt na samym końcu wstawiający komunikat że jest błąd a powinien odczytać definicję OK która pozwala na dodanie nowych rekordów w bazie danych

HAHAHA jaki lol ze mnie sciana.gif sciana.gif sciana.gif dobra juz wiem co mam zle haha.gif i juz dziala teraz zauwazylem piszac ten post tongue.gif w kodzie wszedzie zamiast $_SESSION powinno byc $_POST :

Kod
else if(!isSet($_POST['user']) || !isSet($_POST['haslo']) || !isSet($_POST['email'])){
      include('rejestracja.php');
      }


Noi dziala haha.gif Ale dzieki JAREENY za chęć pomocy! I jakby nie patrzec to mi pomogles tongue.gif bo gdyby nie ty to temat by sie nie rozwinal i bym tego nie zauwazyl smile.gif Jeszcze raz dzieki ide pisac dalej tongue.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.