gpt4 book ai didi

php - 如何一步上传图片和文字?

转载 作者:行者123 更新时间:2023-11-30 21:33:38 25 4
gpt4 key购买 nike

我想上传一些新闻,为此我需要插入一张图片。图片和文字都有效。但我不能一步完成:

<?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。这是 a picture of the mysql table

两者都有效,但不是一步到位。如何做到这一点?

这是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();
}

最佳答案

move_uploaded_file(temporary_location, location_to_location);

move_uploaded_file($_FILES['datei']['tmp_name'], $new_path);

关于php - 如何一步上传图片和文字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55029155/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com