PHP Query Fail - PullRequest
       23

PHP Query Fail

0 голосов
/ 15 апреля 2009
<?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>

Не берите в голову, что есть строка идентификатора с автоматическим приращением, но даже если я добавлю это в запрос, он все равно не будет работать.

Независимо от того, что я делаю с этим запросом, он просто НЕ БУДЕТ, я трижды проверил детали sql, и они в порядке, хотя, похоже, все равно работает нормально. Я играл с именами полей в запросе, и они должны быть в порядке, но это просто не будет работать! Paypal за 5 $ любому, кто может мне помочь, я, честно говоря, так расстроен, что это неправда.

Ответы [ 2 ]

14 голосов
/ 15 апреля 2009
mysql_query($query) or die('q fail');

Замените это на

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

И расскажите нам, что вы получаете.

5 голосов
/ 15 апреля 2009

Ну, теперь, когда вы решили реальную проблему, я думаю, что хорошо отметить, что у вас есть огромные зияющие SQL-инъекции дыр.

Идеальный способ исправить это переключиться на использование функций PDO или MySQLi и использовать параметризованные запросы, но самым быстрым решением было бы изменить эти строки:

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

до

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

Код, который у вас сейчас есть, было бы крайне опасно обнародовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...