xampp 言うのはlocalhost(サーバーserverではない。外部に送らない。)に組み込まれている、phpの今2023/12の新しい部類のphpです。
phpが何かは説明しなくていいと思うが、一応、言うと、html内に、プログラムを記述して臨機応変に文を変えて、ユーザーの要望に沿う形で出力してあげて、分かりやすいページ構成にしてやる。のだから、余り、複雑な質問を出さない様に組む事を心がけましょう。なんかずれたな。
という事で、あるのだから、使える様にだけはしておこう。
何もしなくて動いているが、世界一般に通じる程度の「設定」になってるだけで、日本仕様には、なっていないって話。
そこで、おらは、日本サービス員だってさせたい人は「設定」をしなければならない。
難しい話の前に「どの様な仕様で」を出してみよう。
ちょっと古いが古phpもひょうじできるやろって。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
<title></title>
</head>
<BODY BGCOLOR="#ffffff">
test
<p><?php print("Hello World!") ?></p>
<?php
phpinfo();
?>
</body>
</html>
国際標準で表示しなさいって書いてあるだけ。
これを、localな仕様にするには、
c:\xamp\php\php.ini テキスト形式だからアイコンにとらわれずnoteを見られて、文字検索が出来ればok。
変更箇所は
日本である。
5点の設定「;」を抜くだけとか、確認とか、ウザい言うな。
やりたい人は英文読めば書いてあるはずや。
そこで、確認。簡単や。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>テスト書き出し</title>
</head>
<BODY BGCOLOR="#ffffff">
試験
<p><?php print("おおっ、世の中よ!") ?></p>
<?php
phpinfo();
?>
</body>
</html>
うまく行けば成功しているのやろ。最後に入れた警報が出ん言うのや。
若かりし頃の俺の組んだやつpasswordとかやると、ダメなやつ、Reminderごまかそうと、思い出さんように頑張ったやつや。
Shift-jisからutf-8にして、一応試した。warning出るやつリロードだったかで、見なくさせようとしたんや、無かったかな。値を使っていたら他から見られとるやったかな?忘れたわ。
では、参考に。ファイルを一個作るから消す時消しといて。
<?php
$kanrinin = 'たっちゃん3';
$kanrips = '';
$hyouki = 0; # 削除を残しておく。 = 1;
// ヘッダー
print <<<OUTHTML
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
OUTHTML;
/*
#
require 'DB.php';
if(class_exists('DB')){
print 'ok';
}else{
print 'bado';
}
*/
// デコード
$myvalue = "";
if(isset($_POST['user'])){
$myvalue = $_POST['user'];
$myvalue = preg_replace("/</","<",$myvalue);
$myvalue = preg_replace("/>/",">",$myvalue);
$myvalue = preg_replace("/\"/",""",$myvalue);
$myvalue = preg_replace("/\r\n/","",$myvalue);
}
$aivalue = "";
#if(isset($_POST['aikotoba'])){
# $aivalue = $_POST['aikotoba'];
# $aivalue = preg_replace("/</","<",$aivalue);
# $aivalue = preg_replace("/>/",">",$aivalue);
# $aivalue = preg_replace("/\"/",""",$aivalue);
# $aivalue = preg_replace("/\r\n/","",$aivalue);
#}
$delno = 0;
if(isset($_POST['dele'])){
$delno = $_POST['dele'];
$delno = preg_replace("/[^0-9]/","",$delno);
if($delno == ""){$delno = 0;}
}
$comvalue = "";
if(isset($_POST['coment'])){
$comvalue = $_POST['coment'];
if(strlen($comvalue) > 50){
$comvalue = substr($comvalue,0,50).'(文字オーバー)';
}
$comvalue = preg_replace("/</","<",$comvalue);
$comvalue = preg_replace("/>/",">",$comvalue);
$comvalue = preg_replace("/\"/",""",$comvalue);
$comvalue = preg_replace("/\r\n/","",$comvalue);
}
// クッキー たくさん覚えさす時は、書出し、参照
$e_mail = 'e@mail'; ## 今は使わない。
$myvalues = "";
if(isset($_COOKIE['mycookie'])){
$myvalues = $_COOKIE['mycookie'];
$myvalue = strtok($myvalues,"<>");
$aivalue = strtok("<>");
$e_mail = strtok("<>");
}
if(isset($_POST['cocl'])){
$ep_time = time()-1;
$myvalue = "";
$aivalue = "";
$e_mail = "";
setcookie('mycookie',"",$ep_time);
}else{
$ep_time = time() + 10*60; #テストのため10分に設定した。
}
if($myvalue != "" or $aivalue !=""){
$myvalues = "$myvalue<>$aivalue<>$e_mail"; # <>$e_mail
setcookie('mycookie',$myvalues,$ep_time);
setcookie('mycookie1',$aivalue,$ep_time);
}
// 管理人判別
$inform = '';
# $Master = 0;
if($kanrinin == $myvalue && $kanrips == $aivalue){
$inform = "あなたは管理人です。<br>\r\n";
$inform .= "削除:<input type=\"text\" name=\"dele\">";
# $Master = 1;
}elseif($kanrinin == $myvalue){
print <<<OUTHTML
<h2>管理人以外その名前は使えません。</h2>
</body>
</html>
OUTHTML;
exit;
}
// ファイルの存在
$faile1 = "./file1.txt";
clearstatcache();
if(file_exists($faile1) === FALSE){
touch($faile1);
}
// 新規書き込み
$rlain = array();
$no = 1;
$moji0 = 0;
$fh = fopen($faile1,'r');
flock($fh,LOCK_SH);
$lainin_0 = fgets($fh);
fclose($fh);
if($lainin_0 != ""){
$moji0 = strtok($lainin_0,"<>");
$hikaku = strtok("<>");
$hikaku0 = strtok("");
# print "$hikaku0";
$no = $moji0 + 1;
}
$kakikomi = 1;
$lainin0 = "";
$lainin = array();
$ii = 0;
if($myvalue != "" && $comvalue != ""){
$ima = date('Y/m/d H:i:s'); # 時間
$lainin0 = "$no<>$ima<>$myvalue<>$comvalue<>\r\n"; # 書込みフォーマット
$hikaku1 = ">$myvalue<>$comvalue<>\r\n";
if($hikaku0 == $hikaku1){ # 二度書き禁止
$kakikomi = 1;
}else{
$kakikomi = 0;
$rlain[$ii] = $lainin0;
$ii++;
}
}
// 読み出し
$fh = fopen($faile1,'r');
flock($fh,LOCK_SH);
for($i=0; $i<= 8 + $kakikomi; $i++){
$lainin[$i] = fgets($fh);
if($lainin[$i] == ''){
break;
}
$rlain[$ii] = $lainin[$i];
$ii++;
}
fclose($fh);
// 書出し
$lain = array();
$i = 0;
$dn = 0;
$ittiari = 0;
foreach($rlain as $rrlain){
$moji0 = strtok($rrlain,"<>");
if($delno == $moji0 && $delno != 0){
$dn = $i;
$ittiari = 1;
if($i == 0 || $hyouki == 1){
echo "$delno 削除 削除 削除<br>\r\n";
# echo "$moji0 削除 削除<br>\r\n";
}
}else{
$moji1 = strtok("<>");
$moji2 = strtok("<>");
$moji3 = strtok("<>");
# $nichi = strtok($moji1," ");
if($moji1 != ""){
echo "$moji0 $moji1 $moji2 $moji3<br>\r\n";
}
}
$i++;
}
//
for($ii = 0;$ii+$i <= 9;$ii++){
print "<br>\r\n";
}
// 削除
if($delno > 0 && $ittiari == 1){
if($dn == 0){
$rlain[$dn] = "$delno<>削除<>削除<>削除<>\r\n";
}else{
$rlain[$dn] = "";
}
$kakikomi = 0;
}
// 書き込み
if ($kakikomi == 0){
$lines=join("",$rlain);
$fh=fopen($faile1,'w');
flock($fh,LOCK_EX);
fwrite($fh,$lines);
fclose($fh);
}
// フォーム書出し
print <<<OUTHTML
<hr>
<form method="post" action="$_SERVER[PHP_SELF]">
name:<input type="text" name="user" value="$myvalue" maxlength="25"><br>
<!-- ps:<input type="password" name="aikotoba" value="$aivalue" maxlength="25"><br>-->
CookieClear:<input type="checkbox" name="cocl" value="coo"> $inform<br>
coment:<textarea name="coment"></textarea><br>
<input type="submit" value="ok">$e_mail
</form>
<div align="center">トップへ戻る<br>
<b>共用内容</b><br>
<!-- <iframe src="./indexin.php" name="jouhou" width="750" height="260">phpin</iframe>-->
</div>
</body>
</html>
OUTHTML;
?>
次は、入っていないpytonですね。