Autor Zpráva
nyllo
Profil
Soubor bez problému uloží ale do DB nezapíše

<?php 

mysql_connect($host, $username, $password);
mysql_select_db($db_name)
or die("Chyba! Databáze nebo tabulka nebyla nalezena!");
mysql_query("SET NAMES 'utf-8'");

$date = date("Y-m-d");

if (isset($_FILES["soubor"]["name"])) 
{

if (is_uploaded_file($_FILES["soubor"]["tmp_name"]))
{
$name = $_FILES["soubor"]["name"];

if (move_uploaded_file($_FILES["soubor"]["tmp_name"], "../photos/$date-$name"))
        {
        mysql_query($vloz);
        echo '<div class="alert alert-success">Soubor <b>'.$name.'</b> byl úspěšně nahrán.</div>';
        echo '<div class="alert alert-info"><a href="'.$adress_patch.'/photos/'.$date.'-'.$name.'" target="_blank">'.$adress_patch.'/photos/'.$date.'-'.$name.'</a></div>';
        
    }
    else 
        {
            
        echo'<div class="alert alert-danger">Nastala chyba!!</div>';
        
    }
} 
}

if(isset($_POST['poslat']))
{

    //poslání dat do DB
    $caption= htmlspecialchars($_POST['soubor']);
    $location= ''.$adress_patch.'/photos/'.$date.'-'.$name.'';
    echo $location; //debug link


    $vloz ="INSERT INTO `photos` caption='$caption', location='$location';";
    $result=mysql_query($vloz);
}
?>

<form method="post" enctype="multipart/form-data">
    
    <input type="file" title="Vyber soubor" name="soubor" />

    
    <br />
    <input type="submit" class="btn btn-primary" name="poslat" value="Nahrát" />
</form>
Manny
Profil
Najděte si, jak vypadá správný zápis INSERTu.
jenikkozak
Profil
nyllo:
- V dotazu na databázi ti chybí klíčové slovo SET:
$vloz ="INSERT INTO `photos` SET caption='$caption', location='$location'";
- Před odesláním dat do databáze použij escapování.
- Pokud se v Exploreru odešle formulář pomocí enteru, odesílací tlačítko „poslat“ nebude součástí odeslaných dat (nebude existovat $_POST["poslat"]). Ty pak neumožníš zápis do databáze. Ta druhá podmínka je přece zbytečná.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0