viewprofile.php
<?php
// Uruchamianie sesji.
require_once('startsession.php');
// Wstawianie nagłówka strony.
$page_title = 'Wyświetl profil';
require_once('header.php');
require_once('appvars.php');
require_once('connectvars.php');
// Przed przejściem do dalszych operacji należy się upewnić, że użytkownik jest zalogowany.
if (!isset($_SESSION['user_id'])) { echo '<p class="login"><a href="login.php">Zaloguj się</a>, aby uzyskać dostęp do tej strony.</p>'; }
// Wyświetlanie menu nawigacyjnego.
require_once('navmenu.php');
// Łączenie się z bazą danych.
$dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
// Pobieranie danych użytkownika z bazy.
if (!isset($_GET['user_id'])) { $query = "SELECT username, first_name, last_name, gender, birthdate, city, state, picture FROM mismatch_user WHERE user_id = '" . $_SESSION['user_id'] . "'";
}
else {
$query = "SELECT username, first_name, last_name, gender, birthdate, city, state, picture FROM mismatch_user WHERE user_id = '" . $_GET['user_id'] . "'";
}
$data = mysqli_query($dbc, $query);
if (mysqli_num_rows($data) == 1) {
// Znaleziono wiersz z danymi użytkownika, dlatego należy je wyświetlić.
$row = mysqli_fetch_array($data);
if (!empty($row['username'])) { echo '<tr><td class="label">Nazwa użytkownika:</td><td>' . $row['username'] . '</td></tr>'; }
if (!empty($row['first_name'])) { echo '<tr><td class="label">Imię:</td><td>' . $row['first_name'] . '</td></tr>'; }
if (!empty($row['last_name'])) { echo '<tr><td class="label">Nazwisko:</td><td>' . $row['last_name'] . '</td></tr>'; }
if (!empty($row['gender'])) { echo '<tr><td class="label">Płeć:</td><td>'; if ($row['gender'] == 'M') {
}
else if ($row['gender'] == 'K') {
}
else {
}
}
if (!empty($row['birthdate'])) { if (!isset($_GET['user_id']) || ($_SESSION['user_id'] == $_GET['user_id'])) { // Wyświetlanie dnia urodzenia danemu użytkownikowi.
echo '<tr><td class="label">Data urodzenia:</td><td>' . $row['birthdate'] . '</td></tr>'; }
else {
// Wyświetlanie samego roku pozostałym użytkownikom.
list
($year, $month, $day) = explode('-', $row['birthdate']); echo '<tr><td class="label">Rok urodzenia:</td><td>' . $year . '</td></tr>'; }
}
if (!empty($row['city']) || !empty($row['state'])) { echo '<tr><td class="label">Miejscowość:</td><td>' . $row['city'] . ', ' . $row['state'] . '</td></tr>'; }
if (!empty($row['picture'])) { echo '<tr><td class="label">Zdjęcie:</td><td><img src="' . MM_UPLOADPATH
. $row['picture'] . '" alt="Zdjęcie z profilu" /></td></tr>';
}
if (!isset($_GET['user_id']) || ($_SESSION['user_id'] == $_GET['user_id'])) { echo '<p>Czy chcesz <a href="editprofile.php">zmodyfikować profil</a>?</p>'; }
} // Koniec przetwarzania wiersza z danymi użytkownika.
else {
echo '<p class="error">Wystąpił problem przy próbie dostępu do profilu.</p>'; }
mysqli_close($dbc);
?>
<?php
// Wstawianie stopki strony.
require_once('footer.php');
?>
startsession.php
// Jeśli zmienne sesji nie są ustawione, należy spróbować użyć do tego plików cookie.
if (!isset($_SESSION['user_id'])) { if (isset($_COOKIE['user_id']) && isset($_COOKIE['username'])) { $_SESSION['user_id'] = $_COOKIE['user_id'];
$_SESSION['username'] = $_COOKIE['username'];
}
}
Przy próbie oglądnięcia swojego profilu dostaje komunikat.
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in /x/x/ftp/x/x/x/viewprofile.php on line 33
Przykład jest skopiowany z gotowych kodów które dostępne są na stronie wydawnictwa helion. Jest to przykład z ksiązki który niestety nie chce funkcjonować.
Uczę się dopiero zarządzać sesjami i użytkownikami dlatego też zwracam się z prośbą o pomoc w rozwiązaniu powyższego problemu.
temat był poruszany dla innego pliku php z tego samego ćwiczenia
http://forums.oreilly.com/topic/50019-warn...2990#entry92990
Ten post edytował darney 12.12.2011, 08:55:48