Problem z formularzem i datą urodzenia

2012-11-29 19:11
0

Dzień dobry,mam problem z rejestracją.Polega on na tym,że mam datę w int(MYSQL) i <select>(HTML) i nie mogę zrobić tak,żeby uzgodnić.Szukałem w internecie i nic nie znalazłem.
Oto błędy:

Notice: Undefined index: birth in C:\xampp\htdocs\tablica\editprofile.php on line 21
Notice: Uninitialized string offset: 0 in C:\xampp\htdocs\tablica\editprofile.php on line 22
Notice: Uninitialized string offset: 0 in C:\xampp\htdocs\tablica\editprofile.php on line 22
Notice: Uninitialized string offset: 0 in C:\xampp\htdocs\tablica\editprofile.php on line 22
Notice: Undefined index: user_plec in C:\xampp\htdocs\tablica\editprofile.php on line 117

I jeszcze coś wyskakuje:

Array (
 [fname] =>
 [lname] =>
 [email] =>
 [new_password] =>
 [new_password2] =>
 [plec] =>
 [data_urodzenia] => Array (
 [dzien] => 
 [miesiac] => 
 [rok] => )
 [password] =>
 [website] =>
 [from] =>
 [birth] => ) 

A oto kod:

<?php
include 'config.php';
db_connect();

check_login();

$user_data = get_user_data();

// jeśli zostanie naciśnięty przycisk "Edytuj profil"
if(isset($_POST['email'])) {
    // filtrujemy dane
    $_POST['website'] = clear($_POST['website']);
    $_POST['from'] = clear($_POST['from']);
    $_POST['new_password'] = clear($_POST['new_password']);
    $_POST['new_password2'] = clear($_POST['new_password2']);
    $_POST['password'] = clear($_POST['password']);
    $_POST['email'] = clear($_POST['email']);
    $_POST['fname'] = clear($_POST['fname']);
    $_POST['lname'] = clear($_POST['lname']);
    $_POST['plec'] = clear($_POST['plec']);
    $_POST['birth'] = clear($_POST['birth']);
    $data_urodzenia = date($_POST['birth']['rok'].'.'.$_POST["birth"]['miesiac'].'.'.$_POST["birth"]['dzien']);

    // zmienne tymczasowe na treść błędu
    $err = '';
    // i zapytanie sql
    $up2 = '';

    // jeśli zostanie podane nowe hasło lub inny email
    if(!empty($_POST['new_password']) || $_POST['email'] != $user_data['user_email']) {
        // sprawdzamy czy zostało podane aktualne hasło
        if(empty($_POST['password'])) {
            $err = '<p>Jeśli chcesz zmienić hasło lub adres email musisz podać aktualne hasło.</p>';
        // jeśli zostało podane to sprawdzamy czy jest poprawne
        } elseif(codepass($_POST['password']) != $user_data['user_password']) {
            $err = '<p>Podane aktualne hasło jest nieprawidłowe.</p>';
        } else {
            // jeśli wszystko jest ok...

            // sprawdzamy czy user chce zmienić hasło
            if(!empty($_POST['new_password'])) {
                // jeśli podane dwa hasła są różne to wyświetlamy błąd
                if($_POST['new_password'] != $_POST['new_password2']) {
                    $err = '<p>Podane hasła nie są takie same.</p>';
                // jeśli wszystko jest ok, dopisujemy do zmiennej tymczasowej zapytanie do zaktualizowania hasła
                } else {
                    $up2.= ", `user_password` = '".codepass($_POST['new_password'])."'";
                }
            }
            // sprawdzamy czy user chce zmienić email (czy ten podany jest różny od aktualnego)
            if($_POST['email'] != $user_data['user_email']) {
                // sprawdzamy czy podany email jest prawidłowy
                if(filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) === false) {
                    $err = '<p>Podany email jest nieprawidłowy.</p>';
                } else {
                    // sprawdzamy czy istnieje taki email w bazie przy czym omijamy usera który jest zalogowany
                    $result = mysql_query("SELECT Count(user_id) FROM `users` WHERE `user_id` != '{$user_data['user_id']}' AND `user_email` = '{$_POST['email']}'");
                    $row = mysql_fetch_row($result);
                    if($row[0] > 0) {
                        $err = '<p>Już istnieje użytkownik z takim loginem lub adresem e-mail.</p>';
                    } else {
                        // jeśli wszystko jest ok to dopisujemy zapytanie do zaktualizowania emaila
                        $up2.= ", `user_email` = '{$_POST['email']}'";
                    }
                }
            }
        }
    }

    // jeśli są jakieś błędy z powyższych działań to je wyświetlamy
    if(!empty($err)) {
        echo $err;
    } else {
        // jeśli nie ma błędów to wykonujemy zapytanie dopisując te na aktualizacje hasła oraz emaila - $up2
        $result = mysql_query("UPDATE `users` SET `user_website` = '{$_POST['website']}', `user_from` = '{$_POST['from']}'{$up2} WHERE `user_id` = '{$user_data['user_id']}'");
        if($result) {
            // jeśli zapytanie się wykonało to wyświetlamy komunikat...
            echo '<p>Twój profil został poprawnie zaktualizowany.</p>';
            // i pobieramy od nowa dane usera aby w poniższym formularze się one zaktualizowały
            $user_data = get_user_data();
        } else {
            // jeśli zapytanie będzie błędne to wyświetlamy treść errora
            echo '<p>Niestety wystąpił błąd:<br>'.mysql_error().'</p>';
        }
    }
}

// wyświetlamy prosty formularz
    echo '<table>
    <form method="post" action="editprofile.php">
        <tr>
        <td>Imie:</td>
        <td><input type="text" value="'.$user_data['user_fname'].'" name="fname"></td>
        </tr>
        <tr>
        <td>Nazwisko:</td>
        <td><input type="text" value="'.$user_data['user_lname'].'" name="lname"></td>
        </tr>
        <tr>
        <td>Login:</td>
        <td><input type="text" value="'.$user_data['user_name'].'" disabled="true"></td>
        </tr>
        <tr>
        <td>E-mail:</td>
        <td><input type="text" value="'.$user_data['user_email'].'" name="email"></td>
        </tr>
        <tr>
        <td>Nowe haslo (pozostaw puste jeśli nie chcesz zmieniać):</td>
        <td><input type="password" value="" name="new_password" autocomplete="off"></td>
        </tr>
        <tr>
        <td>Powtórz nowe hasło:</td>
        <td><input type="password" value="" name="new_password2" autocomplete="off"></td>
        </tr>
        <tr>
        <td>Plec:</td>
        <td><input type="text" value="'.$user_data['user_plec'].'" name="plec"></td>
        </tr>
        <tr>
        <td>Data urodzenia(RRRR-MM-DD):</td><td>
'; print_r($_POST);?>
    <select name="data_urodzenia[dzien]" value="<?php echo $user_data['user_birth']['dzien'];?>"><?php for ($i=1; $i<=31; $i++){echo "<option value='$i'>$i</option>";}?></select>
    <select name="data_urodzenia[miesiac] value="<?php echo $user_data['user_birth']['miesiac'];?>""><?php for ($i=1; $i<=12; $i++){echo "<option value='$i'>$i</option>";}?></select>
    <select name="data_urodzenia[rok] value="<?php echo $user_data['user_birth']['rok'];?>""><?php for ($i=2011; $i>=1900; $i=$i-1){echo "<option value='$i'>$i</option>";} ?></select>
<?php echo '</td>
        </tr>
        <tr>
        <td>Aktualne haslo (wymagane przy zmianie emaila lub hasła):</td>
        <td><input type="password" value="" name="password" autocomplete="off"></td>
        </tr>
        <tr>
        <td>Strona WWW:</td>
        <td><input type="text" value="'.$user_data['user_website'].'" name="website"></td>
        </tr>
        <tr>
        <td>Miasto:</td>
        <td><input type="text" value="'.$user_data['user_from'].'" name="from"></td>
        </tr>
        <tr>
        <td>.</td>
        <td><input type="submit" value="Edytuj profil"></td>
        </tr>
    </form>
    </table>';

db_close();
?>

Pozdrawiam.


Bądźcie za reaktywacją Wizji TV!
edytowany 1x, ostatnio: Kacper10, 2012-11-29 19:13

Pozostało 580 znaków

2012-11-29 19:30
0

ogolnie to wszystko bledy pomieszania nazewnictwa

Notice: Undefined index: birth in C:\xampp\htdocs\tablica\editprofile.php on line 21
--nie istneije u ciebie $_POST['birth'] tylko $_POST ['data_urodzenia']['birth']

Notice: Uninitialized string offset: 0 in C:\xampp\htdocs\tablica\editprofile.php on line 22
Notice: Uninitialized string offset: 0 in C:\xampp\htdocs\tablica\editprofile.php on line 22
Notice: Uninitialized string offset: 0 in C:\xampp\htdocs\tablica\editprofile.php on line 22
dla trzech powyzej tablica glowna nie jest $_POST['birth'] a $_POST['data_urodzenia']

Notice: Undefined index: user_plec in C:\xampp\htdocs\tablica\editprofile.php on line 117
a tu domyslam, sie ze tez nie user_data['user_plec'] a user_data['plec']

PILNUJ NAZW !!!!!!!!!!!!

Pozostało 580 znaków

Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0