I really don't understand what I am doing here. I have this page profesor.php in which I want to insert some data into the database. After I submit the data from the form I want to be redirected to another page insert.php and display a message.
So I have profesor.php:
<?php
session_start();
if (isset($_SESSION['id'])) {
$fullname = $_SESSION['name'];
echo "<h1> Welcome " . $fullname . "</h1>";
} else {
$result = "You are not logged in yet";
}
if (isset($_POST['studname'])) {
include_once("dbConnect.php");
$studname = strip_tags($_POST['studname']);
$course = strip_tags($_POST['course']);
$grade = strip_tags($_POST['grade']);
$getStudidStm = "SELECT userid FROM users WHERE name = '$studname'";
$getStudidQuery = mysqli_query($dbCon, $getStudidStm);
$row = mysqli_fetch_row($getStudidQuery);
$studid = $row[0];
$_SESSION['studid'] = $studid;
$_SESSION['course'] = $course;
$_SESSION['grade'] = $grade;
header("Location: insert.php");
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title><?php echo $fullname ;?></title>
</head>
<body>
<div id="wrapper">
<h2>Insert new grade</h2>
<form id="insertForm" action="insert.php" method="post" enctype="multipart/form-data">
Student: <input type="text" name="studname" /> <br />
Course : <input type="text" name="course" /> <br />
Grade : <input type="text" name="grade" /> <br />
<input type="submit" value="Insert" name="Submit" />
</form></div>
</form>
</body>
</html>
and insert.php
<?php
session_start();
if (isset($_SESSION['studid'])) {
include_once("dbConnect.php");
$studid = $_SESSION['studid'];
$course = $_SESSION['course'];
$grade = $_SESSION['grade'];
echo $studid;
echo $course;
echo $grade;
}
My problem is that insert.php doesn't display anything. I really don't understand what I'm doing wrong. Need some help.
your problem is in your form:
<form id="insertForm" action="insert.php" [...]
you send data to insert.php but all the 'magic' with
$_SESSION['studid'] = $studid;
$_SESSION['course'] = $course;
$_SESSION['grade'] = $grade;
you keep in profesor.php
Just change action="insert.php" to action="profesor.php" and it should work fine.
Related
Im trying to get the taskid variable from the url:
Long story short the database never updated trying to echo $tasked is blank and im not sure why.
I have looked over all of the suggestions and many different websites I do not see what i'm missing
http://domain.com/ubxtask/addnote.php?taskid=163994
<!DOCTYPE html>
<html lang="en">
<head>
<title>Add Note to Task</title>
</head>
<body>
<form action="" method="post">
<p>
<textarea name="notetoadd" rows="4" cols="50"></textarea>
</p>
<input type="submit" value="Submit" name="submit">
</form>
</body>
</html>
<?php
if ( isset( $_POST['submit'] ) ) {
$servername = "localhost";
$username = "dbusr";
$password = "dbpass";
$dbname = "db";
$notetoadd = $_POST['notetoadd'];
if (isset($_GET["taskid"])) {
//$taskid = $_GET['taskid'];
echo $_GET["taskid"];
//echo $taskid;
}
$sql = "INSERT INTO tasknotestbl (tasknum, tasknote)
VALUES ('$taskid', '$notetoadd')";
if ($conn->query($sql) === TRUE) {
header('Location: http://domain.com/task/tasklist.php');
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
}
?>
You should add the task id to your forms action, or it would be lost, if you submit the form
<form action="addnote.php?taskid=<?php echo $_GET['taskid']; ?>" method="post">
You can add hidden field to form with taskid and use post method:
<?php
if (empty($_GET['taskid'])) {
$taskid = '1';
}else{
$taskid = (int)$_GET['taskid'];
}
// your code submit code and
if (isset($_POST["taskid"])) {
echo $_POST["taskid"];
}
echo '<form action="" method="post">
<p><textarea name="notetoadd" rows="4" cols="50"></textarea></p>
<input type="hidden" name="taskid" value="'.$taskid.'" placeholder="taskID">
<input type="submit" value="Submit" name="submit">
</form>';
?>
<?php
session_start();
include("includes/connection.php");
if(isset($_POST["testid"])&&isset($_POST["testtime"])&&isset($_POST["testdate"])&&isset($_POST["year"])&&isset($_POST["branch"]))
{
$tid = $_POST["testid"];
$ttime = $_POST["testtime"];
$tdate = $_POST["testdate"];
$year = $_POST["year"];
$branch = $_POST["branch"];
$query1 = "SELECT * FROM tbl_create_test";
$result1 = mysqli_query($conn,$query1);
$bool = true;
while($row = mysqli_fetch_array($result1))
{
$tidTemp= $row['fld_test_id'];
if($tidTemp==$tid)
{
$bool=false;
echo '<script>alert("This Test id is already Assigned");</script>' ;
echo '<script>window.location.assign("")</script>';
}
}
if($bool)
{
$query2 = "INSERT INTO tbl_create_test(fld_test_id,fld_test_time,fld_test_date,fld_year,fld_branch)
VALUES('$tid','$ttime','$tdate','$year','$branch')";
$result2 = mysqli_query($conn,$query2);
if($result2)
{
$_SESSION['test_id']=$tid;
header("location: enter_questions.php");
}
}
}
?>
<!DOCTYPE HTML>
<html>
<head>
<title>Admin Area</title>
</head>
<body>
<h1 style="text-align:center;margin-top:40px;">WELCOME TO ADMIN AREA</h1>
<div style="width:50%; float:left;" >
<h2><u>Test Creation Section</u></h2>
<div style="padding:20px;">
<form method="post" action="enter_questions.php">
<label>Test id:<br><input type="text" name="testid" required></label></br>
<label>Test Time:<br><input type="time" name="testtime" required></label></br>
<label>Test Date:<br><input type="date" name="testdate" required></label></br>
<label>Year:<br><input type="text" name="year" required></label></br>
<label>Branch:<br><input type="text" name="branch" required></label></br>
<br><button type="submit" >Next</button>
</form>
</div>
</body>
</html>
The data is not saved in DB after clicking on next but it redirects to enter_questions page. I need to store data in DB so as to proceed. I am experienced in codeigniter but never did work on core PHP before.
Every form has a action, in your case you are saying to the form "When i click the button go to enter_questions.php". The form is going to listen you instruction and go to this file but nothing is there to do. If you want to run the code in the same place where your form is you can leave the action='' and make a submit button like this.
<input type='submit' name='submit' value='Click Me!'>
And know comes the question, How do you know when the button is clicked and run the code you want? Well you can do it this way.
if(isset($_POST['submit'])){
//run your code
}
You can read this article how forms work
<?php
session_start();
include("includes/connection.php");
if(isset($_POST["testid"])&&isset($_POST["testtime"])&&isset($_POST["testdate"])&&isset($_POST["year"])&&isset($_POST["branch"])) {
$tid = $_POST["testid"];
$ttime = $_POST["testtime"];
$tdate = $_POST["testdate"];
$year = $_POST["year"];
$branch = $_POST["branch"];
/// optimized code
if($result = mysqli_fetch_assoc(mysqli_query($conn, "SELECT `fld_test_id` FROM tbl_create_test WHERE `fld_test_id`='$tid' LIMIT 1"))) {
if($result = mysqli_query($conn, "INSERT INTO tbl_create_test (fld_test_id,fld_test_time,fld_test_date,fld_year,fld_branch)
VALUES ('$tid','$ttime','$tdate','$year','$branch')")) {
$_SESSION['test_id']=$tid;
header("location: enter_questions.php");
die;
}
}
/// id exists or not insert record
echo '<script>alert("This Test id is already Assigned");</script>' ;
echo '<script>window.location.assign("")</script>';
}
?>
Just Remove the action from form. If it create problem then check your connection code in this include("includes/connection.php");
Edit2: I have try your code with mysql and it save the data into database
<?php
session_start();
mysql_connect('localhost','root','') or die('error');
mysql_select_db('dbp');
if(isset($_POST["testid"])&&isset($_POST["testtime"])&&isset($_POST["testdate"])&&isset($_POST["year"])&&isset($_POST["branch"]))
{
$tid = $_POST["testid"];
$ttime = $_POST["testtime"];
$tdate = $_POST["testdate"];
$year = $_POST["year"];
$branch = $_POST["branch"];
$query1 = "SELECT * FROM tbl_create_test";
$result1 = mysql_query($query1);
$bool = true;
while($row = mysql_fetch_array($result1))
{
$tidTemp= $row['fld_test_id'];
if($tidTemp==$tid)
{
$bool=false;
echo '<script>alert("This Test id is already Assigned");</script>' ;
echo '<script>window.location.assign("")</script>';
}
}
if($bool==true)
{
$query2 = "INSERT INTO tbl_create_test(fld_test_id,fld_test_time,fld_test_date,fld_year,fld_branch) VALUES('$tid','$ttime','$tdate','$year','$branch')";
$result2 = mysql_query($query2)or die('error in insertion');
if($result2)
{
$_SESSION['test_id']=$tid;
header("location: enter_questions.php");
}
}
}
?>
<!DOCTYPE HTML>
<html>
<head>
<title>Admin Area</title>
</head>
<body>
<h1 style="text-align:center;margin-top:40px;">WELCOME TO ADMIN AREA</h1>
<div style="width:50%; float:left;" >
<h2><u>Test Creation Section</u></h2>
<div style="padding:20px;">
<form method="post" >
<label>Test id:<br><input type="text" name="testid" required></label></br>
<label>Test Time:<br><input type="time" name="testtime" required></label></br>
<label>Test Date:<br><input type="date" name="testdate" required></label></br>
<label>Year:<br><input type="text" name="year" required></label></br>
<label>Branch:<br><input type="text" name="branch" required></label></br>
<br><button type="submit" >Next</button>
</form>
</div>
</body>
</html>
Going to try to keep it short. I have a while loop in grid.php file to fill up a table as such...
<?php while($product = $products->fetch_assoc()) { ?>
<tr>
<td><?php echo $product['cd_id']?></td>
<td><?php echo $product['cd_title']?></td>
<td><?php echo $product['cd_musician_fname']?></td>
<td><?php echo $product['cd_musician_lname']?></td>
<td><?php echo $product['cd_price']?></td>
<td>Edit</td>
<td>Delete</td>
</tr>
<?php } ?>
If I click the first anchor tag takes me to a edit.php file and here is the head code for that file.
<?php include '_includes/db.php';
$cd_id = trim($_GET['id']);
$message = '';
include '_includes/connection.php';
if($db->connect_error){
$message = $db->connect_error;
}else{
$sql = "SELECT * FROM CD WHERE cd_id = $cd_id";
$result = $db->query($sql);
$row = $result->fetch_assoc();
if($db->error){
$message = $db->error;
}
}
?>
Now I will show the html of edit.php
<!-- Product Musician last name-->
<fieldset class="form-group">
<label for="cd_musician_lname">Musician's lirst name</label>
<input type="text" class="form-control" id="cd_musician_lname" name="cd_musician_lname" value="<?php echo $row['cd_musician_lname'];?>">
</fieldset>
<!-- End of Musician last name-->
<!-- Product price-->
<fieldset class="form-group">
<label for="cd_price">Product price</label>
<input type="text" class="form-control" id="cd_price" name="cd_price" value="<?php echo $row['cd_price'];?>">
</fieldset>
<!-- End of Product price-->
<!-- Form submit button-->
Update Record
<a class="btn btn-primary" href="index.php" role="button">Go Back Home</a>
I have the edit.php page working just fine but if I make changes in the fields and click the submit anchor tag I get all the fields of the row empty but the PK. Here is the code for the final edit_confirm.php file
<?php
include '_includes/db.php';
$cd_id = trim($_GET['id']);
$cd_title = $_POST['cd_title'];
$cd_musician_fname = $_POST['cd_musician_fname'];
$cd_musician_lname = $_POST['cd_musician_lname'];
$cd_price = $_POST['cd_price'];
$message = '';
include '_includes/connection.php';
if($db->connect_error){
die("Connection failed: ".$db->connect_error);
} else {
$sql = "UPDATE CD SET cd_title='".$cd_title."', cd_musician_fname='".
$cd_musician_fname."', cd_musician_lname='".
$cd_musician_lname."', cd_price='".$cd_price."' WHERE cd_id = $cd_id ";
$db->query($sql);
var_dump($sql);
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<?php include '_includes/main-head.php';?>
</head>
<body>
<?php include '_includes/main-navbar.php';?>
<div class="container">
<hr>
<?php
if($db->query($sql) === TRUE){ ?>
<h1>Record updated successfully.</h1>
<?php echo $cd_title; ?>
<?php echo $record->affected_rows ?>
<p> record was updated in the database.</p></br>
<?php } else { ?>
<p>Error updating the record: </p> <?php $db->error; ?>
<?php }; ?>
<hr>
<a class="btn btn-primary" href="index.php" role="button">Go Back Home</a>
</div>
<?php include '_includes/main-script.php';?>
</body>
</html>
If you notice in the edit_confirm.php I did a var_dump to see what are the values in the variables and it shows empty.
I need help with this.
Thank you in advance.
Man the better way to do this is make it simple to test if the record is updating or not
formsample.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<?php
include("connection.php");
$id = $_GET['id'];
$query= "select * from clients where id = '$id'";
$sql = mysqli_query($connect, $query);
$result = mysqli_fetch_assoc($sql);
?>
<form action="process.php" method="post">
<input type="text" name="name" id="name" value="<?php echo $result['name'] ?>" />
<input type="text" name="email" id="email" value="<?php echo $result['email'] ?>" />
<input type="hidden" name="id" id="id" value="<?php echo $id?>" />
<input type="submit" />
</form>
</body>
</html>
process.php
<?php
include("connection.php");
$id = $_POST['id'];
$name = $_POST['name'];
$email= $_POST['email'];
$query = "UPDATE clients set name= '$name', email ='$email' where id = '$id'";
$sql = mysqli_query($connect, $query);
?>
Update Record
This is not the proper way to submit a form - it won't work at all.
You need to have a form opening and closing tag, the target address is in the action attribute of the form element, and the method is on there too and should be post for this form (method="POST"). In your code you have a link where you should have a submit input so it won't submit the data, it will just redirect you to that URL. You should have something like this:
<input type="submit" value="Update Record" />
http://www.w3schools.com/html/html_forms.asp
I am working on PHP CRUD operations and I have created a basic edit form in PHP. I have not used any field validations and all I want is simply editing information.
I am following this tutorial
Once a user is clicked on Edit link he is directed to the following form on which the user is supposed to edit his data.
Here is the code
<?php
include_once './functions.php';
include_once './database.php';
function renderForm($firstName,$lastName,$age){
?>
<!DOCTYPE html>
<html>
<head>
<title>Edit</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width">
</head>
<body>
<form action="edit.php" method="post">
First Name<input type="text" name="firstname" value="<?php $firstName ;?>"><br/>
Last Name<input type="text" name="lastname" value="<?php $lastName ;?>"><br/>
Age<input type="text" name="age" value="<?php $age ;?>"><br/>
<input type="submit" name="submit" value="Edit">
Cancel
</form>
<?php
}
?>
<?php
if (isset($_POST['submit'])) {
$firstName = cleanData($_POST['firstname']);
$lastName = cleanData($_POST['lastname']);
$age = (int) $_POST['age'];
$id = $_GET['id'];
$query = "UPDATE basic ";
$query.="SET first_name='$firstName',last_name='$lastName',age=$age ";
$query.="WHERE id=$id";
confirmQuery($query);
closeDatabase();
}else{
$id=cleanData($_GET['id']);
$query="SELECT * FROM basic WHERE id= {$id} ";
$result=confirmQuery($query);
$rows= mysqli_fetch_assoc($result);
$firstName=$rows['first_name'];
$lastName=$rows['last_name'];
$age=$rows['age'];
renderForm($firstName, $lastName, $age);
}
?>
</body>
</html>
//Additional information
//functions included in other files
function cleanData($input){
global $connection;
return mysqli_real_escape_string($connection,$input);
}
function confirmQuery($query){
global $connection;
$result=mysqli_query($connection, $query);
if(!$result){
return "Query failed : ".mysqli_error($connection);
}
else{
return $result;
}
}
function closeDatabase(){
global $connection;
mysqli_close($connection);
}
//I have not included the file which I am using to
//connect to the DB. I am sure there is no error with that file since it works
//properly with other php files
The problem that I have with my edit form is it does not show previously entered data and just shows only a blank form (similar to create form). (It does not happen when I run the demo in the above mentioned tutorial)
Netbenas IDE says variables which are inside HTML input tags seems to be unused in its scope. I have googled this question and found that warning can be simply ignored.
But Where have I gone wrong?
I am grateful to anyone who can kindly go through my code and show me the error.
Thank You :)
I have change your PHP code to below code use in your edit.php.if u get any issue put comment.
<?php
include_once './functions.php';
include_once './database.php';
if (isset($_POST['submit'])) {
$firstName = cleanData($_POST['firstname']);
$lastName = cleanData($_POST['lastname']);
$age = (int) $_POST['age'];
$id = $_GET['id'];
$query = "UPDATE basic ";
$query.="SET first_name='$firstName',last_name='$lastName',age=$age ";
$query.="WHERE id=$id";
$r=mysql_query($query);
if($r)
{
echo "Record updated";
}
}
$id=$_GET['id'];
$query="SELECT * FROM basic WHERE id='$id' ";
$result=confirmQuery($query);
$rows= mysqli_fetch_assoc($result);
$firstName=$rows['first_name'];
$lastName=$rows['last_name'];
$age=$rows['age'];
?>
<!DOCTYPE html>
<html>
<head>
<title>Edit</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width">
</head>
<body>
<form action="edit.php" method="post">
First Name<input type="text" name="firstname" value="<?php echo $firstName ;?>"><br/>
Last Name<input type="text" name="lastname" value="<?php echo $lastName ;?>"><br/>
Age<input type="text" name="age" value="<?php echo $age ;?>"><br/>
<input type="submit" name="submit" value="Edit">
Cancel
</form>
</body>
</html>
Please help me.. I don't know why there is no output in my PHP code.. Below is my index.php code
<html>
<body>
<form action="search.php" method="POST">
<input type="text" name"number" placeholder="Search...."><br/>
<input type = "submit" value="Search">
</form>
</body>
</html>
and this is my search.php.
<html>
<body>
<?php
mysql_connect("localhost","root","");
mysql_select_db("login");
$initial = mysql_real_escape_string($_POST['initial']);
$find_videos = mysql_query("SELECT * FROM `sigup` WHERE `initial` LIKE '%initial%'");
while($row = mysql_fetch_assoc($find_videos))
{
$name = $row['name'];
echo "$name<br/ >";
}
?>
</body>
</html>
mysql_query("SELECT * FROM `sigup` WHERE `initial` LIKE '%$initial%'");
<input type="text" name="initial" placeholder="Search....">
<html>
<body>
<form action="search.php" method="POST">
<input type="text" name="number" placeholder="Search...."><br/>
<input type = "submit" value="Search">
</form>
</body>
</html>
search.php
<html>
<body>
<?php
mysql_connect("localhost","root","");
mysql_select_db("login");
$initial = mysql_real_escape_string($_POST['number']);
$find_videos = mysql_query("SELECT * FROM sigup WHERE initial LIKE '%initial%'");
while($row = mysql_fetch_assoc($find_videos))
{
$name = $row['name'];
echo "$name";
}
?>
</body>
</html>
<html>
<body>
<form action="search.php" method="POST">
<input type="text" name="initial" placeholder="Search...."><br/>
<input type = "submit" value="Search">
</form>
</body>
</html>
search.php
<html>
<body>
<?php
mysql_connect("localhost","root","");
mysql_select_db("login");
$initial = mysql_real_escape_string($_POST['initial']);
$find_videos = mysql_query("SELECT * FROM `sigup` WHERE `initial` LIKE '%$initial%'");
while($row = mysql_fetch_assoc($find_videos))
{
$name = $row['name'];
echo "$name<br/ >";
}
?>
</body>
</html>