Dokładnie powinno to wyglądać tak :
Oczywiście jeśli dobrze zrozumiałem intencję osoby, która założyła temat.
Mamy w bazie danych informację na temat usera powiedzmy :
id : primarykey(auto_incerement)
User : Janek
Haslo : tajnehaslo
Imie : Jan
Nazwisko : Kowalski
email : jankowalski@go2.pl
Osoba za pomocą sesji loguje się u nas na stronie, podaje swój login oraz hasło.
Dane na temat loginu przypisujemy do zmiennej $_SESSION['USERNAME']
Mamy kilka opcji do wyboru np:
-dodaj artykuł
-usuń artykuł
-edytuj profil
Klikając na edytuj profil: otwiera nam się strona (nazwijmy ją edycja_profilu.php z utworzonym formularzem. Dane do formularza pobierane są z bazy.
Strona może wyglądać tak :
Kod
<?php
#w nagłówku mamy takie rzeczy jak session_start(); oraz kolejny require z konfiguracją bazy czyli user password do mysql itd
require("naglowek.php");
#następnie ustanawiamy połączenie z bazą i ustawiamy stronę kodową przesyłanych danych z bazy
$db = mysql_connect($dbhost, $dbuser, $dbpassword);
mysql_select_db($dbdatabase, $db);
mysql_query("SET NAMES 'utf8'");
#tutaj pobieramy dane które nas interesują czyli profil zalogowanej osoby
$sql = "SELECT * FROM nazwa_tabeli_z_informacjami_o_userach WHERE user = '" . $_SESSION['USERNAME'] . "'";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
#następnie tworzymy formularz i wypełniamy go pokolei danymi które nas interesują (w tym wypadku w poziomie, może być i w pionie - wystarczy inny układ tabeli)
echo '<form method="POST" name="user_form" action="update_profil.php">
<table>
<tr>
<th>User</th>
<th>Imie</th>
<th>Nazwisko</th>
<th>E-Mail</th>
</tr>
<tr>
#pola z bazy mogą być pobierane za pomocą indeksów kolumn licząc że pierwsza od lewej ma numer 0 ( w naszym przypadku jest to id) jak również po nazwach kolumn - niestety przy innych bazach takich jak mssql wymaga to zmiany $row = mysql_fetch_array($result); na $row = mysql_fetch_ROW($result);
<td><input name="user" type="text" value="' .$row['1'] . '"></td>
<td><input name="imie" type="text" value="' .$row['3'] . '"></td>
<td><input name="nazwisko" type="text" value="' .$row['4'] . '"></td>
<td><input name="mail" type="text" value="' .$row['5'] . '"></td>
<td><input name="zmien" type="submit" value="Zmień"></td>
</tr>
</table>
</form>';
#na końcu zakańczamy połączenie z bazą i doklejamy stopkę gdzie są zakończone nasze deklarację divów czy tagi typu </html>
mysql_close();
require("stopka.php");
?>
skrypt nie zawiera obsługi błędów.
Teraz wystarczy uzupełnić plik update.php aby wykonywał UPDATE danych w wierszu gdzie user = $_SESSION['USERNAME'];
i można dodać na końcu takiego skryptu taką linijkę :
Kod
echo '<script language = "javascript" TYPE = "text/javascript">location.href="glowna.php";</script>';
którą często dodaje na końcu moich updatów czyli po wykonaniu czystego skryptu php osoba nie powinna oglądać strony update.php tylko przenieść się na przykład na stronę główną i tam poinformować go o sukcesie zmienienia danych.
Może to okaże się pomocne (oczywiście można to robić w inny sposób) ja stosuje taką wersję
Pozdrawiam
Mariusz