ホームページ php教程 php手册 PHP XML を使用して簡単なゲストブックを作成するためのグラフィカルなチュートリアル

PHP XML を使用して簡単なゲストブックを作成するためのグラフィカルなチュートリアル

Jun 13, 2016 pm 12:20 PM
アップロード 作る リリース 戻る グラフィックとテキスト 写真 パスワード チュートリアル 見せる メッセージ ログイン 単純 入力 ページ

1. 留言显示页面

2. 发布留言,并允许上传图片

3. 输入密码登录后可以删除留言。

1. 文件目录

 

upfile是保存上传图片的目录。

2. 主要界面

(1)首页,显示留言页面

 

 

 

(2)发表留言页面

 

3. XML文档格式,名称为data.xml

 

各字段的含义不多说,各元素的值看起来有点怪,是因为我使用了base64_encode对字符串进行了编码。

 

4 主要页面代码

(1)add.php

此页只是纯粹的HTML代码

action="saveadd.php" enctype="multipart/form-data" method="post" name="myform" onsubmit="return go(this)">

 
  
  
 
 
  
  
 
 
  
  
 
 
  
  
 
 
  
  
 
 
  
 
作者
标题
表情
   
   
  
内容
截图

(2)savadd.php

用于保存留言信息

if(!$_POST["author"] || !$_POST["content"])
{
echo "\n";
 echo "你没有填写留言姓名或内容,2秒钟返回首页";
 exit();
}else{
 $imgflag=0;   //用于判断是否需要上传图片
 function random($length)   //此函数用于生成一个随机的图片文件名(不含扩展名),以防止与现有图片重复
 {
  $hash = 'IMG-';
  $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz';
  $max = strlen($chars) - 1; 
  for($i = 0; $i < $length; $i++) //从上面的字符串中随机找length长度个字符
{
$hash .= $chars[mt_rand(0, $max)];
}
return $hash;
}

function fileext($filename) //此函数用于获取上传文件的扩展名
{
return substr(strrchr($filename, '.'), 1);
}

if($_FILES["upfile"]["name"]!=""){
$uploaddir="upfile/"; //图片保存路径
$type=array("jpg","gif","bmp","jpeg","png"); //允许上传的文件类型

if(!in_array(strtolower(fileext($_FILES['upfile']['name'])),$type)) //如果上传的文件的扩展名不符合要求
{
echo "\n";
   $text=implode(",",$type);
   echo "您只能上传以下类型文件: ",$text,"
";
   exit();
  }
  else
  {
   $filename=explode(".",$_FILES['upfile']['name']);
   do
   {
    $filename[0]=random(10);
    $randname=implode(".",$filename);     //得到的最终随机生成的文件名(连同扩展名)
    $uploadfile=$uploaddir.$randname;
   } while(file_exists($uploadfile));

   if (move_uploaded_file($_FILES['upfile']['tmp_name'],$uploadfile)){   //保存上传的图片到upfile文件夹
    echo "上传图片成功";
    $imgflag=1;
   }
   else{
    echo "上传图片失败!";
    $imgflag=0;
   }

  }
 }

//获取其他表单域

 $author=base64_encode($_POST["author"]);  
 $content=base64_encode(ereg_replace("\r\n","
",$_POST["content"]));
 $smiles=base64_encode($_POST["smiles"]);
 if($_POST["title"]){
  $title=base64_encode($_POST["title"]);
 }else{
  $title=base64_encode("无标题");
 }
 $addtime=date("Y-m-d");
 if($imgflag==1){  //如果有上传图片
  $photo=base64_encode($randname);
 }else{  //否则将photo元素的值设置为NONE
  $photo="NONE";
 }

 $dom=new DOMDocument('1.0','gb2312');   //指定XML的格式
 $dom->load("data.xml");     //加载
 $root=$dom->getElementsByTagName("messages");   //获取根节点
 $root=$root->item(0);       
 $last_id=$root->lastChild->firstChild->nodeValue;  //获取最后一个message的第一个子节点(即id节点)的值
 $id=$last_id+1;  //新增消息的id
 settype($id,"string");  //将其转换为字符型


 $message=$root->appendChild(new DOMElement('message'));  //添加message节点
 $el_id=$message->appendChild(new DOMElement('id'));  //添加message节点的各个子节点
 $el_id->appendChild($dom->createTextNode($id));

 $el_author=$message->appendChild(new DOMElement('author'));
 $el_author->appendChild($dom->createTextNode($author));

 $el_title=$message->appendChild(new DOMElement('title'));
 $el_title->appendChild($dom->createTextNode($title));

 $el_smiles=$message->appendChild(new DOMElement('smiles'));
 $el_smiles->appendChild($dom->createTextNode($smiles));

 $el_content=$message->appendChild(new DOMElement('content'));
 $el_content->appendChild($dom->createTextNode($content));

 $el_addtime=$message->appendChild(new DOMElement('addtime'));
 $el_addtime->appendChild($dom->createTextNode($addtime));

 $el_photo=$message->appendChild(new DOMElement('photo'));
 $el_photo->appendChild($dom->createTextNode($photo));

 $dom->save("data.xml");  //保存XML


 echo "\n";
 echo "谢谢您的留言,2秒钟返回首页";

}
?>

(3)index.php

本页面用于显示留言信息

添加留言

$dom=new DOMDocument('1.0','gb2312');
$dom->load("data.xml");       //加载
$root=$dom->getElementsByTagName("messages"); 
$root=$root->item(0);      
$message=$root->getElementsByTagName("message");   //获取所有message节点

$message_count=$message->length;   //计算有多少条留言
echo "当前共有".$message_count."条留言";

if($message_count==0){
 echo "暂时没有留言\n";
}else{
?>


for($i=$message_count-1;$i>=0;$i--)    //我们需要对留言按倒序排列
 {
  $msg=$message->item($i);

  foreach($msg->childNodes as $child)   //message节点的各个子节点
  {
   if($child->nodeName=="id")
   {
    $id=$child->nodeValue;
   }
   if($child->nodeName=="author")
   {
    $author=$child->nodeValue;
   }
   if($child->nodeName=="title")
   {
    $title=$child->nodeValue;
   }
   if($child->nodeName=="smiles")
   {
    $smiles=$child->nodeValue;
   }
   if($child->nodeName=="content")
   {
    $content=$child->nodeValue;
   }
   if($child->nodeName=="photo")
   {
    $photo=$child->nodeValue;
   }
   if($child->nodeName=="addtime")
   {
    $addtime=$child->nodeValue;
   }

  }
  echo "";
  echo "";
  echo "";
  if($photo!="NONE")
  {
   echo "";
  }
 }
?>
}
?>
";
  echo $id.".".base64_decode($title)." - ".base64_decode($author)." [".$addtime."] ";  
  if(isset($_SESSION["password"]) && $_SESSION["password"]!="")  //如果输入了密码显示删除链接
  {
   echo "[删除]";
  }
  echo "
".base64_decode($content)."

if(isset($_SESSION["password"]) && $_SESSION["password"]!=""){
?>

退出管理

 
}else{
?>

登陆管理

 
}
?>

 

(4) 删除留言

if(isset($_SESSION["password"]) && $_SESSION["password"]!="")
{

$dom=new DOMDocument;
$dom->load("data.xml");
$root=$dom->getElementsByTagName("messages"); $root->item(0);
foreach($root->childNodes as $msg)
{
if($msg->firstChild->nodeValue==$_GET[" id"]) //メッセージノードの子ノードのidの値が削除するidと等しい場合
{
$photo=$msg->lastChild->nodeValue;
if($photo! ="NONE"){ //メッセージに写真が含まれている場合は、写真も削除する必要があります
$photo_path="upfile/".base64_decode($photo);
$flag=unlink( $photo_path);
if($flag){
echo "写真は正常に削除されました
";
}
}

$root->removeChild($msg);

Break;
}
}
$dom->save("data.xml");

?>

メッセージが正常に削除されました。2 秒後にホームページに戻ります


} else {
?>
まだログインしていません。2 秒以内にログイン ページに戻ってください

}
?>

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Windows 11 で続行するために管理者のユーザー名とパスワードの入力を求められる問題を解決するにはどうすればよいですか? Windows 11 で続行するために管理者のユーザー名とパスワードの入力を求められる問題を解決するにはどうすればよいですか? Apr 11, 2024 am 09:10 AM

Win11 を使用している場合、管理者のユーザー名とパスワードの入力を要求される場合があるため、この記事ではその対処方法について説明します。方法 1: 1. [Windows ロゴ] をクリックし、[Shift+Restart] を押してセーフ モードに入るか、[スタート] メニューをクリックして [設定] を選択するという方法でセーフ モードに入ります。 「更新とセキュリティ」を選択し、「回復」で「今すぐ再起動する」を選択し、再起動してオプションを入力した後、 - トラブルシューティング - 詳細オプション - 起動設定 -&mdash を選択します。

携帯電話を使用してルーターのWiFiパスワードを設定する方法(携帯電話をツールとして使用) 携帯電話を使用してルーターのWiFiパスワードを設定する方法(携帯電話をツールとして使用) Apr 24, 2024 pm 06:04 PM

ワイヤレス ネットワークは、今日のデジタル世界で人々の生活に不可欠な部分となっています。ただし、個人のワイヤレス ネットワークのセキュリティを保護することが特に重要です。強力なパスワードを設定することは、WiFi ネットワークが他人にハッキングされないようにするための鍵となります。ネットワークのセキュリティを確保するために、この記事では、携帯電話を使用してルーターの WiFi パスワードを変更する方法を詳しく紹介します。 1. ルーター管理ページを開く - モバイルブラウザでルーター管理ページを開き、ルーターのデフォルトの IP アドレスを入力します。 2. 管理者のユーザー名とパスワードを入力します - アクセスするには、ログイン ページに正しい管理者のユーザー名とパスワードを入力します。 3. ワイヤレス設定ページに移動します。ルーター管理ページでワイヤレス設定ページを見つけてクリックし、そのページに入ります。 4.現在のWiを見つける

携帯電話のWi-Fiパスワード変更チュートリアル(簡単操作) 携帯電話のWi-Fiパスワード変更チュートリアル(簡単操作) Apr 26, 2024 pm 06:25 PM

インターネットの急速な発展に伴い、ワイヤレス ネットワークは私たちの生活に欠かせないものになりました。ただし、個人情報とネットワークのセキュリティを保護するために、Wi-Fi パスワードを定期的に変更することが非常に重要です。ホーム ネットワークのセキュリティをより適切に保護するために、この記事では、携帯電話を使用して WiFi パスワードを変更する方法に関する詳細なチュートリアルを紹介します。 1. WiFi パスワードの重要性を理解する WiFi パスワードは、インターネット時代において、個人情報とネットワーク セキュリティを保護するための第一の防御線です。その重要性を理解することで、パスワードを定期的に変更する必要がある理由をよりよく理解できます。 2. 電話機が Wi-Fi に接続されていることを確認します。まず、Wi-Fi パスワードを変更する前に、パスワードを変更する Wi-Fi ネットワークに電話機が接続されていることを確認します。 3. 電話機の設定メニューを開き、電話機の設定メニューに入ります。

Win10 のパスワードがパスワード ポリシーの要件を満たしていない場合はどうすればよいですか? コンピューターのパスワードがポリシーの要件を満たしていない場合はどうすればよいですか? Win10 のパスワードがパスワード ポリシーの要件を満たしていない場合はどうすればよいですか? コンピューターのパスワードがポリシーの要件を満たしていない場合はどうすればよいですか? Jun 25, 2024 pm 04:59 PM

Windows 10 システムでは、パスワード ポリシーは、ユーザーが設定したパスワードが特定の強度と複雑さの要件を満たしていることを確認するための一連のセキュリティ ルールです。システムがパスワードがパスワード ポリシーの要件を満たしていないことを示すメッセージを表示する場合、それは通常、パスワードがパスワード ポリシーの要件を満たしていないことを意味します。パスワードは、複雑さ、長さ、または文字の種類に関して Microsoft が設定した要件を満たしていません。どうすればこれを回避できますか?ユーザーはローカル コンピュータ ポリシーでパスワード ポリシーを直接見つけて操作を実行できます。以下を見てみましょう。パスワード ポリシーの仕様に準拠していない解決策: パスワードの長さを変更する: パスワード ポリシーの要件に従って、元の 6 桁のパスワードを 8 桁以上に変更するなど、パスワードの長さを増やすことができます。特殊文字の追加: パスワード ポリシーでは、@、#、$ などの特殊文字を含める必要があることがよくあります。私

夏はぜひ虹を撮ってみてください 夏はぜひ虹を撮ってみてください Jul 21, 2024 pm 05:16 PM

夏の雨の後には、美しく魔法のような特別な天気の風景、虹がよく見られます。これも写真撮影ではなかなか出会えない光景で、とてもフォトジェニックです。虹が現れるにはいくつかの条件があります。まず、空気中に十分な水滴があること、そして、低い角度から太陽が当たることです。そのため、雨が上がった午後が最も虹が見えやすいのです。ただし、虹の発生は天候や光などの条件に大きく左右されるため、一般に虹の持続時間は短く、見頃や撮影に最適な時間はさらに短くなります。では、虹に遭遇したとき、どうすれば虹を適切に記録し、高品質の写真を撮ることができるでしょうか? 1. 虹を探す 上記の条件に加えて、虹は通常、太陽光の方向に現れます。つまり、太陽が西から東に輝いている場合、虹は東に現れやすくなります。

win10 コンピューターの電源投入時パスワードを忘れた場合にシステムに入る方法_win10 コンピューターの電源投入時パスワードを忘れた場合の対処方法 win10 コンピューターの電源投入時パスワードを忘れた場合にシステムに入る方法_win10 コンピューターの電源投入時パスワードを忘れた場合の対処方法 Mar 28, 2024 pm 02:35 PM

1. Xiaobai のワンクリック システム再インストール ツールを別のコンピュータにダウンロードしてインストールし、空の USB ディスクを挿入して USB ブート ディスクを作成します。具体的なチュートリアルについては、次を参照してください: 2. 変更する必要があるコンピュータに USB ブート ディスクを挿入します。再起動するパスワードを入力して、開始ホットキーを押します。通常、起動ホットキーは F12、F8、F9、F10、および ESC のいずれかです。次に、起動インターフェイスが表示され、USB ディスクのオプションを選択し、Enter キーを押してに入ります。 3. [1] を選択して win10x64PE を起動し、Enter キーを押して確認します。 4. デスクトップ上のパスワード変更ツールを選択し、ダブルクリックして開きます。 5. アカウント名のリストが表示されるので、パスワードを変更する必要があるアカウントを選択して開きます。 6. 以下の [パスワードの変更] コマンドをクリックし、新しいパスワードを 2 回入力し、[OK] をクリックして変更を保存します。 7. 最後に、USB フラッシュ ドライブを取り外し、コンピュータを再起動すると、正常に動作します。

すべての Wi-Fi パスワードのロックを解除できるソフトウェアの名前は何ですか(ワンクリックで接続された Wi-Fi パスワードを取得できる推奨モバイル ソフトウェア) すべての Wi-Fi パスワードのロックを解除できるソフトウェアの名前は何ですか(ワンクリックで接続された Wi-Fi パスワードを取得できる推奨モバイル ソフトウェア) Apr 02, 2024 pm 06:46 PM

ワイヤレス ネットワークは現代社会の人々の生活に不可欠な部分になっています。または、WiFi リストに保存されたパスワードを表示する必要がありますが、WiFi パスワードを忘れることもあります。この問題を解決するためにモバイル ソフトウェアが登場しました。この魔法のツールを簡単にマスターできるように、この記事ではすべての WiFi パスワードのロックをすばやく解除するのに役立つソフトウェアを紹介します。 1. 強力な WiFi パスワード ロック解除ツール - WiFi パスワード ロック解除の素晴らしい世界を探索します。 2. シンプルで使いやすいインターフェイス設計 - 便利で迅速な操作方法 3. 複数のデバイスをサポート - さまざまなデバイスのニーズを満たします 4. 自動的に更新します -常に最新の WiFi パスワードを維持します。 5. 高速 WiFi 接続 - 複数のデバイスの同時接続ニーズに簡単に対応します。

接続されている携帯電話の WiFi パスワードを簡単に取得する方法 (携帯電話に保存されている WiFi パスワードをすぐに見つける) 接続されている携帯電話の WiFi パスワードを簡単に取得する方法 (携帯電話に保存されている WiFi パスワードをすぐに見つける) May 08, 2024 pm 01:10 PM

携帯電話は現代社会において私たちの生活に欠かせないものとなっています。ワイヤレス ネットワーク接続も、私たちの日常生活に欠かせないツールになっています。しかし、他のデバイスに接続したいのに接続できない、WiFi に接続したがパスワードを忘れたなどの状況に直面することがあります。接続されている携帯電話の WiFi パスワードを簡単に取得するにはどうすればよいですか?電話機に保存されている WiFi パスワードを見つける 1. 設定で「WiFi」オプションを見つけてクリックし、電話機の設定インターフェイス「WiFi」に入り、WiFi 設定ページのオプションに入ります。 2. 接続されている WiFi ネットワークの詳細を開き、接続されている WiFi ネットワークの名前を見つけ、クリックして WiFi 設定ページのネットワークの詳細情報ページに入ります。 3.

See all articles