Я хотел бы загрузить некоторые новости, и для этого мне нужно вставить картинку. Картинка и текст работают. Но я не могу сделать это за один шаг:
<?php
session_start();
require_once("inc/config.inc.php");
require_once("inc/functions.inc.php");
//Überprüfe, dass der User eingeloggt ist
//Der Aufruf von check_user() muss in alle internen Seiten eingebaut sein
$user = check_user();
include("templates/header.inc.php")
?>
<div class = "container main-container registration-form">
<h1>Einfügen</h1>
<?php
$showFormular = true; //Variable ob das Registrierungsformular anezeigt werden soll
if (isset($_GET['register'])) {
$error = false;
$vorname = htmlentities(trim($_POST['vorname']));
$nachname = htmlentities(trim($_POST['nachname']));
$nickname = htmlentities(trim($_POST['nickname']));
if (empty($vorname) || empty($nachname) || empty($nickname)) {
echo 'Bitte alle Felder ausfüllen<br>';
$error = true;
}
//Keine Fehler, wir können den Beitrag hinzufügen
if (!$error) {
$statement = $pdo->prepare("INSERT INTO entries (entry_title, entry_subtitle, entry_content) VALUES (:vorname, :nachname, :nickname)");
$result = $statement->execute(array('vorname' => $vorname, 'nachname' => $nachname, 'nickname'=> $nickname));
if ($result) {
echo 'Dein Beitrag wurde erfolgreich hinzugefügt. <a href = "news.php">Zu den News</a>';
$showFormular = false;
} else {
echo 'Beim Abspeichern ist leider ein Fehler aufgetreten<br>';
}
}
}
if ($showFormular) {
?>
<form action = "?register=1" action = "upload.php" method = "post"enctype = "multipart/form-data">
<div class = "form-group">
<label for = "inputVorname">Titel :</label>
<input type = "text" id = "inputVorname" size = "40" maxlength = "250" name = "vorname" class = "form-control" required autofocus><br />
<label for = "inputNachname">Subtitel:</label>
<input type = "text" id = "inputNachname" size = "40" maxlength = "250" name = "nachname" class = "form-control" required><br />
<label for = "inputNickname">Content:</label>
<textarea id = "inputNickname" rows = "7" cols = "200" type = "text" name = "nickname" class = "form-control" required></textarea><br /><br />
</form>
<br />
<input type = "file" name = "datei"><br>
<button type = "submit" class = "btn btn-lg btn-primary btn-block" style = "width:100px;">Uploaden</button><br />
</form>
<br />
<form action = "upload.php" method = "post" enctype = "multipart/form-data">
<input type = "file" name = "datei"><br>
<input type = "submit" value = "Hochladen">
</form>
</div>
<?php
} //Ende von if ($showFormular)
?>
<?php
include("templates/footer.inc.php")
?>
а вот загрузка для картинки:
<?php
$upload_folder = 'upload/'; //Das Upload-Verzeichnis
$filename = pathinfo($_FILES['datei']['name'], PATHINFO_FILENAME);
$extension = strtolower(pathinfo($_FILES['datei']['name'], PATHINFO_EXTENSION));
//Überprüfung der Dateiendung
$allowed_extensions = array('png', 'jpg', 'jpeg', 'gif');
if (!in_array($extension, $allowed_extensions)) {
die("Ungültige Dateiendung. Nur png, jpg, jpeg und gif-Dateien sind erlaubt");
}
//Überprüfung der Dateigröße
$max_size = 500*1024; //500 KB
if ($_FILES['datei']['size'] > $max_size) {
die("Bitte keine Dateien größer 500kb hochladen");
}
//Überprüfung dass das Bild keine Fehler enthält
if (function_exists('exif_imagetype')) { //Die exif_imagetype-Funktion erfordert die exif-Erweiterung auf dem Server
$allowed_types = array(IMAGETYPE_PNG, IMAGETYPE_JPEG, IMAGETYPE_GIF);
$detected_type = exif_imagetype($_FILES['datei']['tmp_name']);
if (!in_array($detected_type, $allowed_types)) {
die("Nur der Upload von Bilddateien ist gestattet");
}
}
//Pfad zum Upload
$new_path = $upload_folder.$filename.'.'.$extension;
echo $new_path;
//Neuer Dateiname falls die Datei bereits existiert
if (file_exists($new_path)) { //Falls Datei existiert, hänge eine Zahl an den Dateinamen
$id = 1;
do {
$new_path = $upload_folder.$filename.'_'.$id.'.'.$extension;
$id++;
} while(file_exists($new_path));
}
echo $new_path;
$statement = $pdo->prepare("INSERT INTO entries (entry_picture) VALUES (:datei)");
$result = $statement->execute(array('datei' => $new_path));
if ($result) {
echo 'Dein Beitrag wurde erfolgreich hinzugefügt. <a href = "news.php">Zu den News</a>';
$showFormular = false;
} else {
echo 'Beim Abspeichern ist leider ein Fehler aufgetreten<br>';
}
//Alles okay, verschiebe Datei an neuen Pfad
move_uploaded_file($_FILES['datei']['tmp_name'], $new_path);
echo 'Bild erfolgreich hochgeladen: <a href = "'.$new_path.'">'.$new_path.'</a>';
?>
Я работаю с phpmyadmin. Вот картинка таблицы mysql
Оба работают, но не в один шаг. Как это может быть сделано?
Вот functions.php
<?php
/**
* A complete login script with registration and members area.
*
* @author: Nils Reimers / http://www.php-einfach.de/experte/php-codebeispiele/loginscript/
* @license: GNU GPLv3
*/
include_once("password.inc.php");
/**
* Checks that the user is logged in.
* @return Returns the row of the logged in user
*/
function check_user() {
global $pdo;
if (!isset($_SESSION['userid']) && isset($_COOKIE['identifier']) && isset($_COOKIE['securitytoken'])) {
$identifier = $_COOKIE['identifier'];
$securitytoken = $_COOKIE['securitytoken'];
$statement = $pdo->prepare("SELECT * FROM securitytokens WHERE identifier = ?");
$result = $statement->execute(array($identifier));
$securitytoken_row = $statement->fetch();
if (sha1($securitytoken) !== $securitytoken_row['securitytoken']) {
//Vermutlich wurde der Security Token gestohlen
//Hier ggf. eine Warnung o.ä. anzeigen
} else { //Token war korrekt
//Setze neuen Token
$neuer_securitytoken = random_string();
$insert = $pdo->prepare("UPDATE securitytokens SET securitytoken = :securitytoken WHERE identifier = :identifier");
$insert->execute(array('securitytoken' => sha1($neuer_securitytoken), 'identifier' => $identifier));
setcookie("identifier",$identifier,time()+(3600*24*365)); //1 Jahr Gültigkeit
setcookie("securitytoken",$neuer_securitytoken,time()+(3600*24*365)); //1 Jahr Gültigkeit
//Logge den Benutzer ein
$_SESSION['userid'] = $securitytoken_row['user_id'];
}
}
if (!isset($_SESSION['userid'])) {
die('Bitte zuerst <a href = "login.php">einloggen</a>');
}
$statement = $pdo->prepare("SELECT * FROM users WHERE id = :id");
$result = $statement->execute(array('id' => $_SESSION['userid']));
$user = $statement->fetch();
return $user;
}
/*
Returns true when the user is checked in, else false
*/
function is_checked_in() {
return isset($_SESSION['userid']);
}
/**
* Returns a random string
*/
function random_string() {
if (function_exists('openssl_random_pseudo_bytes')) {
$bytes = openssl_random_pseudo_bytes(16);
$str = bin2hex($bytes);
} else if (function_exists('mcrypt_create_iv')) {
$bytes = mcrypt_create_iv(16, MCRYPT_DEV_URANDOM);
$str = bin2hex($bytes);
} else {
//Replace your_secret_string with a string of your choice (>12 characters)
$str = md5(uniqid('your_secret_string', true));
}
return $str;
}
/**
* Returns the URL to the site without the script name
*/
function getSiteURL() {
$protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";
return $protocol.$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']).'/';
}
/**
* Outputs an error message and stops the further exectution of the script.
*/
function error($error_msg) {
include("templates/header.inc.php");
include("templates/error.inc.php");
include("templates/footer.inc.php");
exit();
}
functions.inc.php и config.inc.php включены в ваш php-код, но не упоминаются в вашем вопросе.
Если вы дадите полный код, то будет легко ответить на вопрос
«Я не могу сделать это ни на шаг», подождите, что? Пожалуйста, уточните
я хочу загрузить ссылку на изображение и заголовок подзаголовка... в том же столбце






move_uploaded_file(temporary_location, location_to_location);
move_uploaded_file($_FILES['datei']['tmp_name'], $new_path);
Я не понял, что за текст вы загружаете. Вы сохраняете одни и те же строки новостей в entry_content?