URLのクエリ文字列に基づいてWebページ上のCSSを変更する必要がありますが、PHPを初めて使用していて、十分な例を見つけることができませんでしたそれをやる。PHPの文字列クエリに基づいてCSSを変更します
基本的に、ユーザーがメニューリンクをクリックして「aboutUs.php」ページに送信されると、文字列クエリに基づいて変更するaboutUs.phpページのCSSが必要です。
URLのクエリ文字列に基づいてWebページ上のCSSを変更する必要がありますが、PHPを初めて使用していて、十分な例を見つけることができませんでしたそれをやる。PHPの文字列クエリに基づいてCSSを変更します
基本的に、ユーザーがメニューリンクをクリックして「aboutUs.php」ページに送信されると、文字列クエリに基づいて変更するaboutUs.phpページのCSSが必要です。
私はあなたが正しく何をしたい理解していれば:
if (isset($_GET['query'])){
$query = $_GET['query'];
}else{
$query = NULL;
}
次に、このような何か:もちろん
if ($query == 'x'){
echo "
<style>
Whatever style you need...
</style>
";
}elseif ($query == 'y'){
echo "
<style>
Whatever other style you need...
</style>
";
}else{
echo "
<style>
Whatever default style you need...
</style>
";
}
をあなたの代わりにスタイルタグのスタイルシートのリンクをエコーすることができますが、ロジックがあります同じ。
style.css
をstyle.php
に変更することができます。style.php
は、ページにスタイルシートとして読み込むことができます。
<?php
header("Content-type: text/css");
?>
して、動的にコンテンツを生成:
はあなたのPHPファイルのヘッダータイプを含める必要があります。
私は質問を紛らわしく思っていませんでした。これは、CSSファイルの内容を変更するのに役立ちます。
複数のcssファイルがあり、そのパラメータの1つをaboutus.php
にインポートする場合は、別の話です。あなたのプログラムの先頭で
他の場合(あなたはCSSスタイルシートが含まれる場合)簡単な操作を行います。
if (isset($REQUEST['query_string'])) {?>
stylesheet link
<?php } else { ?>
stylesheet link 2
<?php } ?>
+1でCSSを呼び出します。 :)私は彼が議論に応じてCSSのコンテンツを変更したいと思った。 –
ので、解決策を理解するために、完全なPHPコードブロックは次のようになります。<?phpの\t \t \t \t 場合(ISSET($のREQUEST [ 'ourMission'])){> \t \t <リンクタイプ=」テキスト/ CSS "REL = "スタイルシート" HREF = "styleBlah.css"/> \t \t <?PHP}他{?> \t \t <リンクタイプ= "テキスト/ CSS" REL = "スタイルシート" HREF =" styleBleh .css "/> \t \t <?php} \t \t \t \t?> – mdance
$ _REQUESTを使用せず、$ _GETまたは$ _POSTを使用しないでください。悪い練習:) – Leigh
あなたはcookieに選択されたCSSを保存することができます:
if (isset($_GET['setstyle'])) {
setcookie('style', $_GET['setstyle'], time()+60*60*24*30, '/');
}
スタイルは次のように読むことができます:$_COOKIE['style']
。
http://example.com/?setstyle=black - >スタイルが「黒」
ない非常にきれいな解決策に設定されているが、例えばこのようなものが
<? php
if($str=="main"){
echo '<link rel="stylesheet" type="text/css" media="all" href="/css/main.css" />'
}
else if($str=="other"){
echo '<link rel="stylesheet" type="text/css" media="all" href="/css/other.css" />'
}
?>
は次のように何かを持つように注意して動作します:
<link rel="stylesheet" type="text/css" media="all" href="/css/$str.css" />
これは非常に安全な方法ではありません。たとえば、可能な値を持つ配列を作成しない限り、
$possibleCss = array("main", "other");
if(in_array($str, $possibleCss){
<link rel="stylesheet" type="text/css" media="all" href="/css/$str.css" />
}
あなたの質問の目的を知っているのは、hereから、私はあなたの共通のCSSをすべてスタイルシートに入れて、気になる要素の具体的なdisplay
プロパティを呼び出します。すべての要素をメインスタイルシートのdisplay: none
にします。
http://beta.***.com/aboutUs.php?section=ourMission
非正規化された入力をエコーすると、誤って作成されたURLを介して注入攻撃が行われます。 – Martin
十分に良い。彼はアルファ文字だけが必要なので、それはかなり簡単です。彼はまた、有効なオプションのリストから最初にテストすることもできます。 –
<link type="text/css" rel="stylesheet" href="mainStyleSheet.css" />
<style type="text/css">
<?php
if (isset($_GET['section'])){
// Sanitize
$section = preg_replace('/[^a-zA-Z]/', $_GET['section']);
echo '#' . $section . ' { display: block; }';
}
?>
</style>
は、section
はこのように呼ばれるourMisson
、ourHistory
に設定したパラメータ、などであります/ css、このファイルはgetパラメータで呼び出すことができます。 例: $style = $_GET["style"]; header("Content-type: text/css"); if($style=="blue") echo ".class{background-color:blue;}"; else echo ".class{background-color:white;}";
<link rel="stylesheet" type="text/css" href="style_file.php?style=blue" />
それはうまくいくはずです...しかし、何かが私のPHPに間違っています。今はページを壊していますか? – mdance