Почему не работает php код?

Не работает php код, где ошибка?
<?php
$myfl = "val.txt";
  
 if(isset($_GET['Check']))	{
	
	if($_GET['Check'] == "retvalinc")	{
		$fh = fopen($myfl, "r+");
		echo("onetrue");
		$fileval = fread($fh, sizefile($fh));
		fclose($fh);
		echo $fileval;
	} else if($_GET['Check'] == "Increment" || $_GET['Check'] == "Incrementator")	{
		$fh = fopen($myfl,"r+");
		$fileval = fread($fh,sizefile($fh));
		fclose($fh);
		$fh = fopen($myfl,"w+");
		settype($fileval,integer);
		$success = fwrite($fh,$fileval+1);
	} else if($_GET['Check'] == "Decrement" || $_GET['Check'] == "Decrementator")	{
		$fh = fopen($myfl,"r+");
		$fileval = fread($fh,sizefile($fh));
		fclose($fh);
		$fh = fopen($myfl,"w+");
		settype($fileval,integer);
		$success = fwrite($fh,$fileval-1);
	}
 }
?>
  • Вопрос задан
  • 2693 просмотра
Решения вопроса 1
reffy
@reffy
Я молодец.
Пробуйте отлаживать код в ручную поэтапно, например так:

Проверим, что вообще передаётся $_GET['Check'];
if(isset($_GET['Check']))	{
    echo 'yep'; exit();
...
} else {
    // смотрим что есть в переменной $_GET
    print_r($_GET);
}


Как-то так, с малого начинайте. Если с $_GET['Check'] всё в порядке, то смотрите дальше.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
@lookid
Вы проверяете get и post, но не везде.
Если приходит post-запрос, то if(isset($_GET['Check'])) и if($_GET['Check'] == "retvalinc") будет всегда false.
Ответ написан
Комментировать
konst20
@konst20
Программист, преподаватель, немного электронщик
Конкретизируйте вопрос.
Что значит "не работает"? Fatal Error, или другие ошибки, или не работает логика, то есть подали то-то и то-то, ожидали вот это, а на выходе - совсем другое.

Белый экран - это 99% отключен вывод ошибок на уровне php.ini. Включите их, гугл в помощь - "php отображение ошибок"

Я бы сделал вот что.
1. Убедился. что все ОК с путем к файлу
2. проверил работу кусков кода между if-ами
3. и потом погрузился бы в раздумия, потому как все остальное в коде очевидно

P.S. сори, а зачем эти пляски с fopen и пр.? Есть же file_get_contents() без всяких $fh

P.P.S. и да, раз такое веселье, разберитесь с проверкой isset($_POST['Check']), иначе код будет сыпать нотайсы
Ответ написан
Комментировать
Чтобы проверить Ваш код, сделайте просто
var_dump($_GET);
Посмотрите, есть ли в массиве вообще что-нибудь.

Если на выходе будет array(0) { } или массив не будет содержать ваших ключей, тогда начинать разбираться нужно будет с момента посыла данных.

Проверьте, может быть, как часто это бывает, Вы путаете $_GET и $_POST методы.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы