2016-07-22 20 views
-2

私はPHPを使用しており、ユーザーが自分のウェブサイトへのリンクに入力する入力があります。他の人がリンクを見たり開いたりするためのリンクが表示されます。私は入力をテストしていますが、問題は、http://またはhttps://の前にタイプしないとリンクが機能しないということです.hhtpを書き込まずにwww.foo.comを書く人もいると思います。 // 私はXAMPで作業しているため、リンクは自動的にhttp://またはhttps://withを私のウェブサイトのルート(または少なくとも私が推測するもの)に置き換え、URLはlocalhost/MyFooProjectFile/www.foo.comとして表示されます。http://プロトコルなしではリンクが動作しません

どのようにプロトコルなしでリンク作業を行うか、または私のユーザーのリンクの前に右のものと何も言及されていないプロトコルを置き換えますか?

注:リンクがプロトコルなしで動作できると思うばかげた愚か者だと思うかもしれませんが、私のブラウザwww.foo.coのアドレスバーに書き込むのは不思議です。それは私がそこに連れて行ってもらうことなく、議定書を守らなければならない。

私は質問を書く時にコードを持っていないことに注意してください。 inputedユーザーが危険にさらされているURLでの

+0

、彼らが入力されたリンクは、プロトコルかが含まれている場合だけ確認してください。そうでない場合は、追加します。 – rjdown

+0

http://はブラウザで最も一般的なプロトコルなので、ブラウザは実際にアドレスバーに入力したURLの前に "http://"を追加します(ほとんどのブラウザはプロトコルを表示しませんが、 URLをアドレスバーに貼り付けると、プロトコルも取得されます)。サイトのリンクに関しては、明示的に指示しない限り、相対URLまたは絶対URLを意味するかどうかはブラウザには分かりません。だからあなたはリンクでプロトコルが必要です。 –

+0

あなたは@rjdownが示唆したことを行うことでそれを解決できます。 –

答えて

0

重複With HTML5 url input validation assume url starts with http://

トラスト。あなたは、URLをフィルタリングし、それらを解析し、それらを構築し、それらをテストし、次にあなたのページに埋め込む必要があります。

Not all the URL must have "//"

+1

さて、OPは "自分の**ウェブサイト**へのリンクでユーザータイプ"と言っていたので、接頭辞として "protocol://"があると仮定することができます。それがない場合は、単に「http://」を追加してください。他のプロトコルが必要な場合は、明示的に書き込むようにしてください。あなたは妥当性については正しいです。これは、保存または表示する必要のあるすべてのユーザー入力に対して与えられたものです。 –

関連する問題