2010-09-27 11 views
1

J'utilise uploadify script pour télécharger des fichiers comme projet scolaire.uploadify et sql query

//die($_SESSION['ID'].'.....'.$_SESSION['level']); 

if (!empty($_FILES)) { 
    $tempFile = $_FILES['Filedata']['tmp_name']; 
    $targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/'; 
    $filename = substr(md5(time()), 0, 8)."-".$_FILES['Filedata']['name']; 
    $targetFile = str_replace('//','/',$targetPath) . $filename; 
    $time = time(); 
    $ID = $_SESSION['ID']; 

    $sql = mysql_query("INSERT INTO files VALUES(NULL, '$ID', '$targetFile', '$time')"); 

    move_uploaded_file($tempFile,$targetFile); 
    echo "1"; 
} 

En plus _SESSION $ [ 'id'] travaille, mais quand je suis entré à l'intérieur $ sql, il retourne 0. Toute idée pourquoi? J'ai tout revérifié.

Confus.

Merci

+0

il semble correct. Conservez la requête dans une chaîne et redirigez avant de l'envoyer à mysql_query. Ensuite, essayez d'exécuter ce directement contre MySQL et vérifiez qu'il ne renvoie aucune erreur .Si il insère avec succès direc Tly, le problème est probablement la façon dont vous vous connectez à MySQL en PHP. – clifgriffin

+0

Également, echo SESSION ['ID'] dans l'instruction if (! Empty ($ _FICHES)) {// here} et laisse voir ce qui se passe. – Stewie

Répondre

1

Il semble SESSION ne fonctionne pas avec Uploadify, je l'ai résolu avec scriptData Uploadify.

Merci pour toutes les réponses.

0

doit être le type de votre colonne MySQL.

Assurez-vous que vous utilisez varchar/text parce '$ID' est un string: si votre type est int (ou similaire), alors vous aurez 0 inséré.

0

Couple de choses mal ici. Vous devez d'abord être nommer explicitement vos champs dans le $ sql:

$sql = 'insert into tablename (fileid,filename,d_uploaded) values ('.$ID.', \''.$targetFile.'\', '.$time.');'; 

La plupart des ID champs ne seront pas VARCHAR ils seront INT. Tout VARCHAR est un champ de texte et tous INT sont numériques. Vous n'échappez pas à vos champs INT mais vous devez échapper votre VARCHAR.

N'insérez pas non plus de champs NULL pour obtenir un champ d'incrémentation automatique. En faisant le SQL comme je l'ai ci-dessus, vous avez l'avantage de ne pouvoir coder que les champs SQL que vous insérez et le reste des champs de la table va insérer des valeurs par défaut.

0

Essayez d'utiliser INSERT INTO files SET field=value, field=value, .. et n'oubliez pas aseptiser l'entrée d'utilisateur (comme _REQUEST $) en utilisant mysql_real_escape_string() (et si vous avez des citations magiques a permis de les désactiver si vous décidez d'utiliser mysql_real_escape_string().