Ничего не могу понять. Всю дорогу всё работало вот так: Код (Text): <? if ($submit) { $fp = fopen ("test.txt", "w"); echo 'Файл создан!'; } ?> <form method=POST> <center> <input type=submit name=submit value=" Отправить "> </center> </form> Но сейчас на хостинге файл test.txt перестал создаваться. Ответ хостера: Что нужно сделать, чтобы файл создавался и код работал?
Принять POST-запрос. Эко вы тянули с обновлением. В таком виде скрипт мог работать только на супермегастаром php.
Спасибо, понятно. Через $_POST теперь надо. А если в некоторых случаях мне всё же надо чтобы условие было записано через if ($name) Где name - это имя отправляемой переменной при отправке формы.
Ясно, спасибо. --- Добавлено --- Примерно такая конструкция: Код (Text): <? if($_POST) { ?> <form method=POST> <h4>Вопрос 1</h4> <p><input name="a" value="1" type="radio">Ответ 1</p> <p><input name="a" value="2" type="radio">Ответ 2</p> <center> <input type="submit" class="bbcodes" value=" Далее... "> </center> <? } else { ?> <? if($a) { ?> <form method=POST> <h4>Вопрос 2</h4> <p><input name="b" value="<? echo (4+$a) ?>" type="radio">Ответ 1.</p> <p><input name="b" value="<? echo (3+$a) ?>" type="radio">Ответ 2.</p> <p><input name="b" value="<? echo (2+$a) ?>" type="radio">Ответ 3.</p> <p><input name="b" value="<? echo (1+$a) ?>" type="radio">Ответ 4.</p> <center> <input type="submit" class="bbcodes" value=" Далее... "> </center> <? } else { ?> <? if($b) { ?> <form method=POST> <h4>Вопрос 2</h4> <p><input name="с" value="<? echo (1+$a) ?>" type="radio">Ответ 1.</p> <p><input name="с" value="<? echo (2+$a) ?>" type="radio">Ответ 2.</p> <center> <input type="submit" class="bbcodes" value=" Далее... "> </center> <? } else { ?> <form method=POST> <center> <input type=submit name=submit value=" Отправить "> </center> </form> <form method=POST> <center> <input type=submit name=submit value=" Отправить "> </center> </form> <? }} ?>
@Econaft, нет, ты недопонял. Тебе надо было всего лишь добавить одну строку. У тебя раньше была переменная $submit. Раньше в неё данные из массива POST записывались автоматически (вот такой наркоманский PHP раньше был). Теперь тебе в самом начале надо вручную присвоить этой переменной значение из массива POST. Всего одну строчку. И всё.
Вот так? Код (Text): <? if ($_POST["submit"] ) { $fp = fopen ("test.txt", "w"); echo 'Файл создан!'; } ?> <form method=POST> <center> <input type=submit name=submit value=" Отправить "> </center> </form>
Можно и так. Правда, я подразумевал это: PHP: <? $submit = $_POST['submit']; if ($submit) { $fp = fopen ("test.txt", "w"); echo 'Файл создан!'; } ?> <form method=POST> <center> <input type=submit name=submit value=" Отправить "> </center> </form>
@mr.akv, в твоём варианте будет NOTICE, если без формы вызвать. Надёжнее проверить так: PHP: if ($_SERVER["REQUEST_METHOD"] === "POST") https://secure.php.net/manual/ru/reserved.variables.server.php
Не могу теперь понять как передавать загружаемый файл. Это тоже не работает в новом PHP. Вот допустим как пример есть форма: Код (Text): <input type=file name=filename> Потом идёт обработка типа такой: $img = $_FILES['filename']['name']; $uploadfile = "blog/img/$img"; ...... и т.д. И как мне сюда всунуть это: "$_POST"? E]
В доке большущий раздел по загрузке файлов. Никто здесь пересказывать не будет: https://secure.php.net/manual/ru/features.file-upload.php
@mkramer у меня вроде так и сделано, и всё работало до недавнего времени, пока на новый PHP хост неперевёлся.
@Econaft покажи последний код, который уже с изменениями. Ещё ты пробовал на новом хостинге сделать простую страничку из документации, чтобы проверить загрузку файла?
@denis01 вот такой код. Всё работало. Пока с этим POST не намудрили по новому. Код (Text): Выберите файл: <input type=file name=filename><br> <center> <br><input type=submit name=submit value=" Отправить "> //////////////////////////картинка function createphoto ($input,$output) { $h = 750; $q = 80; $f=$input; $src = imagecreatefromjpeg($f); $w_src = imagesx($src); $h_src= imagesy($src); $ratio = $h_src/$h; if( $ratio<1 ) $ratio=1; $w_dest = round($w_src/$ratio); $h_dest = round($h_src/$ratio); $dest = imagecreatetruecolor($w_dest,$h_dest); imagecopyresized($dest, $src, 0, 0, 0, 0, $w_dest, $h_dest, $w_src, $h_src); imagejpeg($dest,$output,$q); imagedestroy($dest); imagedestroy($src); } //////////////////////// //////////////////////////картинка////////////// $img = $_FILES['filename']['name']; $uploadfile = "blog/img/$img"; $tip = $_FILES['filename']['type']; $tip = str_replace("blog/image/","",$tip); if ($tip=="jpeg") { createphoto($_FILES['filename']['tmp_name'], $uploadfile); echo "Изображение загружено - $uploadfile"; $img = "<center><img src=\"$uploadfile\"></center>"; } else { $img = ""; } ////////////////////////////////
Выглядит нормально. Надо читать логи и трассировать (выполнять по шагам, расставляя die и var_export) --- Добавлено --- Хотя... В $_FILES['filename']['type'] должно быть 'image/jpeg', а не просто jpeg. Ну это из того, что в глаза бросилось