0

PHP でリンクを作成し、そのリンクを送信して、そこに含まれるデータを mysql DB に投稿しようとしています。

このリンクをアドレス バーに貼り付けて Enter キーを押すと、どの Web サイトやブラウザーからでも、DB にレコードを追加できます。

http://mysite.com/data.php?first=bob&last=smith

data.php は次のようになります。

<? 
include("dbinfo.inc.php");

$first = $_GET['first'];
$last = $_GET['last'];

$query = "INSERT INTO db1 (first,last) VALUES ('$first','$last')";
mysql_query($query);

mysql_close();
?> 

しかし、私がやりたいのは、別のサイトで文字列を作成し、リンクを生成して、アドレスバーに貼り付けられたかのように送信することです:

たとえば、Web サイト B で、send.php に次のコードがあるとします。

<?
include('http://mysite.com/data.php?first=bob&last=smith');
?>

しかし、それはエラーを生成します

それから私は試しました:

<?
$url = 'http://mysite.com/data.php?first=bob&last=smith';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_close($ch);

?>

しかし、それはDBに投稿されません。

そのため、リンクをブラウザのアドレスバーに直接配置するとDB投稿されますが、phpコードを作成して、リンクを生成し、アドレスバー貼り付けられたかのようにデータを投稿したいと考えています。

4

2 に答える 2

0

あなたのファイルは正しく書かれていません。変数はクエリと一致せず、エスケープしていません。mysqli減価償却なので私も使ってmysqlいます。これは良い方法ではないことに注意してください。とにかく質問に答えます。

include("dbinfo.inc.php");

$first= mysqli_real_escape_string($_GET['first']);
$last = mysqli_real_escape_string($_GET['last']);

$query = "INSERT INTO db1 (first,last) VALUES ('$first','$last')";
mysqli_query($connection, $query);

mysqli_close();
于 2013-11-05T22:49:03.693 に答える
0

これが解決策です:

<?
$url = 'http://mysite.com/data.php?first=bob&last=smith';    

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, $url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$result = curl_exec($ch);
//echo $result;

curl_close($ch);

?>
于 2013-11-05T23:31:59.157 に答える