formularz , mysql , php , xhtml

Forum przeznaczone dla MySql - bazy danych.

formularz , mysql , php , xhtml

Postprzez alan-it » czwartek, 15 października 2009, 15:26

Witam mam problem z dodaniem uzytkownika o nazwie klient do bazy danych mysql do bazy klienci tabela klienci.
Najsmieszniejsze jest to ze nie wyskakuje zaden blad a jednak uzytkownik dodany z formularza sie nie dodaje w bazie danych :(

kod html wyglada tak
Kod: Zaznacz cały

  <div id="prawy_bloczek" style="float: left; padding-right: 0px;  width: 650px; height: 790px; ">
             <form action="rejestracja.php" method="post" enctype="multipart/form-data">
          <fieldset><legend align="center" style="color: white">  Zarejestruj sie</br></legend>
          </br>
          <div>
                Imie:         <input name="imie" type="text"  size="23" maxlength="20"/></br>
            Nazwisko:     <input name="nazwisko" type="text"  size="43" maxlength="40"/></br>
            Login:        <input name="login" type="text"  size="23" maxlength="20"/></br>
            Haslo:        <input name="haslo" type="password"  size="12" maxlength="10"/></br>
            <label for="mail">e-mail:</label>
                          <input name="mail" type="text"  size="53" maxlength="50" id="mail"/>
                      
                                <script type="text/javascript">
                                 document.getElementById('mail').onchange = function() {
                                    var WzorMaila = /^[0-9a-z_.-]+@[0-9a-z.-]+\.[a-z]{2,3}$/i
                                    if (!WzorMaila.test(this.value)) {
                                     alert("Błędny mail!");
                                    } else {
                                     alert('Twój mail to: ' + this.value);
                                 }
                                 }
                                 </script>

                      
                      
                      
                       </br>
            gadu-gadu:    <input name="gadu" type="text"  size="13" maxlength="10"/></br>
            Miejscowosc:  <input name="miejscowosc" type="text" size="33" maxlength="30"/></br>
            Wojewodztwo:   <select name="wojewodztwo">
               <option value="dolnoslaskie">dolnoslaskie</option>
               <option value="slaskie">slaskie</option>
               <option value="malopolskie">malopolskie</option>
               <option value="wielkopolskie">wielkopolskie</option>
               <option value="kujawsko-pomorskie">kujawsko-pomorskie</option>
               <option value="lubelskie">lubelskie</option>
               <option value="lubuskie">lubuskie</option>
               <option value="lodzkie">lodzkie</option>
               <option value="mazowieckie">mazowieckie</option>
               <option value="opolskie">opolskie</option>
               <option value="podkarpackie">podkarpackie</option>
               <option value="podlaskie">podlaskie</option>
               <option value="pomorskie">pomorskie</option>
               <option value="swietokrzyskie">swietokrzyskie</option>
               <option value="warminsko-mazurskie">warminsko-mazurskie</option>
               <option value="zachodniopomorskie">zachodniopomorskie</option>
               </select>
            </br></br></br>
            
            
<input type='checkbox' name='one'> Wyrazam zgode na przesylanie informacji handlowych firmy Alan-IT <br/>
<input type='checkbox' name='two'> Akceptuje regulamin
</br>
            
            <button type="submit" name="wyslij">
              <img src="duzy-czerwony-przycisk.png" alt="Zapisz" />
            </button>

                <Button type="reset" value="Czysc" />
            <img src="duzy-czerwony-przycisk.png" alt="Reset" />
            </button>
            
             </div></fieldset>
            </form>
                      </div>
         
         
</div>



kod php wyglada tak
Kod: Zaznacz cały
     if ((isset($_POST['imie']) && isset($_POST['nazwisko']) && isset($_POST['login']) && isset($_POST['haslo']) && isset($_POST['mail']) && isset($_POST['gadu']) && isset($_POST['miejscowosc'])))
   {
        $_POST['imie'] = addslashes(strip_tags($_POST['imie']));
        $_POST['nazwisko'] = addslashes(strip_tags($_POST['nazwisko']));
        $_POST['login'] = addslashes(strip_tags($_POST['login']));
        $_POST['haslo'] = addslashes(strip_tags($_POST['haslo']));
        $_POST['mail'] = addslashes(strip_tags($_POST['mail']));
        $_POST['gadu'] = addslashes(strip_tags($_POST['gadu']));
        $_POST['miejscowosc'] = addslashes(strip_tags($_POST['miejscowosc']));
        $_POST['wojewodztwo'] = addslashes(strip_tags($_POST['wojewodztwo']));

      if ((!empty($_POST['imie']) && !empty($_POST['nazwisko']) && !empty($_POST['login']) && !empty($_POST['haslo']) && !empty($_POST['mail']) && !empty($_POST['gadu']) && !empty($_POST['miejscowosc'])))
      {
         echo "</br>mozesz sie zarejestrowac</br>";

                $polacz=@mysql_connect('localhost','root') or die ("nie udalo mi sie polaczyc z serwerem"); //laczenie z serwerem

                @mysql_select_db('klienci') or die ("nie udalo sie polaczyc z baza danych klienci");    //laczenie z bd "klienci"
               

               
        $imie        = trim($_POST['imie']);
        $nazwisko    = trim($_POST['nazwisko']);
        $login       = trim($_POST['login'])  ;
        $haslo       = trim($_POST['haslo']) ;
        $mail        = trim($_POST['mail']);
        $gadu        = trim($_POST['gadu'] ) ;
        $miejscowosc = trim($_POST['miejscowosc']);
        $wojewodztwo = trim($_POST['wojewodztwo']);

     /**********************************REJESTRACJA UZYTKOWNIKA z formularza********************************************************/
               /*
                $wstaw = "INSERT INTO klienci set imie='$imie',nazwisko='$nazwisko',login='$login',haslo='$haslo',mail='$mail',gadu='$gadu',miejscowosc='$miejscowosc',wojewodztwo='$wojewodztwo' ";

                mysql_query($wstaw) or die ("nie udalo mi sie zarejestrowac uzytkownika");
                */
                mysql_query("
                           INSERT INTO `klienci`.`klienci` ('imie',
                                                            'nazwisko',
                                                            'login',
                                                            'haslo',
                                                            'mail',
                                                            'gadu',
                                                            'miejscowosc'
                                                            )
                           VALUES
                                                (
                                                            '$imie',
                                                            '$nazwisko',
                                                            '$login',
                                                            '$haslo',
                                                            '$mail',
                                                            '$gadu',
                                                            '$miejscowosc'
                                                )
                           ") or die ("nic nie dodano");





Pozdrawiam i prosze o pomoc :)
Tomek
Alan IT

www.alan-it.pl
alan-it
Początkujący
Początkujący
 
Posty: 10
Dołączył(a): czwartek, 15 października 2009, 15:25

Re: formularz , mysql , php , xhtml

Postprzez Morfidon » czwartek, 15 października 2009, 19:01

Witam,

Prawidłowe zapytanie do wpisywania do bazy danych powinno wyglądać tak:
Kod: Zaznacz cały
     mysql_query("
                           INSERT INTO klienci (imie,
                                                            nazwisko,
                                                            login,
                                                            haslo,
                                                            mail,
                                                            gadu,
                                                            miejscowosc
                                                            )
                           VALUES
                                                (
                                                            '$imie',
                                                            '$nazwisko',
                                                            '$login',
                                                            '$haslo',
                                                            '$mail',
                                                            '$gadu',
                                                            '$miejscowosc'
                                                )
                           ") or die ("nic nie dodano");



Po INSTERT INTO klienci nie powinno się używać apostrofów.

Pozdrawiam,

Arkadiusz
Morfidon
Administrator
Administrator
 
Posty: 593
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48

Re: formularz , mysql , php , xhtml

Postprzez alan-it » czwartek, 15 października 2009, 19:06

Niestety to nie pomaga :(
juz przechodze zalamanie....
2 dni nad tym siedze :(
Tomek
Alan IT

www.alan-it.pl
alan-it
Początkujący
Początkujący
 
Posty: 10
Dołączył(a): czwartek, 15 października 2009, 15:25

Re: formularz , mysql , php , xhtml

Postprzez Morfidon » czwartek, 15 października 2009, 19:57

Przetestowałem z tym co poprawiłem - u mnie wszystko działa. A może pracujesz non stop na rejestracja.php ? Pamiętaj, że wysyłasz tam przy pomocy zmiennej tablicowej $_POST, wartości z poprzedniego pliku, także najpierw musisz uruchomić plik z rozszerzeniem .html lub .htm
Morfidon
Administrator
Administrator
 
Posty: 593
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48

Re: formularz , mysql , php , xhtml

Postprzez alan-it » czwartek, 15 października 2009, 20:02

Czyli powinienem zrestartowac serwer? Dziekuje bardzo za pomoc :)
Tomek
Alan IT

www.alan-it.pl
alan-it
Początkujący
Początkujący
 
Posty: 10
Dołączył(a): czwartek, 15 października 2009, 15:25

Re: formularz , mysql , php , xhtml

Postprzez Morfidon » czwartek, 15 października 2009, 20:03

Nie musisz restartować serwera, wystarczy, że wyślesz nowe wartości dla tablicy asocjacyjnej $_POST z pliku o rozszerzeniu .html lub .htm
Morfidon
Administrator
Administrator
 
Posty: 593
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48

Re: formularz , mysql , php , xhtml

Postprzez alan-it » czwartek, 15 października 2009, 20:19

I dodaje do bazy danych u Ciebie??
Tomek
Alan IT

www.alan-it.pl
alan-it
Początkujący
Początkujący
 
Posty: 10
Dołączył(a): czwartek, 15 października 2009, 15:25

Re: formularz , mysql , php , xhtml

Postprzez Morfidon » czwartek, 15 października 2009, 20:23

Tak u mnie wszystko działa w porządku po zmianie, którą przedstawiłem powyżej.

Jeżeli dalej Ci nie działa spróbuj więcej zrobić linii od debugowania, aż wykryjesz błąd. Może źle tabelka zrobiona, ID nie ustawione jako auto_increment i jako klucz etc.

PS kod który skopiowałem od Ciebie nie miał na końcu dwóch znaków "}", ale to pewnie omyłka przy kopiowaniu M.
Morfidon
Administrator
Administrator
 
Posty: 593
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48

Re: formularz , mysql , php , xhtml

Postprzez alan-it » czwartek, 15 października 2009, 20:45

Dzieki bardzo za pomoc, juz dziala :))))))

klucz wykasowalem i dalem jeszcze raz i juz jest ok :)

Mam jeszcze problem z wojewodztwami bo tam jest pole wyboru (select/option)

Niestety w bd mi nie dodaje tego co wybiore.

Ale baaardzo dzieki za pomoc

Pozdrawiam
Tomek
Tomek
Alan IT

www.alan-it.pl
alan-it
Początkujący
Początkujący
 
Posty: 10
Dołączył(a): czwartek, 15 października 2009, 15:25

Re: formularz , mysql , php , xhtml

Postprzez Morfidon » czwartek, 15 października 2009, 22:28

Hmm, tak samo się odczytuje wartość z rozwijalnej listy "select", z tego co widzę analizując Twój kod to omyłkowo chyba zapomniałeś dodać w drugim "insercie" województwo.

Notabene pisząc wszelakiego rodzaju programy trzeba się wczuć w komputer i zniżyć się do jego poziomu, niestety, czy też "stety" na razie maszyny nie mają super sztucznej inteligencji i nie domyślają się naszych zamiarów ;) Także informatyczne panaceum na niepopełnianie błędów to czytanie linijka po linijce, co często jest niestety męczące i czasochłonne ;)

Pozdrawiam,

Arkadiusz
Morfidon
Administrator
Administrator
 
Posty: 593
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48

Następna strona

Powrót do MySql

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość

cron