Trying a HTTP POST with Python - php

For a long time I love programming things that collects data for me. In Python I can make a GET request to a website and return the HTML of the website I would like to receive.
But in alot of websites you can POST something to the server and PHP would then respond/react on that sended data. How do I do this in Python?
For example, in the website at the bottom of this post I can insert my name and press the submit button to send the data to the PHP script. How do i do this in a socket with Python?
Also I really want to make it work without any libraries because ill be implementing it to other programs in other programming languages.
<html>
<body>
<form action="website.php" method="post">
<fieldset>
<br>
Enter your name:
<input type="text" name="un">
<center>
<input type=submit value=submit>
</center>
</fieldset>
</form>
</body>
</html>

Related

How to take real time input output from a python script on PHP

I want to take input from user through a html form, process it through a python script and print the output on html page. The problem is the whole python script is executed each time, while I want the script to give real time output for each input. How can I manage to do this ?
Here is what I am doing so far.
<?php
$vout='';
if(isset($_POST['submit']))
{
$vin=$_POST['input_text'];
$vout=exec('python bot.py '.$vin);
}
?>
<form method="post">
<label>
BotIn: <input type="text" name="input_text">
</label>
<input type="submit" name="submit">
</form>
</br></br>
<label>
<p>Bot: <?=$vout?></p>
</label>
The best way to solve your problem will be running simple python app using, let's say, Flask and hit to specific endpoint you'll make in it. Everything then could take place through localhost, if you'll set it on the same machine.

PHP POST not working correctly

When I submit my form, I get sent to the correct file as specified in the action attribute of my form, but the PHP in the file isn't printing the variables at all... I've combed through posts of other people having the same issue, but none of their solutions fix my problem. I've stripped my code down to a simple, textbox, button, and a php file that's supposed to print the textbox value.
If it matters, I'm running this locally in chrome, not using any servers or websites yet, I'd like to get my code working locally before I upload to my server.
HTML
<html>
<form action="Submit.php" method="post">
<input type="text" placeholder="First Name" name="firstName" id="firstName" required>
</br></br>
<input type="submit" name="submitted" value="Submit">
</form>
</html>
PHP
<html>
<body>
Name <?php echo $_POST["firstName"]; ?><br>
</body>
</html>
All I get when I click the button is a white page with "Name" printed.
Thanks!
Running scripts in response to HTTP requests is something that's done by the webserver. If you just use local files, the script will simply be loaded into the browser as a text or HTML file, it won't be executed. You can't do form processing like this.
You need to run a local server, then access the form as http://localhost/form.html

POST error with Markdown in Jekyll for Github Page

I am trying to implement a simple form in my Github page to learn how to use POST in html forms. The code I am using right now contains:
2014-07-05-post1.markdown:
<form action="/scripts/1.php" method="post">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>
1.php:
<html>
<body>
Welcome <?php echo $_POST["name"]; ?><br>
Your email address is: <?php echo $_POST["email"]; ?>
</body>
</html>
However this returns an error:
How do you correctly use POST requests in Markdown and Jekyll.
I think you can't.
Jekyll in the end generates just a static site, i.e. a bunch of HTML and CSS files. The server does nothing but serving those files, the server doesn't do any processing. But when you do a HTTP POST, you send data to the server and it would have to do something with the data (e.g. saving it to a database or sending an email).
So your form is correct but there's nothing on the server-side that can receive it. However, you could send the form data to a third-party server or use a PHP or node.js server for that.

Sending data from HTML5 to PHP service

i'd like to ask question about using php web service in html5. In my first html file I want to get a input from textbox when button is clicked, I want to send this input to my php web service and then print it in the second html file. I've get it done by the code below but i want to send it to seperated php web service.
1st html file.
function submitForm(action)
{
document.getElementById('form1').action = action;
document.getElementById('form1').submit();
}
---------------------------------------------------------
<form action="deneme.php" id="form1" name="form1">
<input type="text" name="searchtxt" id="searchtxt" placeholder="Write something to search"></br>
<div align="center">
<input type="button" onclick="submitForm('deneme.php')" value="Find Location" data-icon="search" data-iconpos="right" data-theme="a" data-inline="true"/></div>
</form>
since I used deneme.php in onclick i had to have my 2nd page as php which is what i want to prevent.
deneme.php file
<?php
$search=$_REQUEST['searchtxt'];
if(empty($search)){
echo ("<br/>You don't enter anything.");}
else{
echo ($search);
}
?>
As i mentioned above, i want to send variable to seperated php web service and get back response but having my second page also html. How should i modify my program to observe this.
Thanks

Locally testing form handling with PHP

I am creating an online order form for a wholesale nursery. I am trying to test the PHP locally and have successfully set up WAMP. When I test basic scripts, they run just fine but when I try using _POST to send data to variable from HTML input fields, nothing gets transferred to my PHP variables as noted when I try echoing them to a page. Is there something I need to do to test _POST and _GET methods locally that I don't know about?
I tried testing my ability to do so using a simple example I found at W3 schools:
<html>
<body>
<form action="test.php" method="post">
Name: <input type="text" name="fname"><br>
Age: <input type="text" name="age"><br>
<input type="submit">
</form>
</body>
</html>
Here is the PHP:
<html>
<body>
Welcome <?php echo $_POST["fname"]; ?>!<br>
You are <?php echo $_POST["age"]; ?> years old.
</body>
</html>
Like I said, I used WAMP and both files are located in the wamp/www/ folder.
First of all all forms need a method (get, post) and an action (where to send the data) in the html.
<form action='your/location.php' method='post'>
<input type='text' name='username'/>
<input type='submit' value='submit'/>
</form>
All inputs must have a name attribute this is for referencing data in the php script
<input type='text' name='username'/>
In your/location.php you will receive an array with the data under the name:
$_GET or $_POST depending on your method set in the form tag.
To access specific data use $_POST['username'] (replace username with any names set on any of the submitted form inputs)
To print out on the screen use
echo $_POST['username'];
Check if your file is under the extension .php and has the name test
If you get partial output and by partial i mean only the html part start you php server Apache or Nginx or whatever wamp uses, it might not start with all the functionality without specified to do so.
Make sure you open the page under localhost if you are testing it separately.
If for some reason you can't seem to get wamp to work try xampp which is similar and in my opinion better and never failed me.

Categories