Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
PDO+PHP+MyQL(rejestracja)
#1
Question 
Witam przedstawiam tutaj kod rejestracji, wszystko smiga ładnie pięknie ale chciałem się dowiedzieć co muszę tu pozmieniać aby korzysta z PDO, próbowałem z tych kursów PDO ale jedyne co udało mi się zrobić to połączyć z baza i wyciągnąć jakieś dane, jednak tutaj ten skrypt jest bardziej złożony i cokolwiek nie zrobiłem wywalało mi błędy, proszę o jakieś wskazówki ewentualnie linki do jakiś przykładów z PDO Wink

baza SQL
Kod:
CREATE TABLE user (
   user_id MEDIUMINT(3) unsigned NOT NULL auto_increment,
   username VARCHAR(20) NOT NULL,
   access VARCHAR(10),
   email VARCHAR(20) NOT NULL,
   haslo VARCHAR(60) NOT NULL,
   data_rejstacji timestamp NOT NULL,
   PRIMARY KEY (user_id)
   ) Type = MyISAM;

plik config
Kod:
<?
   $dbhost = 'localhost';
   $dbuser = 'root'; // tutaj podajemy login do bazy danych
   $dbpass = 'admin7'; // tutaj podajemy nasze haslo do bazy
   $dbname = 'ProjektFilm'; // natomiast tutaj wpisujemy nazwe bazy danych
  
   $dbc = @mysql_connect ($dbhost, $dbuser, $dbpass) or die ('Nie moge połączyć sie z bazą danych. Przepraszamy z kłopoty');
   printf ('Polaczenie Nawiazane');
   mysql_select_db ($dbname) or die ('Problemy z baza danych. Przepraszamy z kłopoty');
   printf ('Baza wybrana');    
  
   /*funkcja która poprzedza znaki specjalne odwrotnymi ukośnikami*/
   function usun($data){
  
       GLOBAL $dbc;
           if (ini_get('magic_quotes_gpc')){
               $data = stripslashes($data);
           }
       return mysql_real_escape_string($data, $dbc);
       }
   ?>
i plik rejestracji:
Kod:
<?
if (isset($_POST['submit'])){
/*sprawdzamy czy jakie kolwiek dane zostały przeslane do skryptu z formularza.
   Sprawdzamy to za pomoca funkcji isset(); */
     require_once('config_db.php');    //załączamy plik config_db.php
    
/*Pokoleij sprawdzamy czy pola wejsciowe są zgodne z naszymi wyrażeniami regularnymi*/

     //LOGIN
     if(isset($_POST['login'])) {
       if(preg_match("/^[a-zA-Z0-9-_]+$/", stripslashes(trim($_POST['login'])))){
         $l = usun($_POST['login']);
       }else{
         $l = FALSE;
         $message .= '<font color="red">Proszę podać login</font>
';
       }
    }
     //E-MAIL
     if(isset($_POST['email'])) {
        if(preg_match("/^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-.]+$/", stripslashes(trim($_POST['email'])))){
          $e = usun($_POST['email']);
        }else{
          $e = FALSE;
          $message .= '<font color="red">Proszę podać email</font>
';
        }
     }    
/*Jezeli wprowadzone dane niespelnia warunku to zostanie przypisana do zmiennych wartosc FALSE
   i zwrocona wiadomosc o bledzie.*/
     //HASLO
    if(isset($_POST['pass'])) {
       if(preg_match("/^[a-zA-Z0-9-_]+$/", stripslashes(trim($_POST['pass'])) ) ) {
            if($_POST['pass'] == $_POST['pass2']) {
                $p = usun($_POST['pass']);
            }else{
                $message .= '<font color="red">Podane hasła różnią się od siebie</font>
';
            }
        }else{
          $message .= '<font color="red">Prosze podać hasło</font>
';
        }
     }
/*Sprawdzam haslo, nastepnie sprawdzam czy hasla podane sa takie same w przeciwnym razie zostanie
   zwrocony blad i nastapi przypisanie zmiennej wartosci FALSE. Jeżeli jest wszystko OK czyli wszystkie
   pola wejsciowe spełniają zalozenia to lecimy dalej*/
  
         if ( $l && $e && $p ){
        
         $query = "SELECT user_id FROM user WHERE username='$l'";
         $result = @mysql_query($query);
            
             // sprawdzanie czy takie konto istnienie
             if ( mysql_num_rows($result) == 0){ // jezeli nie istnieje
                
/*Sprawdzi czy juz zostało stworzone konto o podanym nicku jezeli tak zostanie zwrocony blad,
  w przeciwnym razie pojdzie dalej*/

/*Dodajnie danych do bazy danych, haslo koduje za pomoca funkcji PASSWORD(); ktora
  dziala tylko w jedna strone i nie da sie jej odkodowac.*/
                              
                 //dodajemy uzytkownika do bazy
                 $query2 = "INSERT INTO user (username, email, haslo, data_rejstacji) VALUES ('$l', '$e', PASSWORD('$p'), NOW())";
                 $result2 = @mysql_query($query2);
                
                     if ($result2){ //jezeli nie wystapily zadne bledy
                         echo 'Zostałes zarejstrowany na stronie';
                     }else{
                         echo 'Ze względu na wystąpienie błędu systemowego rejestracja nie była możliwa. Przepraszamy za wszelkie niedogodnościi.
';
                     }                
             }else{
                 $message .= '<font color="red">Konto o podanym nicku juz istnieje</font>
';
             }
            
     }else{
         $message .= '<font color="red">Spróbuj ponownie</font>
';
     }
}    
?>
    
<html>
<head>
<title>Rejstracja</title>
<script type="text/javascript">
                 <!-- //
                         function regulamin()
                         {
                         if(document.getElementById('reg').checked == true )
                         {
                                 document.getElementById('dalej').disabled=false;
                         }
                         else
                         {
                                 document.getElementById('dalej').disabled=true;
                         }
                         }
                 // ]]> -->
</script>
<!--dzieki temu skryptowi mozemy sprawdzic czy uzytkownik akceptowal nasz regulamin czy tez nie
jezeli akceptowal bedzie mogl sie zarejstrowac-->        

</head>
<body>
<form method="post" action="<? echo $_SERVER['PHP_SELF']; ?>">
<table align="left" border="0">
<tr>
<td align="right" class="uni_01">login:</td>
<td><input type="text" name="login" size="35" value="<? if (isset($_POST['login'])){ echo $_POST['login']; }?>"><small>*minimalna długość loginu to 4 znaki</small>
</td>
</tr>
<tr>
<td align="right" class="uni_01">email:</td>
<td><input type="text" name="email" size="35" value="<? if (isset($_POST['email'])){ echo $_POST['email']; } ?>">
</td>
</tr>
<tr>
<td align="right" class="uni_01">hasło:</td>
<td><input type="text" name="pass" size="25"><small>*minimalna długosc hasła do 4 znaki</small>
</td>
</tr>
<tr>
<td align="right" class="uni_01">powtórz hasło::</td>
<td><input type="text" name="pass2" size="25">
</td>
</tr>
<tr>
<td align="right" class="uni_01">&nbsp;</td>
<td>
<b>Oświadczam, że zapoznałem się z regulaminem i zgadzam się na warunki tam zamieszczone</b>
<input type="checkbox" id="reg" onclick="regulamin()" />
</td>
</tr>
<tr>
<td align="right" class="uni_01">&nbsp;</td>
<td>
<input style="font-weight: bold;" type="submit" name="submit" value="loguj" id="dalej" disabled="disabled">
</td>
</tr>
</table>
</form>
<Br><Br><Br><Br><Br><Br><Br>
<div align="left">
<!-- if (isset($_POST['email'])){ echo $_POST['email']; } jezeli podano juz jaka wartosc w tym polu wejsciowym
a skrypt zakonczyl sie bledem to zostaje wyswietlona wartosc jaka wprowadzilismy-->
<!--Jezeli wystapily jakies bledy wystwietlimy je w tym momencie-->
<?
     if(isset($message)){
         echo $message;
     }
?>
</div>

z góry dzięki za podpowiedzi Wink
Odpowiedz


Podobne wątki…
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Logowanie i rejestracja - includowanie toma5z 3 4,366 22-06-2011, 03:03
Ostatni post: mateo
  Rejestracja uzytkownika toma5z 10 8,065 08-06-2011, 23:36
Ostatni post: toma5z

Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości
Sponsorzy i przyjaciele
SeoHost.pl