Php input manipulation [closed] - php

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 8 years ago.
Improve this question
<!DOCTYPE html>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<form method="post">
Text that needs to be processed
<input type="text" id="text" name="t">
<input type="submit" id ="order" name="order">
<input type="text" name="credit" value="100" readonly="true" id="credit"/>
</form>
<?php
if(isset($_POST['order']))
{
print_r($_POST['t']);
}
?>
</body>
</html>
How do I manipulate the value of "credit" on click of submit (i want to be able to set the value of the credit field to the $_POST['t] value

After seeing your comment, this is easily achievable by doing this:
<input type="text" name="credit" value="<?php echo (isset($_POST['order'])) ? $_POST['t'] : '100';?>" readonly="true"id="credit"/>
Using the shorthand ternary operator (?:) (A shorter if/else)
You're basically saying
echo (IF POST[order] IS SET) ? SHOW POST[t] : OTHERWISE SHOW 100;
Pseudo code above
Edit: in relation to your next comment
if(isset($_POST['order'])) {
$t = $_POST['t'];
$v = $_POST['credit'];
$total = ($t - $v);
}
and further on (in the form)
<input type="text" name="credit" value="<?php echo (isset($total)) ? $total : '100';?>" readonly="true"id="credit"/>
Untested Pseudo code above. You'll want to make sure that the numbers don't decrease below 0 possibly?
Another edit based on your comment here
You're on the right path, you just have to set up the conditions:
if(isset($_POST['order'])) {
$t = $_POST['bet'];
$v = $_POST['credit'];
if($_POST['bet'] > $_POST['credit']) {
$total = $v;
echo "<h1>YOUR BET IS TOO HIGH MAN</h1>";
} else {
$total = ($t - $v);
}
}

Related

how to generate amount of array elements from value in textbox [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 4 years ago.
Improve this question
I have text box:
Size of array:
After this i have button Show array:
<html>
<body>
<form name="form" method="post">
Size of array: <input type="number"value="5" name="size", min="2", max="10">
<input type="submit" name="Send" value="Show array"></span></p>
</form>
</body>
</html>
<?php
if(isset($_POST['Send']))
{
//what must be here?
}
?>
but i don't know, how to generate random numbers from digits, which is entered in text box, e.g. if text box contains 8, then generates 8 random numbers from 2 until 10..can u help please ?
Edit new version i think is what you want??
$numb=range(2,10);
shuffle($numb);
$output = array_slice($numb, 0, $_POST['guess']);
echo implode(',',$output);
range() to make an array of the numbers you want to use (2-10). shuffle randomises them, array_slice() picks the number of elements according to the form input. implode for display.
Old version:
<html>
<body>
<form name="form" method="post">
Size of array: <input name="guess" type="number" value="5" name="size", min="2", max="10">
<input type="submit" name="Send" value="Show array"></span></p>
</form>
</body>
</html>
<?php
if(isset($_POST['Send']))
{
for ($i = 0; $i < $_POST['guess']; $i ++) {
$random[] = rand(2, 10);
}
echo implode(',', $random);
}
?>
the for loop is running the number of times the user selected, and the rand is picking the numbers, implode is gluing the numbers together for output

Simple PHP quiz using a text box input

I'm looking to implement a very simple quiz using PHP which I'm struggling to find any other examples of to copy. I'm open to various solutions but the requirements are as follows:
Quiz takes place on a single page;
One questions appears at a time, and the user can only see the next question when they correctly answered the current one;
All question types are 'short answer', with users needing to input the correct answer in a text box.
I have been attempting to find a solution using PHP conditional statements (if/else) based on a users answers and my current code looks like this:
<form method="POST" action="">
<label for="question01">1. How many sides does a triangle have?</label>
<input type="text" name="guess01" value="">
<input type="submit">
</form>
<?php
// Process Question 1 Form
$guess01 = $_POST['guess01'];
$guess01 = strtolower($guess01);
$answer01 = "three";
if ($guess01 == $answer01)
{
?>
<p>Correct answer given for question 1!</p>
<form method="POST" action="">
<label for="question02">2. How many sides does a square have?</label>
<input type="text" name="question02" value="" placeholder="Answer here...">
<input type="submit">
</form>
<?php
// Process Question 2 Form
$guess02 = $_POST['guess02'];
$guess02 = strtolower($guess02);
$answer02 = "four";
if ($guess02 == $answer02)
{
?>
<p>Correct answer given for question 2!</p>
<form>
<label for="question02">3. How many sides does a pentagon have?</label>
<input type="text" name="question02" value="" placeholder="Answer here...">
<input type="submit">
</form>
<?php
// Process Question 2 Form
$guess03 = $_POST['guess02'];
$guess03 = strtolower($guess02);
$answer03 = "five";
if ($guess03 == $answer03)
{
?>
<p>Correct answer given for question 3!</p>
<p>Quiz completed!</p>
<?php
}
elseif (empty($guess03))
{
echo "<!-- No Answer Given -->";
}
else
{
echo "<p>Try Again!</p>";
}
?>
<?php
}
elseif (empty($guess02))
{
echo "<!-- No Answer Given -->";
}
else
{
echo "<p>Try Again!</p>";
}
?>
<?php
}
elseif (empty($guess01))
{
echo "<!-- No Answer Given -->";
}
else
{
echo "<p>Try Again!</p>";
}
?>
I'm sure this is very inefficient coding and I'm open to other ways of tackling this. Any help would be very gratefully received. Thank you.
As the form and the validation of your questions are always same only the data changes, you do not need to copy the code. Just put questions and answers in an array and put the number of the current questions in your form.
// Declare all your questions and answers as multi dimensional array
$questionsAndAnwsers = array(array("question" => "1. How many sides does a triangle have?", "answer" => "three"),
array("question" => "2. How many sides does a square have?", "answer" => "four"));
// current question
$currentQuestion = 0;
if(isset($_POST["currentQuestion"])){
$currentQuestion = $_POST["currentQuestion"];
if($_POST["guess"] == $questionsAndAnwsers[$currentQuestion]["answer"]){
// answer was correct, increment your question-counter for the next question
$currentQuestion++;
// print success message
} else {
// question was wrong, counter stays as it is, so same question will be printed
// print failure message
}
}
?>
<form method="POST" action="">
<label for="question"><?php echo ($currentQuestion+1).". ". $questionsAndAnwsers[$currentQuestion]["question"];?></label>
<input type="hidden" name="currentQuestion" value="<?php echo $currentQuestion;?>">
<input type="text" name="guess" value="">
<input type="submit">
</form>
<?php
You have to add a additional if-clause, for the case all questions has been answered.
EDIT:
This is a simple Implementation and it is easy to cheat. As the question number is passed to the browser, the user can alter it (setting it to 9). To close this whole, you have to use session and save the number of the last correct answer in the session on the server.

I want to get values from one table to another and insert some form values how? [closed]

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 7 years ago.
Improve this question
I want to add some data to mysql table from another mysql table and at the same time i want to add some form $_POST values to the same table in the same row.
Note : IM NEW TO PHP AND MYSQLI
Basically im looking for the correct syntax, please do help me and thanks in advance.
<?php
if(isset($_POST['ask'])) {
require('includes/connection.php');
$problem = $_POST['problem'];
$expecting = $_POST['expecting'];
//SELECT * FROM users WHERE email = '$email' AND
$string = "INSERT INTO ask(users_id,username,email,age,sex,problem,expecting) SELECT id,username,email,age,sex FROM users AND VALUES('$problem','$expecting') WHERE users.email = '$_SESSION[email]'";
$query = mysqli_query($dbc,$string);
if($query) {
echo 'yes';
} else {
echo 'something is wrong' . $query . mysqli_error();
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body>
<div class="ask">
<h1>Ask</h1>
<form method="post" action="logged.php">
<p><label>Problem: </label><input type="text" name="problem" value="<?php if(isset($problem)) { echo $problem; } ?>"></p>
<p><label>Expecting: </label><input type="text" name="expecting" value="<?php if(isset($expecting)){ echo $expecting; } ?>"></p>
<p><input type="submit" name="ask" value="Ask"></p>
</form>
</div>
<form method="post" action="logged.php">
<input type="submit" name="logout" value="Logout">
</form>
</body>
</html>
Your first problem is wrong database design. Instead of duplicating user's data in the questions table, you have only to link it. Read up on database normalization, and change your ask table by removing username,email,age,sex fields.
Then get user_id from users table with SELECT query.
Then run a conventional INSERT query
INSERT INTO ask(users_id,problem,expecting)
Note that you have to use prepared statements for database interactions.

Using PHP post for simple prime number program [closed]

Closed. This question needs debugging details. It is not currently accepting answers.
Edit the question to include desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem. This will help others answer the question.
Closed 7 years ago.
Improve this question
I can make a simple set of IF statements to find whether a number is either a composite or a prime (even though I think a function would be better suited).
However, I can't echo out either statement below when I try to up-my-game and use post.
There are no syntax errors here, just flawed logic. Problem is, where is the flaw??
Thanks for any advice.
<form>
<form name="PrimeCalculator" method="post" action="">
<input type="text" name="input"> Enter any number to see if it's a Prime or Composite<br />
<input type="submit" name="submit" value="Calculate">
</form>
<?PHP
if($_POST['submit'] == "Calculate"){
$num=$_POST["input"];
for ($i = 2; $i <= $num-1; $i++) {
if ($num % $i == 0) {
$value= True;
}
}
if ($value) {
echo 'The Number '. $num . ' Is A Composite';
} else {
echo 'The Number '. $num . ' Is A Prime';
}
}
?>
Your error actually is in the html, remove the first <form> tag and it should work, though your code is throwing
E_NOTICE : type 8 -- Undefined variable: value -- at line 14
when entering a prime number as $value isn't set then.
You can use
if (isset($value) && $value)
for the check instead.
<form name="PrimeCalculator" method="post" action="">
<input type="text" name="input"> Enter any number to see if it's a Prime or Composite<br />
<input type="submit" name="submit" value="Calculate">
</form>

How do I Get This HTML 5 Form To Give PHP The Input Data Then Display It On The Screen [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 8 years ago.
Improve this question
How do I Get This HTML 5 Form To Give PHP The Input Data Then Display It On The Screen. I want to collect data in a form. Convert it into a php variable and then echo it out in a way that I can read it.
<form>
First name:<br>
<input type="text" name="name">
</form>
<body>
<pre>
<?php
$taco = htmlspecialchars($_POST["name"]) . '!';
$taco = $_POST;
echo $taco;
?>
</pre>
</body
</html>
How about the following:
<?php
if($_POST) { // check if the page is posted not with a $_GET
foreach($_POST as $field => $value) { // Foreach field
$value = strip_tags($value); // Strip html tags (you can add more)
echo 'Field: '.$field.' has value: '.$value.'<br>'; // output
}
}
?>
<form action="" method="post">
First name: <input type="text" name="first_name">
<input type="submit" value="Display">
</form>
Just put it all in one php file. You can add as many fields as you want.

Categories