Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Reestracja użytkownika i wyciągniecje z bazy informacji.
Forum PHP.pl > Forum > Przedszkole
Croos22
Witam.

Mógłby mi ktoś sprawdzić czy poniższy formularz rejestracyjny jest prawidłowy?

Kod
    <?php
    
    // łączymy się z bazą danych i wybieramy potrzebną baze danych
    $link_id = mysql_connect("localhost", "root", "pass");

    // tu root i pass są wprowadzone przez was w zależności od konfiguracji

    waszego serwera
    mysql_select_db("test");
    mysql_close($link_id);
    
    // stworzymy dwie przydatne funkcje...jedna będzie tworzyła nagłówek

    strony, a druga stopke strony
    function html_header()
    {
    global $new_win_width, $new_win_height;
    ?>
    <HTML>
    <HEAD>
    
    <TITLE>Przegladarka rekordow</TITLE>
    </HEAD>
    <BODY>
    <?php
    }
    
    function html_footer()
    {
    ?>
    </BODY>
    </HTML>
    <?php
    }
    
    
    function in_use($userid) // funkcja ta sprawdza czy nie dany login nie

    jest już wykorzystany
    {
    global $tabela_uzytkownikow;
    
    $query = "SELECT userid FROM $tabela_uzytkownikow WHERE userid =

    'userid'";
    $result = mysql_query($query);
    if(!mysql_num_rows($result)) return 0;
    else return 1;
    }
    
    
    function register_form() // funkcja ta wyświetla nam formularz w który

    użytkownik wpisze swoje dane
    {
    global $userid, $username;
    global $PHP_SELF;
    ?>
    <CENTER><H3>Utworz swoje konto</H3></CENTER>
    <FORM METHOD="post" ACTION="<?php echo $PHP_SELF ?>">
    <INPUT TYPE="hidden" NAME="action" VALUE="register">
    <DIV ALIGN="center"><CENTER><TABLE BORDER="1" WIDTH="90%">
    <TR>
    <TH WIDTH="30%" NOWRAP>Wybrany identyfikator</TH>
    <TD WIDTH="70%"><INPUT TYPE="text" NAME="userid" VALUE="<?php echo

    $userid ?>" SIZE="8" MAXLENGHT="8"></TD>
    </TR>
    <TR>
    <TH WIDTH="30%" NOWRAP>Wybrane hasło</TH>
    <TD WIDTH="70%"><INPUT TYPE="password" NAME="userpassword"

    SIZE="15"></TD>
    </TR>
    <TR>
    <TH WIDTH="30%" NOWRAP>Powtórz hasło</TH>
    <TD WIDTH="70%"><INPUT TYPE="password" NAME="userpassword2"

    SIZE="15"></TD>
    </TR>
    <TR>
    <TH WIDTH="30%" NOWRAP>Imie i Nazwisko</TH>
    <TD WIDTH="70%"><INPUT TYPE="text" NAME="username" VALUE="<?php echo

    $username ?>" SIZE="20"></TD>
    </TR>
    <TR>
    <TH WIDTH="30%" COLSPAN="2" NOWRAP>
    <INPUT TYPE="submit" VALUE="Rejestruj">
    <INPUT TYPE="reset" VALUE="Wyczyść">
    </TH>
    </TR>
    </TABLE>
    </CENTER></DIV>
    </FORM>
    <?php
    }
    
    
    function create_account() // funckja ta tworzy tworzy konto danego

    użytkownika
    {
    global $userid, $username, $userpassword, $userpassword2;
    
    
    
    // można też na wszelki wypadek dopisać warunki funkcji if które

    sprawdzałyby czy podane dane są poprawne. Ja ten krok pomijam
    
    $link_id = mysql_connect("localhost", "root", "pass");
    
    $query = "INSERT INTO user VALUES(NULL, '$userid', password

    ('$userpassword'), '$username')";
    
    $result = mysql_query($query);
    $usernumber = mysql_insert_id($link_id);
    
    
    html_header();
    ?>
    <CENTER><H3>
    <?php echo $username ?>, dziękujemy za zarejestrowanie się
    </H3></CENTER>
    
    <DIV ALIGN="center"><CENTER><TABLE BORDER="1" WIDTH="90%">
    <TR>
    <TH WIDTH="30%" NOWRAP>Numer użytkonika</TH>
    <TD WIDTH="70%"><?php echo $usernumber ?></TD>
    </TR>
    <TR>
    <TH WIDTH="30%" NOWRAP>Wybrany identyfikator</TH>
    <TD WIDTH="70%"><?php echo $userid ?></TD>
    </TR>
    <TR>
    <TH WIDTH="30%" NOWRAP>Wybrane hasło</TH>
    <TD WIDTH="70%"><?php echo $userpassword ?></TD>
    </TR>
    <TR>
    <TH WIDTH="30%" NOWRAP>Imię i Nazwisko</TH>
    <TD WIDTH="70%"><?php echo $username ?></TD>
    </TR>
    </TABLE></CENTER></DIV>
    <?php
    html_footer();
    }
    switch($action)
    {
    case "register":
    create_account();
    break;
    default:
    html_header();
    register_form();
    html_footer();
    break;
    }
    ?>



baza
Kod
    CREATE TABLE user (
    usernumber MEDIUMINT(10) NOT NULL AUTO_INCREMENT,
    username VARCHAR(30) NOT NULL,
    userid VARCHAR(10) BINARY NOT NULL,
    userpassword VARCHAR(15) BINARY NOT NULL,
    PRIMARY KEY (userid),
    UNIQUE usernumber (usernumber)
    )



Tak się to wszystko prezentuje na stronie rejestracja
A i czy była by możliwość automatycznego przydzielania unikalnego identyfikatora np od 1 do 50?
dziamber
Kod jak dla mnie jest fatalny, aż roi się od zmiennych globalnych. Przydziela Ci już unikalny identyfikator. Pole "usernumber" samo tworzy unikalne id dla każdego nowego użytkownika.
Croos22
A czy jest poprawnie napisany?Coś mi się wydaje, że nie rejestruje nowego użytkownika.Czy jest możliwość sprawdzenia w bazie czy dodało?
pedro84
Cytat(Croos22 @ 5.04.2010, 14:19:58 ) *
A czy jest poprawnie napisany?Coś mi się wydaje, że nie rejestruje nowego użytkownika.Czy jest możliwość sprawdzenia w bazie czy dodało?

Żartujesz? Przecież możesz zobaczyć w phpmyadmin... Dodaj przy dodawaniu rekordu do bazy
Kod
or die()
i zobacz.
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.