آموزش php مقدماتی قسمت بیست دوم

خوب نبودخوبخیلی خوبعالیخیلی عالی (4 votes, average: 4٫00 out of 5)

Function.php تغییرات و فانکشن‌های اضافه شده من

function findPageById($pageId, $public = true)
{
global $connection;

$safePageId = mysqli_real_escape_string($connection, $pageId);

$query = "SELECT * FROM pages WHERE id = {$safePageId} ";
if($public){
$query.="AND visible = 1 ";
}
$query.= "LIMIT 1";
$pageSet = mysqli_query($connection, $query);
confirmQuery($pageSet);
if ($page = mysqli_fetch_assoc($pageSet)) {
return $page;
} else {
return null;
}

}

function findAllSubjects($public = true)
{
global $connection;

$query = 'SELECT * FROM subjects ';
if ($public) {
$query .= 'WHERE visible=1 ';
}
$query .= 'ORDER BY POSITION ASC';
$result = mysqli_query($connection, $query);
confirmQuery($result);
return $result;
}

function findPagesForSubject($subjectId, $public = true)
{
global $connection;

$safeSubjectId = mysqli_real_escape_string($connection, $subjectId);

$query = "SELECT * ";
$query .= "FROM pages ";
$query .= "WHERE subjectId = {$safeSubjectId} ";
if ($public) {
$query .= 'AND visible=1 ';
}
$query .= "ORDER BY POSITION ASC";
$pageSet = mysqli_query($connection, $query);
confirmQuery($pageSet);
return $pageSet;
}

function findSubjectById($subjectId, $public = true)
{
global $connection;

$safeSubjectId = mysqli_real_escape_string($connection, $subjectId);

$query = "SELECT * FROM subjects WHERE id={$safeSubjectId} ";
if($public){
$query.="AND visible = 1 ";
}
$query.= "LIMIT 1";
$result = mysqli_query($connection, $query);
confirmQuery($result);
if ($subject = mysqli_fetch_assoc($result)) {
return $subject;
} else {
return null;
}
}

function findDefaultPageForSubject($subjectId)
{

$pageSet = findPagesForSubject($subjectId);

if ($firstPage = mysqli_fetch_assoc($pageSet)) {
return $firstPage;
} else {
return null;
}

}

function findSelectedPage($public = false)
{
global $currentSubject;
global $currentPage;

if (isset($_GET['subject'])) {
$currentSubject = findSubjectById($_GET['subject'],$public);
if ($currentSubject && $public) {
$currentPage = findDefaultPageForSubject($currentSubject['id']);
} else {
$currentPage = null;
}
} elseif (isset($_GET['page'])) {
$currentPage = findPageById($_GET['page'], $public);
$currentSubject = null;
} else {

$currentSubject = null;
$currentPage = null;
}

}

function publicNavigation($subjectArray, $pageArray)
{

$outPut = '<ul class="subjects">';
$result = findAllSubjects();
while ($subject = mysqli_fetch_assoc($result)) {
$outPut .= '<li';
if ($subjectArray && $subject['id'] == $subjectArray['id']) {
$outPut .= ' class="selected"';
}
$outPut .= '>';
$outPut .= '<a href="index.php?subject=';
$outPut .= urlencode($subject['id']);
$outPut .= '">';
$outPut .= htmlentities($subject['menuName']);
$outPut .= '</a>';

if ($subjectArray['id'] == $subject['id'] || $pageArray['subjectId'] == $subject['id']) {
$pageSet = findPagesForSubject($subject['id']);
$outPut .= '<ul class="pages">';

while ($page = mysqli_fetch_assoc($pageSet)) {
$outPut .= '<li';
if ($pageArray && $page['id'] == $pageArray['id']) {
$outPut .= ' class="selected"';
}
$outPut .= '>';
$outPut .= '<a href="index.php?page=';
$outPut .= urlencode($page['id']);
$outPut .= '">';
$outPut .= htmlentities($page['menuName']);
$outPut .= '</a></li>';
}
mysqli_free_result($pageSet);
$outPut .= '</ul>';
}
$outPut .= '</li><hr/>';
}
mysqli_free_result($result);
$outPut .= '</ul>';
return $outPut;
}

header.php

<?php
if(!isset($layoutContext)){
$layoutContext = 'public';
}
?>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Darkoobweb.com<?php if ($layoutContext == 'admin') {
echo ' Admin';
} ?></title>
<link rel="stylesheet" href="css/public.css" media="all" type="text/css">
</head>
<body>

<div id="header">
<h1>DarkoobWeb<?php if ($layoutContext == 'admin') {
echo ' Admin';
} ?></h1>
</div>

تغییر در deleteSubject.php

$currentSubject = findSubjectById($_GET['subject'],false);

تغییر در deletePage.php

$currentPage = findPageById($_GET['page'],false);

اضافه شدن layoutContext در newSubject.php

<?php require_once('../includes/session.php'); ?>
<?php require_once('../includes/dbConnection.php'); ?>
<?php require_once('../includes/functions.php'); ?>
<?php $layoutContext = 'admin'; ?>
<?php include('../includes/layouts/header.php'); ?>

<?php findSelectedPage(); ?>

<div id="main">
<div id="navigation">
<?php echo navigation($currentSubject, $currentPage); ?>
</div>

layoutContext را در editSubject.php,editPage.php,newPage.phpنیز با مقدار admin باید اضافه کنید آن هم قبل از فراخوانی header
تغییر در editSubject.php

<p>Position:
<select name="position">
<?php
$subjectSet = findAllSubjects(false);
$subjectCount = mysqli_num_rows($subjectSet);
for ($count = 1; $count <= $subjectCount; $count++) {
echo "<option value = \"{$count}\"";
if ($currentSubject['position'] == $count) {
echo " selected ";
}
echo ">{$count}</option >";
}
?>
</select>

شناسایی کاربر User Authentication :

در این قسمت چه کارهایی می‌خواهیم انجام شود؟
Admin باید بتواند کاربر را ایجاد حذف و ویرایش کند، لیست کاربران برای ما نمایش داده شوند، پسورد‌ها به صورت رمز نمایش داده شوند، هنگام ورود، هویت کاربر چک شود، کاربر بتواد logout کند، سعی کنید این موارد را اول خودتون ایجاد کنید .

READ  آموزش php مقدماتی قسمت بیست سوم

کار را با ساختن دو فانکشن در فایل function.php آغاز می‌کنیم :
Function.php

function findAllAdmins()
{

global $connection;

$query = "SELECT * ";
$query .= "FROM admins ";
$query .= "ORDER BY userName ASC";

$adminSet = mysqli_query($connection, $query);
confirmQuery($adminSet);
return $adminSet;

}

function findAdminById($adminId)
{

global $connection;

$safeAdminId = mysqli_real_escape_string($connection, $adminId);

$query = "SELECT * ";
$query .= "FROM admins ";
$query .= "WHERE id = {$safeAdminId} ";
$query .= "LIMIT 1 ";

$adminSet = mysqli_query($connection, $query);
confirmQuery($adminSet);

if ($admin = mysqli_fetch_assoc($adminSet)) {
return $admin;
} else {
return null;
}

}

پوریا پرهامی

پوریا پرهامی هستم، چند سالی هست که در مجموعه دارکوب وب فعالیت می‌کنم. عمده‌ی فعالیت من در زمینه برنامه نویسی هستش. همچنین به هوش مصنوعی و آموزش زبان‌های برنامه نویسی علاقه دارم.

مقالات پیشنهادی دارکوب وب

خبرنامه دارکوب وب

با عضویت در خبرنامه دارکوب وب، هر هفته یک ایمیل از آخرین مقالات و تخفیفات هیجان انگیز ما مطلع شوید.

پاسخ

دیدگاه خود را ثبت کنید

تمایل دارید در گفتگوها شرکت کنید؟
در گفتگو ها شرکت کنید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.

READ  چگونه برای ربات تلگرام کلید خارجی ایجاد کنیم؟