2009-04-15 7 views
-5
<?php 
if(isset($_POST['upload']) && $_FILES['userfile']['size'] > 0) 
{ 
$dbhost = 'localhost'; 
$dbuser = 'zuk1_boo'; 
$dbpass = 'lols'; 
$dbname = 'zuk1_boo'; 

$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql'); 

$name = $_POST['name']; 
$iq = $_POST['iq']; 

$nuname = str_replace(" ", "-", $name); 
$nuname = $nuname.".gif"; 
$path = "img/$nuname"; 

move_uploaded_file($_FILES['userfile']['tmp_name'],$path); 

$query = "INSERT INTO celebs (celeb,path1,iqq) VALUES ('$name','$path','$iq')"; 

mysql_query($query) or die('q fail'); 

mysql_close($conn); 

echo "<br>File $fileName uploaded<br>"; 
} 
?> 

<form method="post" enctype="multipart/form-data"> 
<table width="350" border="0" cellpadding="1" cellspacing="1" class="box"> 
<tr> 
<tr><td><input name="name" type="text" value="name"></td></tr> 
<tr><td><input name="iq" type="text" value="iq"></td></tr> 
<td width="246"> 
<input type="hidden" name="MAX_FILE_SIZE" value="2000000"> 
<input name="userfile" type="file" id="userfile"> 
</td> 
<td width="80"><input name="upload" type="submit" class="box" id="upload" value=" Upload "></td> 
</tr> 
</table> 
</form> 

Dans l'esprit, il existe une ligne d'ID avec incrémentation automatique, mais même si j'ajoute cela à la requête, cela ne fonctionnera toujours pas.Échec de la requête PHP

Peu importe ce que je fais avec cette requête, cela ne fonctionnera pas, j'ai triplé les détails de SQL et ils vont bien, même si cela semble bien se connecter de toute façon. J'ai joué avec les noms de champs dans la requête et ça devrait aller, mais ça ne marchera pas! 5 $ Paypal à tous ceux qui peuvent m'aider, honnêtement je suis tellement frustré que c'est faux.

+0

Quelle est l'erreur? –

+0

Pourquoi toutes les downvotes? –

Répondre

14
mysql_query($query) or die('q fail'); 

remplacer par

mysql_query($query) or die(mysql_error()); 

et dites-nous ce que vous obtenez.

+0

Je suis une tête absolue d * ck, c'est ce que vous obtenez. DB non sélectionné. Parfois je suis tellement frustré par les problèmes que je manque l'évidence :) – zuk1

+4

Où est mon 5 $: P –

+0

Gief paypal email – zuk1

5

Eh bien, maintenant que vous avez résolu le problème réel, je pense qu'il est bon de souligner que vous avez des trous béants SQL injection.

La meilleure façon de fixer serait de passer à l'aide des PDO ou MySQLi fonctions et utiliser des requêtes paramétrées, mais le plus rapide solution serait de changer ces lignes:

$name = $_POST['name']; 
$iq = $_POST['iq']; 

à

$name = mysql_real_escape_string($_POST['name']); 
$iq = mysql_real_escape_string($_POST['iq']); 

Le code que vous avez maintenant serait extrêmement dangereux à rendre public.

+0

Merci pour votre aide, n'a pas pris la peine de la sécuriser parce que ce sera protégé par un mot de passe et utilisé pour l'administration seulement. Mais bon pour référence future! – zuk1

+6

Vous ne devriez jamais compter sur cela pour la sécurité. Si quelqu'un a deviné le mot de passe, il pourrait avoir un accès complet à votre base de données, au lieu de simplement utiliser les outils d'administration. –

+0

Tchad, j'aimerais pouvoir voter plus d'une fois sur ce commentaire. Ne faites jamais confiance à l'entrée - quelle que soit sa provenance ou qui sera théoriquement capable de la voir. – AnonJr

Questions connexes