2016-11-19 3 views
0

Q1: Ich bin neu in der Programmierung und habe keine Ahnung, was ich falsch mache. Ich erhalte die folgende Fehlermeldung:

Notice: Undefined index: pimage in [..]

dies ist der Code:

<form method="post" enctype="multipart/form-data"> 
    <label for="pimage">photo</label> 
    <input type="file" name="pimage" id="fileToUpload"/><br /> 
    <input type="submit" name="psubmit" value="register" /> 
</form> 

und das ist mein PHP:

if (isset($_POST['psubmit'])) { 
$image = $_POST['pimage']; 

Q2: Nach dem obigen Code sollte die Form In einer Datenbank gespeichert, bekomme ich keine Fehler, aber ich sehe nichts in der Datenbank. Hier ist der PHP-Code:

if (isset($_POST['psubmit'])) { 
    include 'opendb.php'; 
    $stmt = $dbh->prepare("INSERT INTO new_products(Title, Price, CID, 
Categorie, Sub-categorie, Description, Shipping) VALUES(:value1, :value2, 
:value3, :value4, :value5, :value6, :value7)"); 
    $image = $_POST['pimage']; 
    $values = array(
     'value1' => $_POST['ptitle'], 
     'value2' => $_POST['pprice'], 
     'value3' => $_POST['pcid'], 
     'value4' => $_POST['pcat'], 
     'value5' => $_POST['psubcat'], 
     'value6' => $_POST['pdescription'], 
     'value7' => $_POST['pshipping'],); 

    $stmt->execute($values); 
    $stmt->errorInfo(); 
} 

groß, dass diese Frage markiert als dupliziert, aber ich habe nicht die awnser im angegebenen Link. Ich weiß, was ich $ _POST ['pimage'] setzen muss und soweit ich weiß, tat ich es. Ich möchte nicht die Person sein, die Sie brauchen, um die Informationen zu füttern, aber bitte geben Sie mir den Text in dem gegebenen Link, so dass dieser Teil des Codes fertig ist.

Antwort

1

Schauen Sie sich einfach $ _FILES globale Variable und kleines Tutorial über das Hochladen von Dateien here.

Ihr Dateiname ist hier $ _FILES ["pimage"] ["name"]. Aber Sie müssen Ihre Datei aus dem temporären php-Pfad in Ihren Server-Dateiordner mit der Funktion move_uploaded_file ($ _ FILES ["pimage"] ["tmp_name"], $ target_file) kopieren.

Sie haben Fehler in params Abwarten, versuchen Sie dies aus:

if (isset($_POST['psubmit'])) { 
    include 'opendb.php'; 
    $stmt = $dbh->prepare("INSERT INTO new_products(Title, Price, CID, 
    Categorie, Sub-categorie, Description, Shipping) VALUES(:value1, :value2, 
    :value3, :value4, :value5, :value6, :value7)"); 

    $values = array(
     ':value1' => $_POST['ptitle'], 
     ':value2' => $_POST['pprice'], 
     ':value3' => $_POST['pcid'], 
     ':value4' => $_POST['pcat'], 
     ':value5' => $_POST['psubcat'], 
     ':value6' => $_POST['pdescription'], 
     ':value7' => $_POST['pshipping']); 

    $stmt->execute($values); 
    $stmt->errorInfo(); 
} 

Und es gibt nicht so variabel wie $ _POST [ 'pimage']. Es gibt nur $ _FILES ['pimage'].

+0

Dies ist, was ich unter dem PHP-Code habe, aber es kommt nie dorthin (if()), weil es eine undefinierte Variable gibt. Wenn du willst, kann ich irgendwo den Code hinter mir lassen. – wes

+0

Wo hast du '$ _FILES'? Alles, was ich in deiner Frage sehe, ist '$ _POST'. –

+0

@JoeC, wie ich oben sagte ich habe dies nach dem obigen Code. Hier ist der vollständige Code: http://pastebin.com/vKqH1ejG – wes

Verwandte Themen