Automatically search website field and get resulting URL - url

I want to automatically search a string at http://www.drugbank.ca/ and get the resulting URL (the search field is at the top of the page). The website can't be searched just by manipulating the URL. Is there a server-based way to do this? I want to create my own webpage with an input field and button to "Search DrugBank for X and get the URL".
Thanks.

You need to get the contents of:
http://www.drugbank.ca/search?query=searchstring
You can't do this with javascript it's not allowed by the browser to query sites of different domains (due to: http://en.wikipedia.org/wiki/Same_origin_policy).
I would do it with php and create a file like searchDrugBank.php:
<?php
$urlContent = file_get_contents('http://www.drugbank.ca/search?query=' . $_GET['q']);
// process $urlContent however you want
?>
And then you put on your site:
<form method="get" action="searchDrugBank.php">
<input type="text" name="q" />
<input type="submit" value="Search drugbank"/>
</form>
(Since you asked)
To find what URL I was gonna query I went to the site, and looked at the form that was submitted when I pressed search (look at the source, or in it's easy to do "inspect element" on for example the searchbox or searchbutton).
I find that the form is:
<form accept-charset="UTF-8" action="/search" method="get"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓"></div>
<strong>Search:</strong>
<input id="query" name="query" placeholder="Search DrugBank" size="30" type="search">
<input name="commit" type="submit" value="Search">
Help / Advanced
</form>
Which means that when you press search, exactly what happends is that you will do a GET request, since method="get" and get request means to ask for an url, and if parameters is required, they should be in the URL (http://en.wikipedia.org/wiki/Query_string#Web_forms).
The URL that will be queried is /search since action is action="/search" the rest of the url will then be built using provided parameters here it's just:
<input id="query" name="query" placeholder="Search DrugBank" size="30" type="search">
And there you can see that name of the parameter that should be provided to do a search, namely "query"!

Related

How to get last inserted ID and send again

How can I send the lastInsertId again to another php document?
Explanation why:
After someone sends a form (form.html) to a database (send.php) he will get an ID for that form. This ID I show in the send.php to the person via PDO:
<p>Your ID:<?php echo $dbh->lastInsertId(); ?></p>
At this confirmation page I want give the person the possibility to print the data from his form as an pdf. So I wrote:
<form action="print.php" method="POST">
<input type="hidden" name="ID" value="<=htmlspecialchars($_POST['lastInsertId']);?>"/>
<input type="submit" name="Print" value="Print" >
</form>
But I he doesn't send the lastInsertId -> I guess the problem is here:
value="<?=htmlspecialchars($_POST['lastInsertId']);?>"
Can you help me to solve that problem?
Your code should be like this:
<form action="print.php" method="POST">
<input type="hidden" name="ID" value="<?php echo $dbh->lastInsertId(); ?>"/>
<input type="submit" name="Print" value="Print" >
</form>
Not sure if it's the best way, but I once needed the last ID of a person who registered.
I did the following after inserting the info into the DB (My table has Auto Increment Primairy Key ID):
$lastId = mysqli_insert_id($con);
You can store the ID anywhere you want. (In the URL or cookie)
Hope this helps (:
Thank you very much! That helped.
Is their an easy way that after he press print (now gets with the ID all the data from the database to show it at the site print.php - that part all works) and NOW DIRECTLY asks to save as pdf?

PayPal `rm` hidden value not returning POST data

<form action=" https://www.sandbox.paypal.com/cgi-bin/webscr" method="post" id="paypalform" name="paypalform">
<input type="hidden" name="cmd" value="_cart">
<input type="hidden" name="business" value="abc#abc.com">
<input type="hidden" name="no_shipping" value="1">
<input type="hidden" name="upload" value="1">
<input type="hidden" name="currency_code" value="<?php echo $currency ?>">
<input type="hidden" name="rm" value="2">
<input type="hidden" name="country" value="US">
<input type="hidden" name="return" value="http://abc-return.com">
<input type="hidden" name="cancel_return" value="http://abc-cancel.com">
<input type="hidden" name="item_name_1" value="Recharge">
<input type="hidden" name="item_number_1" value="<?php echo $user_id ?>">
<input type="hidden" name="amount_1" value="<?php echo $price ?>">
</form>
<script type="text/javascript">document.paypalform.submit();</script>
I'm using PayPal Payments Standard, via the HTML hidden name-value pair.
Payment was working great and smooth as butter until the 9th of this month, when things started getting worse. The return method rm = 2 was returning the post data to my return page before this date, but when I checked on 9th, the post data is not returning to my page.
I've spent more than a week and still can't figure out how could the same code works one day, and not the day afterwards.
I've implemented this method in my many other projects which could get me into trouble if the data is not posting back on my return page. Everything is just fine with my HTML forms, and I'm also receiving the payment on my PayPal Sandbox
The only issue is I'm not getting the post data on my return page.
Please help me resolve this.
Yes, I also confirm this issue. I am not certain if this is a Paypal change or a Paypal error - for it is difficult to find authoritative answers from them.
I also have a form that used to return POST data to the return url - however it recently stopped working and I was able to get it working again using GET method instead by following this helpful article.
However, this will require some changes to your IPN and success pages.
Curious to know how you solved your issue. Please update us.
Thanks for your update, however, I think there's some confusion here. The IPN url is called the notify_URL and that should receive the POSTed data back to verify the transaction. The Thank you page (or success page) is called the return url - which is where your AutoReturn takes you. I have always been receiving the POST data to my IPN page no problem AND the the POST data to my return URL. However, just in the last few weeks, the POST data stopped coming to my success (return) URL but there's no explanation as to why it would suddenly stop. Now, I can only receive GET data at my success/return page by turning on PDT. But it's OK - I re-wrote my thank you page script to use the GET variables instead. PayPal must have change this without there being any notification - very annoyed with them.

PayPal purchase link deprecated?

For years I have used a link to Paypal to let users purchase from our site:
https://www.paypal.com/xclick/business=[OURMAILADDRESS]&item_name=[ProductName]&amount=26%2e80&shipping=0%2e00&no_shipping=0&no_note=1&tax=0&currency_code=EUR&lc=it&bn=PP%2dBuyNowBF&charset=UTF%2d8'
The link stopped working about 2 weeks ago.
I cannot find any info on the net about it being deprecated.
Can anyone shine some light on this topic?
It looks like paypal has removed support for the paypal.com/xclick links that they previously recommended using (in the Website Payments Standard Checkout Integration Guide pdf from 2006).
Change your link to:
https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&business=...
For subscriptions, use:
https://www.paypal.com/cgi-bin/webscr?cmd=_xclick-subscriptions&business=...
The link you provided is not showing a 404 not found error. It goes to paypal's splash screen page. From there a user can sign in. The url is redirected towards https://www.paypal.com/home. Looks like you're had a function there that isn't working any longer. I haven't seen that before, but do have a possible solution.
If you want to provide users a way to buy with paypal on your site, a common (and not hard) method is in the html with a paypal code such as code you've created on paypal's website (under "settings" you can create a button and paste the code into your website) or by hand creating an html Form with Input fields yourself.
You're sending the data that would be in the Input fields that would show up in the Form $_GET action to paypal in the url. Paypal doesn't talk about handling data that way. Maybe whatever was allowing that to work unofficially,no longer does.
There's a lots of examples of how to create a paypal button html code on SO. I can post some if you'd like. This site tells the input fields that your url data can be created with: https://developer.paypal.com/docs/classic/paypal-payments-standard/integration-guide/Appx_websitestandard_htmlvariables/
Here's an example:
<form target="paypal" action="https://www.paypal.com/cgi-bin/webscr" method="post" >
<input type="hidden" name="cmd" value="_cart"> <!-- I'm using cart, you want to stick the buy now option value in here. -->
<input type="hidden" name="business" value="yoru business signon email">
<input type="hidden" name="lc" value="EUR">
<input type="hidden" name="item_name" value="Whats bought">
<input type="hidden" name="amount" value="15.00">
<input type="hidden" name="currency_code" value="USD">
<input type="hidden" name="button_subtype" value="products">
<input type="hidden" name="no_note" value="0">
<input type="hidden" name="cn" value="Add special instructions to the seller:">
<input type="hidden" name="no_shipping" value="2">
<input type="hidden" name="rm" value="1">
<input type="hidden" name="shopping_url" value="http://www.yours.com/OnlinePayButtons.php">
<input type="hidden" name="add" value="1">
<input type="hidden" name="bn" value="PP-ShopCartBF:btn_cart_SM.gif:NonHosted">
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_cart_SM.gif" border="0" name="submit">
<img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height=".8">
</form>
You have to pick out of the link to html variables, what inputs you need in the form. This gives a structure and idea of what it looks like.

Mechanical Turk: Post file to externalSubmit interface?

I have setup my own custom form for mechanical turk and am posting to their external interface.
<form enctype="multipart/form-data" action="https://workersandbox.mturk.com/mturk/externalSubmit" method="post" name="mturk_form" id="mturk_form">
<p>
<label for="turk_task_image_image">Upload an image</label><br>
<input type="file" size="30" name="turk_task_image[image]" id="turk_task_image_image">
</p>
<b>- OR - </b><br><br>
<p>
<label for="turk_task_image_url">Specify an Image URL</label><br>
<input type="text" size="30" name="turk_task_image[url]" id="turk_task_image_url">
</p>
<p>
<label for="turk_task_image_description">Description (optional)</label><br>
<textarea rows="3" name="turk_task_image[description]" id="turk_task_image_description" cols="80"></textarea>
</p>
<input type="hidden" value="ASSIGNMENT_ID_NOT_AVAILABLE" name="assignmentId" id="assignmentId">
<input type="hidden" value="200" name="task[storyboard_location_id]" id="task_storyboard_location_id">
<input type="hidden" value="36" name="task[turk_task_id]" id="task_turk_task_id">
<p>
<input type="submit" value="You must ACCEPT the HIT before you can submit the results." name="commit" id="submitButton" disabled="">
<img border="0" style="display: none;" src="/images/spinner.gif?1274319066" id="spinner" alt="Spinner">
</p>
</form>
When I go to retrieve the responses, all of the text field values are available but the posted file is not. According to the API docs, I should receive another url that should make the uploaded file available for download?
How do I go about getting the url of the file that is posted to the externalSubmit interface?
P.S. On a side note, I am using the rturk gem to build up these HITs. But I see nothing in the code regarding the support for posted uploaded files.
From what I can gather from the developer forums, it doesn't look like the external interface supports file uploads.
I saw one thread where a developer thought that they were going to implement it in the future but that was in 2008.
Another thread where someone states that you must handle the uploading of the file to your server and the submission of the externalSubmit form separately.
http://solutions.amazonwebservices.com/connect/thread.jspa?messageID=125657&#125657
http://solutions.amazonwebservices.com/connect/thread.jspa?messageID=92072&#92072
http://solutions.amazonwebservices.com/connect/thread.jspa?messageID=97431&#97431
I'm currently exploring an AJAXy upload interface for the file upload along with a separate externalSubmit form for the image details.

Redirect user to directory based on form input

I know enough about the coding end of web design to be embarrassed by what I don't know. What I want to do is to have various print promotions in newspapers and what not along the lines of: for more information please visit www.mysite.com/2345.
If the visitor doesn't enter the entire url in the nav bar and ends up at the main index, I want to have a text field there so they can enter "2345", hit enter or submit, then be redirected to www.mysite.com/2345 wherein the folder's index page will load.
I usually search and find the coding info I'm looking for, but I can't figure out a concise way to search this particular problem. Can anyone help with this or point me in the right direction for help elsewhere?
Thanks.
Pretty simple with JavaScript, here's a working example:
<form onsubmit="location.href='http://www.mysite.com/' + document.getElementById('myInput').value; return false;">
<input type="text" id="myInput" />
<input type="submit" />
</form>
You can do it using javascript. Here's a terribly ugly example but should give you an idea.
<form>
<input type="text" id="number" name="number" />
<input type="submit" onclick="window.location = window.location + '/' + number.value; return false;"/>
</form>
Ideally you'd also handle it in whatever server side language you're using as well. Here's a PHP example:
<?
if(isset($_POST['number'])){
header('Location: http://www.yourdomain.tld/'.$_POST['number']);
exit;
}
?>
Very simple example with PHP, so that you can understand how it works. Very simple.
<?php
if (isset($_POST['bt']))
{
header("Location: http://localhost/" . $_POST['folder']);
}
?>
<html>
<form id="form1" name="form1" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<input type="text" name="folder" id="folder" />
<input type="submit" name="bt" id="bt" value="Go To" />
</form>
</html>
This is you index.php File, in your htdocs/www folder.
The PHP notices when you click the button and it will redirect you to
http://www.yourdomain.com/what-you-have-writen-in-the-textfield
You can also do it with JavaScript, but with PHP it will work even if your visitor browser has JavaScript disabled.

Resources