Потому что публика запросила его! Это мой комментарий, расширенный, чтобы быть полным ответом:
Вы используете как $_GET
, так и $_POST
, это не является общим, вы это делаете специально? Мое предположение: нет.
Если вы видите в HTML у вас есть:
<form name="recAdd" method="GET" action="add.php">
Это означает, что запрос от браузера будет GET
. Вы можете либо изменить его POST:
<form name="recAdd" method="POST" action="add.php">
PHP (add.php):
switch($_POST['rec']){
case '1':
$rec1 = "rec1.txt";
$fh = fopen($rec1, 'a') or die("can't open file");
$romString = $_POST['name']; //<---
fwrite($fh, $romString);
fclose($fh);
print 'something'; //<<--- fixed syntax, btw: I would use echo
break;
case '2':
// do Something
break;
case '3':
// do Something
break;
default:
print("Not working ;(");
}
Примечание: Я проверил с этим изменением, и она работает.
Или изменить все это GET (я рекомендую остаться с POST)
switch($_GET['rec']){ //<-----
case '1':
$rec1 = "rec1.txt";
$fh = fopen($rec1, 'a') or die("can't open file");
$romString = $_GET['name'];
fwrite($fh, $romString);
fclose($fh);
print 'something'; //<<--- fixed syntax, btw: I would use echo
break;
case '2':
// do Something
break;
case '3':
// do Something
break;
default:
print("Not working ;(");
}
Убедитесь, что веб-сервер (то есть Apache), имеет право на запись в папке назначения. Это может помешать успешной операции.
Вы также можете включить сообщения об ошибках с PHP, которые могут дать представление о том, что происходит. Вы можете сделать это для текущего PHP скрипт с этим:
error_reporting(E_ALL | E_STRICT);
Примечание: error_reporting at php.net
Если вы не уверены, какой метод запроса был использован, вы можете попробовать $_SERVER['REQUEST_METHOD']
так:
if ($_SERVER['REQUEST_METHOD'] === 'POST')
{
//Ok we got a POST, probably from a FORM, read from $_POST.
var_dump($_PSOT); //Use this to see what info we got!
}
else
{
//You could assume you got a GET
var_dump($_GET); //Use this to see what info we got!
}
Примечание: $_SERVER at php.net
Вы можете Также обратите внимание на PHP Session management и Post-Redirect-Get.При том, что вы могли бы сделать это:
if ($_SERVER['REQUEST_METHOD'] === 'POST')
{
//Ok we got a POST, probably from a FORM, read from $_POST.
var_dump($_PSOT); //Use this to see what info we got!
//Do stuff...
//Write results to session
session_start();
$_SESSION['stuff'] = $something;
//redirect:
header('Location: add.php', true, 303);
//The redirection will cause the browser to request with GET
//The results of the operation are in the session variable
exit();
}
else
{
//You could assume you got a GET
var_dump($_GET); //Use this to see what info we got!
//Get stuff from session
session_start();
if (array_key_exists('stuff', $_SESSION))
{
$something = $_SESSION['stuff'];
//we got stuff
//later use present the results of the operation to the user.
}
//clear stuff from session:
unset($_SESSION['stuff']);
}
Примечание: $_SESSION at php.net
Stackoverflow позволяет просто показать 123. - Спасибо Theraot для его редактирования – user1043816
Вы смешиваете GET и POST? И ... в чем был ваш вопрос? Если вы не знаете, какой метод запроса использовался, вы можете попробовать $ _SERVER ['REQUEST_METHOD']; – Theraot
@ Theraot вы должны опубликовать его в качестве ответа. –