スレッド表示 | フラット表示〕 全トピック 920 件中 499 番目 次≫ ≪前

行き詰っています

created: 2005-01-04 15:58 | modified: 2005-01-05 21:26 | reply: 4

[2024] 行き詰っています

user: オレンジ | created: 2005-01-04 15:58
はじめまして。php初心者です。
phpファイルを2つに分けて、
画像掲示板を作りたいのですが、
post先のphpファイルに送信して、
更新ボタンを押すと、
2重投稿になってしまいます。
これをなくす方法はあるでしょうか?
行き詰ってしまったのでお願いします。

それと画像ファイルを保存するには
どうしたらいいかわかりません。
txtファイルには保存できないんですよね?
こちらも詳しい方教えてください。

基礎的なことかも知れないので
恥ずかしいばかりです。
reply: 2025 2026 返信 編集 削除

[2025] 追加事項

user: オレンジ | created: 2005-01-04 17:14
以下がその記述です。

<center><IMG SRC="<?php print $_POST['userfile']; ?>" WIDTH="500" HEIGHT="500" ALIGN="BOTTOM" BORDER="0"><center>

<?php
$pname = $_POST["name"];
$price = $_POST["e-mail"];
$sname = $_POST["coment"];
$dt = date("y/m/d H:i:s");
$data = file("data.txt");
$fp = fopen('data.txt', "w");
fwrite($fp, "$name\t$e-mail\t$coment\t$dt\n");
foreach ($data as $value) {
fwrite($fp, "$value");
}
fclose($fp);
$data = file("data.txt");
foreach ($data as $value) {
$view = explode("\t", $value);
$name = $view[0];
$e-mail = $view[1];
$coment = $view[2];

print "<center><b>$view[0]</b></center>";
print "<center><b>$view[1]$view[2]</b></center>";
print "<center><b>$view[3]</b></center>";

}


?>

もう一つ、
画像や名前などを横に配列させたいときは
どうすればいいのでしょうか?
3つぐらいで折り返して、
次の行にいきたいのですが。
Parent: 2024  reply: 2027 返信 編集 削除

[2027] Re.追加事項

user: hamaji | created: 2005-01-05 00:52
こんばんは。

> もう一つ、
> 画像や名前などを横に配列させたいときは
> どうすればいいのでしょうか?
> 3つぐらいで折り返して、
> 次の行にいきたいのですが。
『画像や名前などを横に配列させたい』とはどういう意味でしょうか?よくわかりません。
テーブルの1行に、画像や名前を表示するセルを表示させ、セルが3つになったら改行する。というようなイメージでしょうか?

そうであれば、データ配列(ファイルの内容)と、それを数える変数を使えば実現できますね。

例)
<?php

$data = array("あ", "い", "う", "え", "お", "か", "き", "く", "け", "こ");

for ($i = 0; $i < count($data); $i++) {
$count = $i + 1;
echo $data[$i] . "&nbsp;";

// 3つになったら改行
if ($count % 3 == 0) {
echo "<br>\n";
}

}
?>
これをHTMLのテーブルを書くように工夫すればよいです。
Parent: 2025  返信 編集 削除

[2026] Re.行き詰っています

user: hamaji | created: 2005-01-05 00:39
こんばんは。
なんだか、一度にいろいろやろうとして、混乱しているように思うので、
なれないうちは一つ一つの機能に絞って、サンプルをつくり、
それが出来上がってから統合するという方法をとられてはどうでしょうか?

> post先のphpファイルに送信して、
> 更新ボタンを押すと、
> 2重投稿になってしまいます。
> これをなくす方法はあるでしょうか?
> 行き詰ってしまったのでお願いします。
2重送信対策はいろいろやり方があります。
この辺が参考になります。
http://ns1.php.gr.jp/pipermail/php-users/2003-December/019965.html
http://www.stackasterisk.jp/tech/php/php03_01.jsp
これは、セッションやフォームのhiddenの値を駆使する等の方法です。

自分がよく使う手っ取り早い方法は登録後、リダイレクトする方法です。

例:hyouji.phpで、データ表示・登録フォーム表示→toroku.phpで登録
hyouji.php
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
</head>
<body>
<?php
if ($fp = fopen("test.txt", "r")) {

while (!feof($fp)) {
$data = fgets($fp);
echo $data . "<br>\n";
}
fclose($fp);
}

?>
<form method="POST" action="toroku.php">
<div>名前:<input type="text" name="username"></div>
<input type="submit" name="submit" value="送信">
</form>
</body>
</html>
toroku.php
<?php
if ($_SERVER['REQUEST_METHOD'] == "POST") {
$name = $_POST['username'];

$fp = fopen("test.txt", "a");
fwrite($fp, $name . "\n");
fclose($fp);
header("Location: hyouji.php");
}
?>

これで、ブラウザの更新をしても、hyouji.phpを再表示するだけなので、2重書き込みはされません。

> それと画像ファイルを保存するには
> どうしたらいいかわかりません。
> txtファイルには保存できないんですよね?
> こちらも詳しい方教えてください。
画像アップロードはネット上にたくさんサンプルがあるので、それを参考にしてください。
でも、まずはPHPのマニュアルを熟読されることをお勧めします。
php.netのマニュアルはサンプルの宝庫です。
http://www.php.net/manual/ja/features.file-upload.php

google検索
http://www.google.co.jp/search?q=php+%E7%94%BB%E5%83%8F+%E3%82%A2%E3%83%83%E3%83%97%E3%83%AD%E3%83%BC%E3%83%89&hl=ja&lr=lang_ja&client=firefox-a&rls=org.mozilla:ja-JP:official&start=0&sa=N

大変かもしれませんが、がんばってください。
Parent: 2024  reply: 2028 返信 編集 削除

[2028] お返事ありがとうございました

user: オレンジ | created: 2005-01-05 21:26
hamajiさん
丁寧に解説してくださり、大変嬉しいです。
hamajiさんのおっしゃるとおり、
早くプログラムを作ろうと、
基本を抑えずに焦っていました。

今後は簡単なプログラムを初めに作り、
一つ一つのコードを理解しながら、
目標のプログラムを作っていきたいと
考えています。
もちろん、hamajiさんから頂いた、
貴重なアドバイスも参考にさせて頂きます。

でも、PHPに慣れている方は
何でも知っているんですね。
私はいつか困っている初心者を見つけたら、
サポートしてあげられるようになりたいです。

hamajiさん、
是非これからも親切なサポートを
続けてください。
ありがとうございました。
Parent: 2026  返信 編集 削除
スレッド表示 | フラット表示〕 全トピック 920 件中 499 番目 次≫ ≪前
ページの一番上へ
Googleグックマークに登録 Yahooグックマークに登録 livedoorクリップに登録 @niftyクリップに登録 はてなブックマークに登録 deliciousに登録 Buzzurlに登録 FC2ブックマークに登録
最近更新された掲示板トピックス
管理人Blog
Yahoo Search

最近更新したNote
PHPマニュアル
今日のブックマーク
PHPマニュアル関数検索
関数名を入力し検索ボタンをクリック↑