1

mysql データベースには、次の 3 つの列があります。

id  url_href              url
1    yahoo         http://www.yahoo.com
2    google        http://www.google.com
3    bing          http://www.bing.com

次のクエリを使用して値を取得します

mysql_select_db($database_XYZ, $XYZ);
$query_urlencoder = "SELECT id, url_href, url FROM sites WHERE id >0 ORDER BY id DESC";
$urlencoder = mysql_query($query_urlencoder, $XYZ) or die(mysql_error());
$row_urlencoder = mysql_fetch_assoc($urlencoder);
$totalRows_urlencoder = mysql_num_rows($urlencoder);

href タグ

<a href="redirect.php?encodeurl=<?php echo $row_urlencoder['url']; ?>" target="_blank"><?php echo $row_urlencoder['url_href']; ?></a>

次のような繰り返し領域に基づいて、ページにリンクを動的に入力します。

yahoo
google
bing

上記のリンクをクリックすると、ユーザーはそれぞれに移動します

http://www.examplecom/redirect.php?encodeurl=http://www.yahoo.com
http://www.example.com/redirect.php?encodeurl=http://www.google.com
http://www.example.com/redirect.php?encodeurl=http://www.bing.com

しかし、それらは実際にはそれぞれのURLにリダイレクトされません

http://www.yahoo.com
http://www.google.com
http://www.bing.com

この場合、href リンクを上記の URL にリダイレクトするにはどうすればよいですか? 任意の提案または参照を感謝します。

4

3 に答える 3

1

urlencode php 関数を使用する

redirect.php?encodeurl=<?php echo urlencode($row_urlencoder['url']); ?>
于 2013-02-18T11:21:19.000 に答える
0

rawurlencode( )が手伝う。

エスケープ エンコードが必要な文字は、コントロール、スペース、および予約文字です。

; / ? : @ & = + $ ,

区切り文字もエンコードする必要があります。

< > # % "

次の文字は、ゲートウェイとネットワーク エージェントで問題を引き起こす可能性があるため、エンコードする必要があります。

{} | \ ^ [ ] `

PHP はrawurlencode( )それらを保護する機能を提供します。たとえば、埋め込みリンクrawurlencode( )の属性を作成できます。href

echo '<a href="search.php?q=' .
      rawurlencode("100% + more") .
      '">';

結果は、<a>正しくエンコードされた URL が埋め込まれた要素です。

<a href="search.php?q=100%25%20%2B%20more">

PHP は、前者がスペースを + 記号としてエンコードするのに対し、後者は としてスペースをエンコードするというurlencode( )点で関数とは異なる関数も提供します。スペースをエンコードするための + 文字の使用は、スペースをエンコードする初期の HTTP 方法でした。rawurlencode( )encodes%20

于 2013-02-18T11:44:33.577 に答える