Это мой код:
<?php
session_start();
include "connect.php";
$username=$_SESSION['username'];
if(isset($_SESSION['username'])){
$teks= mysql_real_escape_string($_POST['teks']);
$photo= $_POST['photo'];
$path_file = pathinfo($_FILES['photo']['name']);
$type_file = $_FILES['photo']['type'];
$name_file = $_FILES['photo']['name'];
$directory = "image/$nama_file";
if (!empty($lokasi_file)) {
move_uploaded_file($lokasi_file,$direktori); }
$sql=mysql_query("SELECT username from member where username='$username'");
$result=mysql_fetch_array($sql);
mysql_query("Insert into posting (username, pic_post, text_post, location, datetime) values('$username','$photo','$teks', '$photo', NOW())");
header("Location: member.php");
}
?>
У меня проблема с этим кодом, и я не могу переместить загруженное изображение в /image
папка.
Код, который вы написали, полон ошибок
$ photo = $ _POST [‘photo’]; Это неправильно … $ photo = $ _FILES [‘photo’];
Пожалуйста, перейдите по ссылке ниже, вы найдете хороший учебник здесь.
http://www.w3schools.com/php/php_file_upload.asp
Новое редактирование: (Я только что отредактировал ваш код)
<?php
session_start();
include "connect.php";
$username=$_SESSION['username'];
if(isset($_SESSION['username'])){
$teks= mysql_real_escape_string($_POST['teks']);
$photo= $_FILES['photo']['name'];
$path_file = pathinfo($_FILES['photo']['name']);
$type_file = $_FILES['photo']['type'];
$name_file = $_FILES['photo']['name'];
$directory = "image/$nama_file";
$target_file = $directory . basename($_FILES["photo"]["name"]);
if (!empty($lokasi_file)) {
move_uploaded_file($_FILES["photo"]["tmp_name"], $target_file);
}
$sql=mysql_query("SELECT username from member where username='$username'");
$result=mysql_fetch_array($sql);
mysql_query("Insert into posting (username, pic_post, text_post, location, datetime) values('$username','$photo','$teks', '$photo', NOW())");
header("Location: member.php");
}
?>
У вас есть несколько ошибок в вашем коде.
Проверьте этот блок
$photo= $_POST['photo'];
$path_file = pathinfo($_FILES['photo']['name']);
$type_file = $_FILES['photo']['type'];
$name_file = $_FILES['photo']['name'];
$directory = "image/$nama_file";
Файлы находятся в $_FILES
массив, а не в $_POST
так ваше фото будет $photo= $_FILES['photo'];
Вы никогда не используете $path_file
так почему так?
У вас есть тип, с $nama_file
, то есть $name_file
Где $lokasi_file
а также $direktori
родом из? Которые должны быть $_FILES['photo']['tmp_name']
в ход загрузки.
Не используйте функции mysql, они устарели. Используйте вместо этого mysqli или PDO.
Выход из ваших переменных происходит извне, из-за SQL-инъекции или использования подготовленных операторов.
Вы не используете результат вашего первого $sql
,
Вы не можете хранить $photo
в вашей базе данных, потому что это массив
добавлять exit;
или же die;
после перенаправления.
Sidenote: Почему вы храните местоположение файла дважды?
Таким образом, ваш окончательный код будет примерно таким, но опять же измените mysql_
функция!
session_start();
include "connect.php";
$username = $_SESSION['username'];
if (isset($_SESSION['username'])) {
$teks = mysql_real_escape_string($_POST['teks']);
$type_file = $_FILES['photo']['type'];
$name_file = "image/" . basename($_FILES['photo']['name']);
if (move_uploaded_file($_FILES["photo"]['tmp_name'], $name_file)) {
//Why is it here, for what? Never used the $res (what is acually $row)
//$sql = mysql_query("SELECT username from member where username='" . mysql_real_escape_string($username) . "'");
//$res = mysql_query($sql);
mysql_query("Insert into posting (username, pic_post, text_post, location, datetime) ". "values('" . mysql_real_escape_string($username) . "',". " '" . mysql_real_escape_string($name_file) . "',". " '" . $teks . "',". " '" . mysql_real_escape_string($name_file) . "', NOW())");
header("Location: member.php");
die();
}
}
Большое спасибо за ответ ..
и вот мой успешно код:
<?php
session_start();
include "connect.php";
$username=$_SESSION['username'];
if(isset($_SESSION['username'])){
$koneksi = mysqli_connect("localhost","root","");
mysqli_select_db($koneksi, "dbjashik");
$teks = $_POST['teks'];
$folder = "image";
$tmp_name = $_FILES["photo"]["tmp_name"];
$name = $folder."/".$_FILES["photo"]["name"];
//to moving the file into /image directory
move_uploaded_file($tmp_name, $name);
//inserting query
$input = mysqli_query($koneksi, "INSERT INTO posting VALUES(null, '$username', '$name' ,'$teks', '$name', NOW() )");header("Location: member.php");
}
?>