Я программировал годами с различными языками программирования. У меня также есть опыт работы с языками разметки и написания сценариев. Я новичок в PHP. Я пытаюсь исправить сайт своего отца для него, и я многому учусь, когда ухожу. Я многое исправил, но в настоящее время я застрял. Обновление на хосте PHP, которое мой папа использует с 5.1 до 5.4, нарушило веб-сайт. Я заметил, что одно из изменений заключается в том, что переменные должны быть определены сейчас. Я исправил множество функций, но у меня возникли проблемы с исправлением части, которая позволяет пользователю веб-сайта загружать изображение на сервер. Файл просто не загружается, и я не уверен, почему. Вот PHP:Загрузка файла с помощью PHP
$file = $_POST['file'];
$file_name = $_POST['file']['name'];
if ($file && $file_name)
{
if ($_FILES['file']['size']>$maxsize) $status = "Error: Picture size too large. Max file size is $maxsize bytes.<br>";
if (($_FILES['file']['type']!="image/gif") && ($_FILES['file'] ['type']!="image/jpeg") && ($_FILES['file']['type']!="image/jpg") && ($_FILES['file'] ['type']!="image/png")) $status .= "Error: Wrong file type. Must be JPG or GIF only.<br>";
$picext = substr($file_name,-3);
$picext = strtolower($picext);
if ((!isset($status)) && ($picext!="gif") && ($picext!="jpg") && ($picext!="png")) $status .= "Error: Wrong file type. Must be JPG or GIF or PNG only.<br>";
}
if (!isset($status)){
//die("write".$id);
$email = $_POST['email'];
$aim = $_POST['aim'];
$icq = $_POST['icq'];
$yahoo = $_POST['yahoo'];
$homepage = $_POST['homepage'];
$myip = $_POST['myip'];
if (!$myip) $myip = $ip;
$email2 = $_POST['email2'];
$password = $_POST['password'];
$title = $_POST['title'];
$download = $_POST['download'];
$approved = $_POST['approved'];
$allowdelete = $_POST['allowdelete'];
$author = $_POST['author'];
$facebook = $_POST['facebook'];
$piclink = $_POST['piclink'];
$domain = $_POST['domain'];
$option3 = $_POST['option3'];
$secret = $_POST['secret'];
$q= "insert into $table values('', '$email', '$aim', '$icq', '$yahoo', '$homepage', '0','0', '0', '0', '0', '0', '', now(),'$myip','$email2','$password','$title','$download','$approved','$allowdelete','$auth or','$facebook','$piclink','$domain','$option3','$secret')";
$result = mysql_query($q) or die("Failed: $sql - ".mysql_error());
$q = "select max(id) from $table";
$result = mysql_query($q);
$resrow = mysql_fetch_row($result);
$id = $resrow[0];
$picext = "png";
$q = "update $table set picfile = '".$id.".".$picext."' where id='$id'";
$result = mysql_query($q);
$file = $_POST['file'];
@copy($file, "../pics/".$id.".".$picext);
$picfile=$id.".".$picext;
$act = "update"; //set mode back to update
Header("Location: newadmin.php?id=$id");
}
Вот форма HTML код:
<td width="91"><div align="right"><font size="-1" face="Verdana, Arial, Helvetica, sans-serif">Upload
Picture:</font></div></td>
<td width="403"><font size="-1" face="Verdana, Arial, Helvetica, sans-serif">
<form name='file' method='post' enctype="multipart/form-data" action="newadmin.php">
<input name="file" type="file" size="50" maxlength="50">
</form>
</font></td>
<td width="200"> </td>
<td width="18"> </td>
</tr>
<tr>
<td width="91">
<div align="right"><font size="-1" face="Verdana, Arial, Helvetica, sans-serif">
<!-- update & create button -->
<button type='submit' name='submit' value='Submit'><img src='../images/formbutton.gif' width='40' height='40' /><?echo $tag;?>
Любая помощь будет принята с благодарностью. Если это помогает, по какой-то причине в error_log $ picext не устанавливается. Но если я поставлю «$ picext =" png ";" Файл по-прежнему не загружается.
Вы пытались сделать простой файл загрузчик, чтобы увидеть, если проблема с этим кодом или обновлением хоста в целом? – Floris
У меня не было, но ответ Криш Р. получил ниже. Спасибо! –