質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

550閲覧

PHP fwrite 書き込めない

nanasinogonntya

総合スコア18

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

2クリップ

投稿2022/06/05 09:35

編集2022/06/28 20:51

PHPで簡単なログインページを作っています。
つまずいているのは、アカウント登録ページです。
メールアドレス、アカウント名、表示名、パスワード それぞれほかのファイルに保存するようにしているんですが、
メールアドレスだけ書き込めません。
他のページでセッションに保存もしていましたが駄目でした。
「メールアドレスの再確認」という<input>を作ってそこからメールアドレスを入手しようとしましたが駄目でした。

error

1Warning: touch(): Unable to create file ../user/dataaiueoandlc.xl./username.txt because No such file or directory in *******/new_account.php on line 82 2 3Warning: fopen(../user/dataaiueoandlc.xl./mail.txt): failed to open stream: No such file or directory in ******/new_account.php on line 98 4 5Warning: fwrite() expects parameter 1 to be resource, bool given in ******/new_account.php on line 101 6 7Warning: fclose() expects parameter 1 to be resource, bool given in ********/new_account.php on line 102 8 9Warning: Cannot modify header information - headers already sent by (output started at /home/users/2/pinoko.jp-blue-usuki-8825/web/test/File/login/new_account.php:12) in *********/new_account.php on line 115

PHP

1<?php 2session_start(); 3ini_set("error_reporting", 0); 4 5if (empty($_SESSION['username'])) { 6 $user_login_pas = "../user/guest/icon/icon.gif"; 7} else { 8 $user_login_pas = "../user/data/".$_SESSION['username']."/icon/icon.gif"; 9 header("location:../../index.php"); 10} 11?> 12 13<!DOCTYPE html> 14<html> 15<head> 16 <meta charset="utf-8"> 17 <meta name="viewport" content="width=device-width, initial-scale=1"> 18 <title>アカウント作成</title> 19 <link rel="stylesheet" type="text/css" href="../css/manu.css"> 20 <link rel="icon" type="image/png" href="../img/icon/icon.png"> 21 <nav> 22 <a href="../../index.php"> 23 <img style="position: absolute; top: 0px;left: 0px;" src="../img/home.jpg" title="home" alt="ホーム"> 24 </a> 25 26 <ul> 27 <li><a href="../site/news/news.php">ニュース</a></li> 28 <li><a href="../site/File_exchange/File_exchange.php">ファイル交換</a></li> 29 <li><a href="../site/Bulletin_board/Bulletin_board.php">掲示板</a></li> 30 <li><a href="../site/このサイトについて/site.php">このサイトについて</a></li> 31 <li><a href="./login_check.php">ログイン状況</a><li> 32 <li><a href=""><img style="width:25px;" src="<?php echo $user_login_pas; ?>"></a></li> 33 </ul> 34 </nav> 35 36 <h1>かさ上げ</h1> 37</head> 38 39<body> 40 <h2></h2> 41 <form enctype="" method="post"> 42 アカウントネーム<input type="text" name="accountname">(非公開) 43 <dir></dir> 44 メールアドレス:<?php echo $_SESSION['mail']; ?> 45 <dir></dir> 46 メールアドレスの再入力<input type="email" name="mail"> 47 <dir></dir> 48 ユーザーネーム<input type="text" name="username">(公開) 49 <dir></dir> 50 パスワード<input type="password" name="password"> 51 <dir></dir> 52 パスワード確認<input type="password" name="pas_check"> 53 <dir></dir> 54 確認コード:<?php echo $_SESSION['code']; ?> 55 <dir></dir> 56 <input type="submit" name="_submit" value="登録"> 57 <?php "<h3 style=color:red;>echo $msg</h3>" ?> 58 </form> 59</body> 60 61</html> 62 63<?php 64 65if (isset($_POST['_submit'])) { 66$name = $_POST['accountname']; 67$file = "../user/data/".$name; 68 69if (file_exists($file)) { 70 //存在した 71 $msg = "そのアカウントは使われています。"; 72 header("location:#error"); 73} else { 74 //存在しない 75 if ($_POST['password'] == $_POST['pas_check']) { 76 //pas 77 mkdir($file, 0777, true); 78 $data = $_POST['accountname']; 79 $file = fopen("../user/data/".$name."/username.txt", "w"); 80 81 touch("../user/data".$name."/username.txt"); 82 fwrite($file, $data); 83 fclose($file); 84 85//pas 86 87 $data = $_POST['password']; 88 $file = fopen("../user/data/".$name."/password.txt", "w"); 89 90 touch("../user/data/".$name."/password.txt"); 91 fwrite($file, $data); 92 fclose($file); 93 94//mail 95 96 $mail = $_POST['mail']; 97 $file = fopen("../user/data".$name."/mail.txt", "w"); 98 99 touch("../user/data/".$name."/mail.txt"); 100 fwrite($file, $mail); 101 fclose($file); 102 103//dhisp 104 105 $data = $_POST['username']; 106 $file = fopen("../user/data/".$name."/disp_name.txt", "w"); 107 108 touch("../user/data/".$name."/disp_name.txt"); 109 fwrite($file, $data); 110 fclose($file); 111 112// 113 114 header("Location:../../index.php"); 115 116 } else { 117 header("Location:./login.php"); 118 } 119 120} 121 122} 123?>

非効率ですが、いろいろ理由があって変数などは変更したくありません。
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2022/06/05 09:38

書き込めない、とはどうなるんでしょうか。 実際にどういう出力になるのか、どういう動作になるのか説明を質問文に追記しましょう
yambejp

2022/06/06 02:05

テキストでのユーザー管理には限界があります RDB導入は難しいのでしょうか?
AbeTakashi

2022/06/06 04:12 編集

まずはエラー情報を出すところからですね。javahackさんのリンクを参考にしてください。もしくはエラーログを参照してみてください。その情報をみても意味が分からなければ、その内容を質問文に追記してください。 残念ですが、このソースコードだけでは第三者には何が起きてるのか分からなくて回答のしようがない感じです。
lastlast

2022/06/15 11:42

テキストファイルでパスワードなどを管理するのであればセキュリティー的に気をつけなければなりませんね... あと、メールアドレス・パスワード等テキストファイルを分けて保存するのではなく、カンマ区切りなどにして一つのファイルで管理をした方が良いように思えます。
guest

回答1

0

自己解決

わーお
"/"が抜けてた!

pHp

1//mail 2 3 $mail = $_POST['mail']; 4 $file = fopen("../user/data/".$name."/mail.txt", "w"); 5 // ↑ 6 // "/"抜け 7 // 8 touch("../user/data/".$name."/mail.txt"); 9 fwrite($file, $mail); 10 fclose($file);

みんなも"/"や";"が抜けていないか確認しよう!

投稿2022/06/27 10:26

nanasinogonntya

総合スコア18

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

lastlast

2022/06/28 11:51

よくあるミスですね! 解決したようでよかったです
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問