Registration form - Bild hochladen

Arbeite ich an einem Formular für eine website, die ich versuche, ein Foto hochzuladen auf den server und pass den Pfad der Datei auf die Datenbank.

Dies ist wahrscheinlich nur ein einfaches Problem, wie ich bin ziemlich der Anfänger in php und mysql.

Hier ist mein standard-form, die nennen wir register.php. Ich Schnitt allen anderen Eingang als das Bild.

<form name="reg" action="code_exec.php" onsubmit="return validateForm()" method="post">
    <input type="file" id="inputImage" Name="photo">
    <button class="btn btn-large btn-success" type="submit">Register</button>
</form>

Dies ist die ausführbare Datei, die nennen wir code_exec.php

<?php
session_start();
include('connection.php');

$fname = $_POST['fname'];
$lname = $_POST['lname'];
$mname = $_POST['mname'];
$address = $_POST['address'];
$contact = $_POST['contact'];
$pic = $_POST['pic'];
$username = $_POST['username'];
$password = $_POST['password'];
$skype = $_POST['skype'];
$email = $_POST['email'];

//This is the directory where images will be saved 
$target = "upload/"; 
$target = $target . basename( $_FILES['photo']['name']); 

//This gets all the other information from the form 
$pic = ($_FILES['photo']['name']); 

//Writes the photo to the server 
if (move_uploaded_file($_FILES['photo']['tmp_name'], $target)) { 
    //Tells you if its all ok 
    echo "The file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded, and your information has been added to the directory"; 
} else { 
    //Gives an error if its not 
    echo "Sorry, there was a problem uploading your file.";
} 

mysql_query("INSERT INTO member(fname, lname, gender, address, contact, picture, username, password, skype, email, photo)VALUES('$fname', '$lname', '$mname', '$address', '$contact', '$pic', '$username', '$password', '$skype', '$email', '$pic')");

header("location: index.php?remarks=success");
mysql_close($con);

?>

Wie finde ich den Pfad der image-Datei?

Kein einfügen $_POST Daten direkt! Es ist ein großes security-Problem en.wikipedia.org/wiki/SQL_injection. Siehe : xkcd.com/327 und stackoverflow.com/questions/332365/...
Bitte verwenden Sie nicht mysql_* Funktionen im neuen code. Sie werden nicht mehr gepflegt, sind offiziell nicht mehr und kann gefährlich in den live-code. Siehe die red box? Erfahren Sie mehr über prepared statements und PDO oder MySQLi - diesem Artikel wird Ihnen helfen, entscheiden, welche. Wenn Sie PDO, hier ist ein gutes tutorial.
Bitte code korrekt Einrücken. Ohne Einrückungen ist der code schwerer zu verstehen.

InformationsquelleAutor user2462645 | 2013-06-14

Schreibe einen Kommentar