يعطيكم العافية أصدقائي , أنا حاليا قائم على مشروع جامعي بسيط بلغة php و sql لكن واجهني خطأ بسيط , بتمنى من حضراتكم إذا في حد حابب يتطوع و يساعدني بحل الخطأ بكون ممنون لشخصه الكريم , و كل عام و حضراتكم و القائمين عالاكاديمية بخير .
الله يعافيك، ضع تفاصيل المشكلة وإن شاء الله ما نقصر
موقع بسيط من خلاله يمكن للأدمن انشاء و تعديل وحذف المستخدمين و المساقات طبعا مربوط بداتا لمشروع قديم لكن عند إضافة أو تعديل طالب بيظهرلي إيرور بالكود و أنا مش قادر احدد المشكلة و لحتى الأن متعثر .
أرفق لنا الأكواد وصور للمشكلة التي تواجهك عشان ننظر فيها سوياً
<?php
/*
==================================================
== Mange student Page
== You Can Add | Edit | Delete student From Here
==================================================
*/
ob_start(); // Output Buffering Start
session_start();
$pageTitle = 'Students';
if(isset($_SESSION['Username'])){
include 'init.php';
$do = '';
if(isset($_GET['do'])){
$do = $_GET['do'];
}else{
$do = 'Manage';
}
// Start Manage Page
if($do == 'Manage'){ // Manage Page
$query = '';
// Select ALL Users Excpt Admin
$query = ("SELECT * FROM Students WHERE GroupID != 1");
// Execute The Statment
$result = mysqli_query($con,$query);
//Assign To Variable
?>
<h1 class="text-center">Manage Students</h1>
<div class="container">
<div class="table-responsive">
<table class="main-table text-center manage-members table table-bordered">
<tr>
<td>#ID</td>
<td>Name Student</td>
<td>College</td>
<td>control</td>
</tr>
<?php
while ($row=mysqli_fetch_assoc($result)) {
echo"<tr><td>". $row['UserID'] ."</td>";
echo"<td>". $row['Usename']."</td>";
echo"<td>". $row['Email'],"</td>";
echo "<td>
<a href='Students.php?do=Edit&userid=". $row['UserID'] . "' class='btn btn-success'><i class='fa fa-edit'></i> Edit</a>
<a href='Students.php?do=Delete&userid=". $row['UserID'] . "' class='btn btn-danger confirm'><i class='fa fa-close'></i> Delete</a>";
echo "</tr>";
}
?>
</table>
</div>
<a href='Students.php?do=Add' class="btn btn-primary"><i class="fa fa-plus"></i> New Member</a>
</div>
<?php
}elseif($do == 'Add'){ // Add Member Page ?>
<h1 class="text-center">Add New Student</h1>
<div class="container">
<form class="form-horizontal" action="?do=Insert" method="POST" enctype="multipart/form-data">
<!-- Start UserName Field -->
<div class="form-group form-group-lg">
<label class = "col-sm-2 control-label">Name Student</label>
<div class="col-sm-10 col-md-6">
<input type="text" name="username" class="form-control" autocomplete="off" Placeholder="Name Student"/>
</div>
</div>
<!-- End UserName Field -->
<!-- Start Password Field -->
<div class="form-group form-group-lg">
<label class = "col-sm-2 control-label">Password</label>
<div class="col-sm-10 col-md-6">
<input type="Password" name="Password" class="password form-control" autocomplete="new-password" autocomplete="off" Placeholder="Password Must Be Hard & Complex"/>
<i class="show-pass fa fa-eye fa-2x" style='position: absolute;top: 6px;right: -30px'></i>
</div>
</div>
<!-- End Password Field -->
<!-- Start UserName Field -->
<div class="form-group form-group-lg">
<label class = "col-sm-2 control-label">College </label>
<div class="col-sm-10 col-md-6">
<input type="text" name="username" class="form-control" autocomplete="off" Placeholder="College"/>
</div>
</div>
<!-- End UserName Field -->
<!-- Start Email Field -->
<div class="form-group form-group-lg">
<label class = "col-sm-2 control-label">email</label>
<div class="col-sm-10 col-md-6">
<input type="text" name="text" class="form-control" autocomplete="off" Placeholder="Email Must Be Valid"/>
</div>
</div>
<!-- End Email Field-->
<!-- Start submit Field -->
<div class="form-group form-group-lg">
<div class="col-sm-offset-2 col-sm-10">
<input type="submit" value="Add Student" class="btn btn-primary btn-lg"/>
</div>
</div>
<!-- End submit Field-->
</form>
</div>
<?php
}elseif($do == "Insert"){ //Inset Member Page
if($_SERVER['REQUEST_METHOD'] == 'POST'){
echo "<h1 class='text-center'>Insert Student</h1>";
echo "<div class='container'>";
// Get The Variable From The Form
$user = $_POST['username'];
$pass = $_POST['Password'];
$email = $_POST['email'];
$shahPass = sha1($_POST['Password']);
// Validate The Form
$FromErrors = array();
if(empty($user)){
$FromErrors[] = 'Student Name Can Not Be<strong> Empty </strong>';
}
if(empty($pass )){
$FromErrors[] = 'Password Can Not Be<strong> Empty </strong>';
}
if(empty($email)){
$FromErrors[] = 'Email Can Not Be <strong> Empty </strong>';
}
//Loop Into Array And Echo It
foreach($FromErrors as $Error){
echo "<div class='alert alert-danger'>" . $Error . "</div>" ;
}
//check IF there is No Error Proceed The Update Operation
if(empty($FromErrors)){
// Check If User Exist In DataBase
$queryI = "INSERT INTO Students (Usename,Email,Password) VALUES ( '$user' , '$email' , '$shahPass')";
$resultI = mysqli_query($con ,$queryI);
echo "<div class='alert alert-success'> Successful Insert process </div>";
}
}else{
echo "<div class='container'>";
echo '<div class="alert alert-danger" style="margin-top: 32px;">Sorry You Cant Browse This Page Directly</div>';
echo "</div>";
}
echo "</div>";
}
elseif ($do == 'Edit'){ // Edit Page
// Check IF Get Request UserID is Numeric & Get The Integer value if it
if(isset($_GET['userid']) && is_numeric($_GET['userid'])){
$userid = intval($_GET['userid']);
}else{
$userid = 0;
}
// Select All Data Depend On This ID
$query = "SELECT * FROM Students WHERE UserID = '$userid' LIMIT 1";
// Execute query and Fetch The Data
$result = mysqli_query($con ,$query);
// The Row Count
$total = mysqli_num_rows($result);
$row=mysqli_fetch_assoc($result);
// If There's Such ID Show The Form
if($total > 0){ ?>
<h1 class="text-center">Edit Student</h1>
<div class="container">
<form class="form-horizontal" action="?do=Update" method="POST">
<input type="hidden" name="userid" value="<?php echo $userid; ?>"/>
<!-- Start UserName Field -->
<div class="form-group form-group-lg">
<label class = "col-sm-2 control-label">Student Name</label>
<div class="col-sm-10 col-md-6">
<input type="text" name="username" class="form-control" value="<?php echo $row['Usename']; ?>" autocomplete="off"/>
</div>
</div>
<!-- End UserName Field -->
<!-- Start Password Field -->
<div class="form-group form-group-lg">
<label class = "col-sm-2 control-label">Password</label>
<div class="col-sm-10 col-md-6">
<input type="hidden" name="oldPassword" value="<?php echo $row['Password']; ?>"/>
<input type="Password" name="newPassword" class="form-control" autocomplete="new-password" autocomplete="off" Placeholder="Leave Blank IF You Dont Want To Change"/>
</div>
</div>
<!-- End Password Field -->
<!-- Start Email Field -->
<div class="form-group form-group-lg">
<label class = "col-sm-2 control-label">email</label>
<div class="col-sm-10 col-md-6">
<input type="email" name="email" class="form-control" value="<?php echo $row['Email']; ?>"autocomplete="off"/>
</div>
</div>
<!-- End Email Field-->
<!-- Start submit Field -->
<div class="form-group form-group-lg">
<div class="col-sm-offset-2 col-sm-10">
<input type="submit" value="Save" class="btn btn-primary btn-lg"/>
</div>
</div>
<!-- End submit Field-->
</form>
</div>
<?php
// If There's No Such ID Show Error Massage
}else{
echo "<div class='container'>";
echo "<div class='alert alert-danger' style='margin-top: 32px;'>There Is No Such Id</div>";
echo "</div>";
}
}elseif($do == 'Update'){ //UpdataPage
echo "<h1 class='text-center'>Update Member</h1>";
echo "<div class='container'>";
if($_SERVER['REQUEST_METHOD'] == 'POST'){
// Get The Variable From The Form
$id = $_POST['userid'];
$user = $_POST['username'];
$email = $_POST['email'];
$FromErrors = array();
//Track Password
$pass = '';
if(empty($_POST['newPassword'])){
$pass = $_POST['oldPassword'];
} else {
$pass = sha1($_POST['newPassword']);
}
// Validate The Form
if(empty($user)){
$FromErrors[] = '<div class="alert alert-danger">User Name Can Not Be<strong> Empty </strong></div>';
}
if(empty($email)){
$FromErrors[] = '<div class="alert alert-danger">Email Can Not Be <strong> Empty </strong></div>';
}
//Loop Into Array And Echo It
foreach($FromErrors as $Error){
echo $Error ;
}
//check IF there is No Error Proceed The Update Operation
if(empty($FromErrors)){
// UpData The Database With This info
$queryU= "UPDATE Students SET Usename = '$user' , Email = '$email' , Password = '$pass' WHERE UserID = '$id' ";
$resultU = mysqli_query($con ,$queryU);
echo "<div class='alert alert-success'> Successful update process </div>";
}
}else{
echo '<div class="alert alert-danger">Sorry You Cant Browse This Page Directly</div>';
}
echo "</div>";
}elseif($do == 'Delete'){
echo "<h1 class='text-center'>Delete Member</h1>";
echo "<div class='container'>";
// Check IF Get Request UserID is Numeric & Get The Integer value if it
if(isset($_GET['userid']) && is_numeric($_GET['userid'])){
$userid = intval($_GET['userid']);
}else{
$userid = 0;
}
// Select All Data Depend On This ID
$query = "SELECT * FROM Students WHERE UserID = $userid LIMIT 1";
// Execute query and Fetch The Data
$result = mysqli_query($con ,$query);
// The Row Count
$total = mysqli_num_rows($result);
// If There's Such ID Show The Form
if($total > 0){
$queryD= "DELETE FROM Students WHERE UserID = '$userid'";
$resultD = mysqli_query($con ,$queryD);
echo "<div class='alert alert-success'> Successful Delete process </div>";
}else{
$theMag = "<div class='alert alert-danger'> This ID Is Not Exist Delete</div>";
} echo "<div>";
}
include $tpl. "footer.php";
}
else {
header('location:index.php');
exit();
}
ob_end_flush();
<?php
ob_start(); // Output Buffering Start
session_start();
$pageTitle = 'Courses';
if(isset($_SESSION['Username'])){
include 'init.php';
$do = '';
if(isset($_GET['do'])){
$do = $_GET['do'];
}else{
$do = 'Manage';
}
// Start Manage Page
if($do == 'Manage'){ // Manage Page
$query = '';
// Select ALL category Excpt Admin
$query = ("SELECT * FROM Courses");
// Execute The Statment
$result = mysqli_query($con,$query);
//Assign To Variable
?>
<h1 class="text-center">Manage Courses</h1>
<div class="container">
<div class="table-responsive">
<table class="main-table text-center manage-members table table-bordered">
<tr>
<td>ID Course</td>
<td>Course</td>
<td>Lecturer</td>
<td>Control</td>
</tr>
<?php
while ($row = mysqli_fetch_assoc($result)) {
echo"<tr><td>". $row['id'] ,"</td>";
echo"<td>". $row['Description'],"</td>";
echo"<td>". $row['Ordering'],"</td>";
echo "<td>
<a href='Courses.php?do=Edit&categoryid=". $row['id'] . "' class='btn btn-success'><i class='fa fa-edit'></i> Edit</a>
<a href='Courses.php?do=Delete&categoryid=". $row['id'] . "' class='btn btn-danger confirm'><i class='fa fa-close'></i> Delete</a>";
echo "</tr>";
}
?>
</table>
</div>
<a href='Courses.php?do=Add' class="btn btn-primary"><i class="fa fa-plus"></i> New Course</a>
</div>
<?php
}elseif($do == 'Add'){ // Add Member Page }
?>
<h1 class="text-center">Add New Course</h1>
<div class="container">
<form class="form-horizontal" action="?do=Insert" method="POST" enctype="multipart/form-data">
<!-- StartName Field -->
<div class="form-group form-group-lg">
<label class = "col-sm-2 control-label">Name Course</label>
<div class="col-sm-10 col-md-6">
<input type="text" name="name" class="form-control" autocomplete="off"
Placeholder="Name Course"/>
</div>
</div>
<!-- End Name Field -->
<!-- StartName Field -->
<div class="form-group form-group-lg">
<label class = "col-sm-2 control-label">Lecturer</label>
<div class="col-sm-10 col-md-6">
<input type="text" name="Lecturer" class="form-control" autocomplete="off" Placeholder="Lecturer"/>
</div>
</div>
<!-- End Name Field -->
<!-- StartName Field -->
<div class="form-group form-group-lg">
<label class = "col-sm-2 control-label">College</label>
<div class="col-sm-10 col-md-6">
<input type="text" name="Status" class="form-control" autocomplete="off" Placeholder="Status"/>
</div>
</div>
<!-- End Name Field -->
<!-- Start submit Field -->
<div class="form-group form-group-lg">
<div class="col-sm-offset-2 col-sm-10">
<input type="submit" value="Add Course" class="btn btn-primary btn-lg"/>
</div>
</div>
<!-- End submit Field-->
</form>
</div>
<?php
}elseif($do == "Insert"){ //Inset Member Page
if($_SERVER['REQUEST_METHOD'] == 'POST'){
echo "<h1 class='text-center'>Insert Course</h1>";
echo "<div class='container'>";
// Get The Variable From The Form
$name = $_POST['name'];
$discription = $_POST['description'];
$order = $_POST['order'];
// Validate The Form
$FromErrors = array();
if(empty($name)){
$FromErrors[] = ' Name Course Can Not Be<strong> Empty </strong>';
}
if(empty($discription)){
$FromErrors[] = 'Lecturer Can Not Be<strong> Empty </strong>';
}
if(empty($order)){
$FromErrors[] = 'order Can Not Be<strong> Empty </strong>';
}
//Loop Into Array And Echo It
foreach($FromErrors as $Error){
echo "<div class='alert alert-danger'>" . $Error . "</div>" ;
}
//check IF there is No Error Proceed The Update Operation
if(empty($FromErrors)){
// Check If User Exist In DataBase
$queryI = "INSERT INTO Courses (Name,Description,Ordering) VALUES ( '$name' , '$discription' , '$order')";
$resultI = mysqli_query($con ,$queryI);
echo "<div class='alert alert-success'> Successful Insert process </div>";
}
}else{
echo "<div class='container'>";
echo '<div class="alert alert-danger" style="margin-top: 32px;">Sorry You Cant Browse This Page Directly</div>';
echo "</div>";
}
echo "</div>";
}
elseif ($do == 'Edit'){ // Edit Page
// Check IF Get Request UserID is Numeric & Get The Integer value if it
if(isset($_GET['categoryid']) && is_numeric($_GET['categoryid'])){
$userid = intval($_GET['categoryid']);
}else{
$userid = 0;
}
// Select All Data Depend On This ID
$query = "SELECT * FROM Courses WHERE id = '$userid' LIMIT 1";
// Execute query and Fetch The Data
$result = mysqli_query($con ,$query);
// The Row Count
$total = mysqli_num_rows($result);
$row=mysqli_fetch_assoc($result);
// If There's Such ID Show The Form
if($total > 0){ ?>
<h1 class="text-center">Edit Courses</h1>
<div class="container">
<form class="form-horizontal" action="?do=Update" method="POST">
<input type="hidden" name="userid" value="<?php echo $userid; ?>"/>
<!-- Start Name Field -->
<div class="form-group form-group-lg">
<label class = "col-sm-2 control-label">Name</label>
<div class="col-sm-10 col-md-6">
<input type="text" name="name" class="form-control" value="<?php echo $row['Name']; ?>" autocomplete="off"/>
</div>
</div>
<!-- End Name Field -->
<!-- Start Name Field -->
<div class="form-group form-group-lg">
<label class = "col-sm-2 control-label">Description</label>
<div class="col-sm-10 col-md-6">
<input type="text" name="name" class="form-control" value="<?php echo $row['Description']; ?>" autocomplete="off"/>
</div>
</div>
<!-- End Name Field -->
<!-- Start Name Field -->
<div class="form-group form-group-lg">
<label class = "col-sm-2 control-label">Ordring</label>
<div class="col-sm-10 col-md-6">
<input type="text" name="name" class="form-control" value="<?php echo $row['Ordring']; ?>" autocomplete="off"/>
</div>
</div>
<!-- End Name Field -->
<!-- Start submit Field -->
<div class="form-group form-group-lg">
<div class="col-sm-offset-2 col-sm-10">
<input type="submit" value="Save" class="btn btn-primary btn-lg"/>
</div>
</div>
<!-- End submit Field-->
</form>
</div>
<?php
// If There's No Such ID Show Error Massage
}else{
echo "<div class='container'>";
echo "<div class='alert alert-danger' style='margin-top: 32px;'>There Is No Such Id</div>";
echo "</div>";
}
}elseif($do == 'Update'){ //UpdataPage
echo "<h1 class='text-center'>Update Member</h1>";
echo "<div class='container'>";
if($_SERVER['REQUEST_METHOD'] == 'POST'){
// Get The Variable From The Form
$id = $_POST['categoryid'];
$name = $_POST['Name'];
$description = $_POST['Description'];
$order = $_POST['Ordring'];
$FromErrors = array();
// Validate The Form
if(empty($name)){
$FromErrors[] = ' Name category Can Not Be<strong> Empty </strong>';
}
if(empty($description)){
$FromErrors[] = 'discription Can Not Be<strong> Empty </strong>';
}
if(empty($order)){
$FromErrors[] = 'order Can Not Be<strong> Empty </strong>';
}
//Loop Into Array And Echo It
foreach($FromErrors as $Error){
echo $Error ;
}
//check IF there is No Error Proceed The Update Operation
if(empty($FromErrors)){
// UpData The Database With This info
$queryU= "UPDATE Courses SET Name = '$name' , Description = '$description', Ordring = '$order' WHERE id = '$id' ";
$resultU = mysqli_query($con ,$queryU);
echo "<div class='alert alert-success'> Successful update process </div>";
}
}else{
echo '<div class="alert alert-danger">Sorry You Cant Browse This Page Directly</div>';
}
echo "</div>";
}elseif($do == 'Delete'){
echo "<h1 class='text-center'>Delete Member</h1>";
echo "<div class='container'>";
// Check IF Get Request UserID is Numeric & Get The Integer value if it
if(isset($_GET['categoryid']) && is_numeric($_GET['categoryid'])){
$categoryid = intval($_GET['categoryid']);
}else{
$categoryid = 0;
}
// Select All Data Depend On This ID
$query = "SELECT * FROM Courses WHERE id = '$categoryid' LIMIT 1";
// Execute query and Fetch The Data
$result = mysqli_query($con ,$query);
// The Row Count
$total = mysqli_num_rows($result);
// If There's Such ID Show The Form
if($total > 0){
$queryD= "DELETE FROM Courses WHERE id = '$categoryid'";
$resultD = mysqli_query($con ,$queryD);
echo "<div class='alert alert-success'> Successful Delete process </div>";
}else{
$theMag = "<div class='alert alert-danger'> This ID Is Not Exist Delete</div>";
} echo "<div>";
}
include $tpl. "footer.php";
}
else {
header('location:index.php');
exit();
}
ob_end_flush();
أحتاج إلى إعادة إنتاج المشكلة أو بإمكانك وضع صور لها وللخطأ الذي يظهر لك
أنا بقدر جهدك الكريم في الخدمة إذا الموضوع رح ياخد وقتك أو يسببلك إعاقة عن عملك
Hi @Ibrahim50
Try to use the function die it works with server side like that:
if(empty($_POST['name'])){ die("You need to enter your name.");
This link will help you:
When I come home I’ll try your code
A simple way to check errors again
Don’t use an array to put your errors, you can only declare variables error for each fields like that:
<?php
// define variables and set to empty values
$nameErr = $emailErr = $genderErr = $websiteErr = "";
$name = $email = $gender = $comment = $website = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["name"])) {
$nameErr = "Name is required";
} else {
$name = test_input($_POST["name"]);
}
if (empty($_POST["email"])) {
$emailErr = "Email is required";
} else {
$email = test_input($_POST["email"]);
}
if (empty($_POST["website"])) {
$website = "";
} else {
$website = test_input($_POST["website"]);
}
if (empty($_POST["comment"])) {
$comment = "";
} else {
$comment = test_input($_POST["comment"]);
}
if (empty($_POST["gender"])) {
$genderErr = "Gender is required";
} else {
$gender = test_input($_POST["gender"]);
}
}
?>
source code ::
مشكورة جدا أنسة نبيلة رح احاول إن شاء الله بالطريقة الي وضعتيها , كل الاحترام
قم بتجربة ما اقترحته نبيلة وأخبرنا بالنتيجة
للأسف و الله يا صديقي ما قدرت , رح أستعين بمدرسي المادة بكليتي بلكي شافوها عالواقع و قدروا يحلوها , طبعا مع كامل الإحترام و التقدير لحضرتك و للأنسة لبنى و الأستاذ ياسر على جهودكم الطيبة و محاولة إفادتي , دمتم منبرا مميز
ستفيدك الملاحظات التالية، خذها بعين الإعتبار.
المشكلة الأولى في كودك:
أنك قمت بعمل form
لإضافة Course ولكن الفورم الـ inputs الخاصة به تحمل الأسماء التالية:
name="name"
name="Lecturer"
name="Status"
ومن ثم في عملية إضافة الكورس Insert
قمت بإستخدام أسماء مختلفة:
$_POST['name']
$_POST['description']
$_POST['order'];
لهذا تحصل على تلك الأخطاء في الصورة التالية:
حقيقة أنا لم أفهم لماذا قمت بعمل ذلك الـ form بتلك الحقول التي تطلب Lecturer, Status, name ومن ثم عند إضافتها إستخدمت الأسماء التالية name, description, order ربما قمت بنسخها من صفحة أخرى قمت بالعمل عليها سابقاً ونسيت تعديل ذلك.
لهذا قم بترتيب ذلك وجعلها متطابقة بالشكل الذي يحقق هدفك
قم بمحاولة حل مشكلة إضافة الـ course أولاً من خلال الملاحظة أعلاة وأخبرني بالنتيجة.
الحمد لله بعد محاولات تم إصلاح الأخطاء بفضل الله ثم جهودكم مشكورين كثير يا أفاضل
يسعدني سماع ذلك
تسلم بشمهندس محمد