こんにちは、私はユーザーのドキュメントデータの基本的なデータベースを保持するために使用しているシンプルなシステムを持っています。私はこれが従来の方法ではないことを知っていますが、うまくいくかどうかを見たいと思っていました。ここまでは順調ですね。しかし、私のサイトでは、ページがロードされたときにifコマンドをトリガーする正しいステートメントとして自分のエコータグ内のデータを出力しているのに何らかの理由でテキスト文書の情報が変更されないという問題がありました。誰でも私がここで何が欠けているのか知っていますか?テキスト文書ファイルシステムを使用して、操作が機能していないことを確認しますか?
<?php
ob_clean();session_start();
if (!isset($_SESSION['loggedin']) || $_SESSION['loggedin'] == false) {
header("Location: index.php");
}
if (isset($_GET['Username'])){
$Username = $_GET['Username'];
}
$myFile=fopen("USERS/".$Username."/NoOfDocuments.txt","r") or exit("Can't open file!");
$NoOfDocs = fgets($myFile);
fclose($myFile);
$myFile=fopen("USERS/".$Username."/RiskAssessment/Subscribed.txt","r") or exit("Can't open file!");
$Subscribed = fgets($myFile);
fclose($myFile);
$myFile=fopen("USERS/".$Username."/DOC1/Name.txt","r") or exit("Can't open file!");
$DocName = fgets($myFile);
fclose($myFile);
$myFile=fopen("USERS/".$Username."/DOC1/URL.txt","r") or exit("Can't open file!");
$DocURL = fgets($myFile);
fclose($myFile);
if ($Subscribed == false){
if ($NoOfDocs == 0){
$myFile=fopen("USERS/".$Username."/NoOfDocuments.txt","w") or exit("Can’t open file!");
fwrite($myFile, ($NoOfDocs +1));
fclose($myFile);
$myFile=fopen("USERS/".$Username."/DOC1/Name.txt","w") or exit("Can’t open file!");
fwrite($myFile, 'Risk Assessment');
fclose($myFile);
$myFile=fopen("USERS/".$Username."/DOC1/URL.txt","w") or exit("Can’t open file!");
fwrite($myFile, 'RiskAssessment.php');
fclose($myFile);
$myFile=fopen("USERS/".$Username."/RiskAssessment/Subscribed.txt","w") or exit("Can’t open file!");
fwrite($myFile, 'true');
fclose($myFile);
}
}
echo 'Logged in as = '.$Username.'<br>';
echo 'Document Subscribed = '.$Subscribed.'<br>';
echo 'Number of Documents Subscribed to = '.$NoOfDocs.'<br>';
echo 'This Document is Called = '.$DocName.'<br>';
echo 'This Document is Located at = '.$DocURL.'<br>';
?>
EDIT 1.0
はこれが要求されるように私のエコータグによって出力される情報である。
Logged in as = Matt
Document Subscribed = false
Number of Documents Subscribed to = 0
This Document is Called = DOC1-NAME
This Document is Located at = DOC1-URL
EDIT Barmarメソッドを使用して1.1
、まだ取得します同じ結果:
<?php
ob_clean();session_start();
if (!isset($_SESSION['loggedin']) || $_SESSION['loggedin'] == false) {
header("Location: index.php");
}
if (isset($_GET['Username'])){
$Username = $_GET['Username'];
}
$NoOfDocs = file_get_contents("USERS/".$Username."/NoOfDocuments.txt") or exit("Can't read file!");
$Subscribed = file_get_contents("USERS/".$Username."/RiskAssessment/Subscribed.txt") or exit("Can't read file!");
if ($Subscribed == 'false'){
if ($NoOfDocs == 0){
file_put_contents("USERS/".$Username."/NoOfDocuments.txt", ($NoOfDocs +1)) or exit("Can't write file!");
file_put_contents("USERS/".$Username."/DOC1/Name.txt", "Risk Assessment") or exit("Can't write file!");
file_put_contents("USERS/".$Username."/DOC1/URL.txt", "RiskAssessment.php") or exit("Can't write file!");
file_put_contents("USERS/".$Username."/RiskAssessment/Subscribed.txt", "true") or exit("Can't write file!");
}
}
?>
FYIでは、関数 'file_get_contents'と' file_put_contents'を参照してください。あなたの 'fopen'、' fgets/fwrite'、 'fclose'が1回の呼び出しで何をしますか? – Barmar
'echo'文の出力を質問に追加してください。 – Barmar
@Barmarここを手伝ってくれてありがとう、エコーが出力する情報を投稿に編集しました。 –