mam plik select_page.php który odpowiada za to na której podstronie jakie pliki mają się wczytać.
<?php function user_profile() { require_once('files/user_profile.php'); $smarty->assign('siteTitle', $user_name.' - profil użytkownika'); $smarty->assign('section_title', ' - profil użytkownika'); $smarty->assign('section_subtitle', 'profil użytkownika'); $page = 'user_profile.tpl'; } ?>
teraz chodzi mi dokładnie o zmienną $user_name. Na podstawie user_id przekazanego w adresie ma wyświetlić jego nazwę i przypisać do siteTitle, co potem jest wyświetlane między <title></title>.
W pliku user_profile.php mam to napisane tak:
<?php $user_id = $_GET['user_id']; $result = $db->set_query('SELECT * from tpl_users WHERE id = ' . $user_id . ''); $smarty->assign_by_ref('db_result_user', $result); $user_name = $result[0]['nick']; ?>
Chciałbym jednak zabezpieczyć to przed ręczną zmianą $user_id która jest pobierana przez $_GET. Czyli jeżeli skrypt będzie chciał wczytać nieistniejący id ma zwrócić false.
Nie mam pojęcia jak się za to zabrać. Proszę o pomoc.
Jednak zrobiłem do dodatkowym zapytaniem z czego nie do końca jestem zadowolony.
user_profile.php
<?php $user_id = $_GET['user_id']; $result = $db->set_query('SELECT * from tpl_users WHERE id = ' . $user_id . ''); $smarty->assign_by_ref('db_result_user', $result); $smarty->assign_by_ref('num_rows', $num_rows); if ($num_rows == 0) { $user_name = 'Błędny numer użytkownika'; } else { $user_name = $result[0]['nick']; } ?>
user_profile.tpl
<?php <div id="left"> {section name=id} {if $num_rows == 0} <div id="section">Nie znaleziono użytkownika o podanym ID.</div> {else} <div id="section">{$db_result_user[id].nick}{$section_title}</div> <div> <p>Nazwa użytkownika: <b>{$db_result_user[id].nick}</b></p> <p>Imię: <b>{$db_result_user[id].user_name}</b></p> </div> {/if} {/section} </div> ?>
Jednak bardziej by mnie zadowalało coś na styl:
<?php $result = $db->set_query('SELECT * from tpl_users WHERE id = ' . $user_id . ''); ?>
Ale wywala mi wtedy błędy.
Ma ktoś pomysł jak to rozwiązać? A może to moje rozwiązanie jest dobre i nie ma potrzeby nic z tym robić?