1

私は各ビジネスのページを書くfwriteを持っていますが、有効なセッションでURLにアクセスしたときにページのhtmlのみを表示するようにしたいので、fwrite($fp,"

ただし、ページを書き込むときはこれを書き込みます。isset ステートメントは if ステートメントから削除されました。

    <?php

$recid = $_POST['recid'];
$username = $_POST['name'];
$email = $_POST['email'];
$ownername = $_POST['ownername'];

include ("connection.php");


$result = $db->query("UPDATE users SET verified='y' WHERE recid='$recid'"); 

$doctype      = "<!DOCTYPE html>";
$htmlOpen     = "<html>";
$head         = "<head> <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>
                 <script src='http://code.jquery.com/jquery-1.9.1.min.js'> </script>
                 <script src='http://code.jquery.com/ui/1.10.2/jquery-ui.js'> </script> 
                 <script src='Scripts/dropdown.js'> </script> 
                 <link rel='stylesheet' href='CSS/businesspages.css'> 
                 <link rel='stylesheet' href='http://code.jquery.com/ui/1.10.2/themes/smoothness/jquery-ui.css'> 
                 <script src='Scripts/postdata.js'> </script>
                 </head>";

$bodyOpen     = "<body>";
$header       = "<div id='header'> </div>";
$wcImage      = "<img src='wc.png' id='wc'>";
$accountTable = "<table id='accountinfo'> 
                 <tr> <td id='accountinfotd1'> </td> </tr> 
                 <tr> <td id='accountinfotd2'>{$username}</td> </tr> 
                 <tr> <td id='accountinfotd3'>{$ownername}</td> </tr> 
                 </table>";

$linksTable   = "<table id='links'> 

                <tr> <td> <input type='text' id='post' placeholder='Post' name='post'> </td> </tr>

                <tr> <td> <img src='images/profile.jpg' id='profile'> </td> </tr> 

                <tr> <td> <div id='profileDiv'>
                <table>
                <tr> 
                <td> <input type='password' id='changePSW' name='changePSW' placeholder='Change Password' tabindex=2> </td>
                <td> <input type='password' id='verifyPSW' name='verifyPSW' placeholder='Verify Password' tabindex=3> </td>
                <td> <input type='image' id='changePSWBtn' src='images/changeBtn.jpg' name='changePSWBtn'> </td>
                </tr>
                <tr> 
                <td> <input type='text' id='changeLA' name='changeLA' placeholder='Latitude' tabindex=6> </td>
                <td> <input type='text' id='changeLO' name='verifyPSW' placeholder='Longatude' tabindex=7> </td>
                <td> <input type='image' id='changeLLBtn' src='images/changeBtn.jpg' name='changeLLBtn'> </td>
                </tr>
                </table>
                </div> </td> </tr> 

                <tr> <td> <img src='images/legal.jpg' id='legal'> </td> </tr> 

                <tr> <td> <div id='legalDiv'>
                <a href='Legal_Documents/termsofuseweb.pdf' target='_blank'> Web Terms Of Use </a> </br>
                <a href='Legal_Documents/termsofuseios.pdf' target='_blank'> iOS Terms Of Use </a> </br>
                <a href='Legal_Documents/enduserlisenceagreement.pdf' target='_blank'> End Of User Licensee </a>
                </div> </td> </tr> 

                <tr> <td> <img src='images/help.jpg' id='help'> </td> </tr> 

                <tr> <td> <div id='helpDiv'> 
                <p> If you need help you can contact Phil Pilon or Matt Muehlemann info@wolfeboroconnection.com </p>
                </div> </td> </tr> 

                </table>";

$bodyClose    = "</body>";
$htmlClose    = "</html>";
$isset = "{$_SESSION['id']}";

$filename = str_replace(" ","_", trim($username) ); 
mkdir("Business_Pages/" . $filename."/");

if( $fp = fopen("Business_Pages/" . $filename . "/" . $filename . ".php", "w") )
{
  fwrite($fp,"<?php session_start();");
  fwrite($fp, "if(isset({$_SESSION['id']})) { ?");
  fwrite($fp, $doctype.$htmlOpen.$head.$bodyOpen.$header.$wcImage.$accountTable.$linksTable.$bodyClose.$htmlClose);
  fwrite($fp,"<?php } else { echo \"User not logged in\";} ?>");
  fclose($fp);
}

これは、それが書き込むページです

    <?php session_start();if() { ?><!DOCTYPE html>
<html><head> <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>
                 <script src='http://code.jquery.com/jquery-1.9.1.min.js'> </script>
                 <script src='http://code.jquery.com/ui/1.10.2/jquery-ui.js'> </script> 
                 <script src='Scripts/dropdown.js'> </script> 
                 <link rel='stylesheet' href='CSS/businesspages.css'> 
                 <link rel='stylesheet' href='http://code.jquery.com/ui/1.10.2/themes/smoothness/jquery-ui.css'> 
                 <script src='Scripts/postdata.js'> </script>
                 </head>
                 <body>
                 <div id='header'> </div><img src='wc.png' id='wc'><table id='accountinfo'> 
                 <tr> <td id='accountinfotd1'> </td> </tr> 
                 <tr> <td id='accountinfotd2'>test </td> </tr> 
                 <tr> <td id='accountinfotd3'></td> </tr> 
                 </table><table id='links'> 

                <tr> <td> <input type='text' id='post' placeholder='Post' name='post'> </td> </tr>

                <tr> <td> <img src='images/profile.jpg' id='profile'> </td> </tr> 

                <tr> <td> <div id='profileDiv'>
                <table>
                <tr> 
                <td> <input type='password' id='changePSW' name='changePSW' placeholder='Change Password' tabindex=2> </td>
                <td> <input type='password' id='verifyPSW' name='verifyPSW' placeholder='Verify Password' tabindex=3> </td>
                <td> <input type='image' id='changePSWBtn' src='images/changeBtn.jpg' name='changePSWBtn'> </td>
                </tr>
                <tr> 
                <td> <input type='text' id='changeLA' name='changeLA' placeholder='Latitude' tabindex=6> </td>
                <td> <input type='text' id='changeLO' name='verifyPSW' placeholder='Longatude' tabindex=7> </td>
                <td> <input type='image' id='changeLLBtn' src='images/changeBtn.jpg' name='changeLLBtn'> </td>
                </tr>
                </table>
                </div> </td> </tr> 

                <tr> <td> <img src='images/legal.jpg' id='legal'> </td> </tr> 

                <tr> <td> <div id='legalDiv'>
                <a href='Legal_Documents/termsofuseweb.pdf' target='_blank'> Web Terms Of Use </a> </br>
                <a href='Legal_Documents/termsofuseios.pdf' target='_blank'> iOS Terms Of Use </a> </br>
                <a href='Legal_Documents/enduserlisenceagreement.pdf' target='_blank'> End Of User Licensee </a>
                </div> </td> </tr> 

                <tr> <td> <img src='images/help.jpg' id='help'> </td> </tr> 

                <tr> <td> <div id='helpDiv'> 
                <p> If you need help you can contact Phil Pilon or Matt Muehlemann info@wolfeboroconnection.com </p>
                </div> </td> </tr> 

                </table></body></html><?php } else { echo "User not logged in";} ?>
4

1 に答える 1

2

その理由は、次の行を使用しているためです。

fwrite($fp, "if(isset({$_SESSION['id']})) { ?");

二重引用符を使用しているため、fwrite を介してファイルに書き込まれる前に、セッション値{$_SESSION['id']}が PHP によって解析されることを意味します。引用符を単一引用符に変更すると、PHP は単一引用符で囲まれた文字列をそのままにしておくため、この問題は発生しません。つまり、それらを変数として解析しません。

fwrite($fp, 'if(isset($_SESSION["id"])) { ?');

php を再解析したときにエラーが発生しないようにする場合を除き、セッション変数の周囲の中括弧も削除する必要があります。

これはすべて、ファイルで必要な結果が次のとおりであることを前提としています。

if(isset($_SESSION["id"])) { ?
于 2013-07-27T21:41:29.643 に答える