前提・実現したいこと
8桁の数字を入力して、それが他のファイル(list.txt)に羅列してある8桁の数字のどれかに該当したら「成功」という文字を送り、ファイルのその数字部分を消去する。
発生している問題
数字が合っているのに条件分岐が成功せず、「失敗」という文字が文字化けして送られてきます。
該当のソースコード
php
1<?php 2 3$pass = $_GET["pass"]; 4 5//ファイルの名前 6$file = "list.txt"; 7$num = "0"; 8$full = count( file( $file ) ); 9$result = "失敗"; 10 11a: 12 13//一行ずつ読み取り 14$hoge = file($file); 15$data = $hoge[$num]; 16 17//行数読み取りが末尾まで言ったら終了 18if ($num == $full) { 19 goto end; 20} 21 22//パスワード判定 23if ($data === $pass) { 24//パスワード一致、該当行削除 25 unset($file[$num]); 26 $result = "成功!"; 27 goto end; 28} else { 29//一致しない 30 $data = NULL; 31 $num++; 32 goto a; 33} 34 35 36end: 37echo $result; 38 39?>
試したこと
1.入力した数字が正しく送られていることを確認。
2.比較する数字(ファイルの数字)が正しく読み取られており、入力した数字と等しいことを確認。
試しに、入力数字=99999999、比較数字=99999999
と入力して絶対に「成功」が送られてくると思ってやってみたのですが、「失敗」という文字が送られてきました。
###追記
phpのバージョンは、PHP7.0.x。
参考にしたサイトはこちらです↓
http://php.net/manual/ja/control-structures.goto.php
問題とかではないです笑
用途を説明しますと、趣味のゲーム制作で、サーバーを介した遊びができるようになりたくて練習しています。
なので、$_GETで送信しているコード…なのかはわかりませんが、ゲーム側で「URL?pass=変数」のような感じで送信できています。ちなみに、制作使用ツールは「WOLF RPG エディター」です。
回答2件
あなたの回答
tips
プレビュー