Не могу найти ошибку в этой форме - PullRequest
0 голосов
/ 27 марта 2012

Это базовые вещи, но я не могу заставить эту следующую форму работать надежно.Название страницы - inplain.php.Это работает иногда.Страница просто перечисляет все значения в таблице «платформа» и позволяет пользователю добавлять записи и обновлять.

<?
session_start();
   if (!isset($_SESSION['id_customer'])) { die ("Access Denied"); }
   include "../inc/db.php";


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

     $platform = $_POST['platform'];

     $created = date("Y-m-d H:i:s");

     $query = "INSERT INTO Platform (id_platform, platform, date_created, date_modified) VALUES ('', $platform, '$created', '$created')";
     mysql_query($query);
     mysql_close();

     header("Location: inplain.php");
     }


      echo $passage;

?>




<table cellpadding="15">
        <tr>
            <td valign="top" width="50%">
            <?                   
            $sell_result = mysql_query("SELECT COUNT(id_platform) FROM Platform");
            $sell_count=mysql_fetch_array($sell_result);
            ?>
            The following <?=$sell_count['COUNT(id_platform)']?> categories exist in Platform. | <a href="inlist.php">Add Game...</a>
            <div style="height: 250px; overflow: auto;">
                <ul>
                <?
                    $result = mysql_query("
                                        SELECT * FROM Platform");
                    while($row = mysql_fetch_array($result)) {
                ?>
                    <li>

                                            <a href="inwant.php?addswaps=1&cat=Sell&col=sell&hid=<?=$row['id_platform']?>"><?=$row['id_platform']?></a> - <?=$row['platform']?>
                        <img src="../images/dot.png" width="1" height="20" border="0" /> 
                        <a href="inplain.php?remove=1&cat=Platform&col=platform&pid=<?=$row['id_platform']?>"><img src="../images/delete.jpg" width="15" height="15" border="0" alt="Delete" /></a>
                    </li>
                <? } ?>
                </ul>
            </div>
        </td>           
    </tr>   
<tr>
<td>
    <form name="inplain.php" method="post">
        Add a new platform: 
        <br />
            <input type="text" name="platform" size="30" /><BR>
            <input type="submit" id="submit" name="submit" value="Add" />

    </form>
</td>
</tr>
</table>

Спасибо за предложения, в конце концов это сработало, я добавил это вместо "if (isset ($ _ POST ['submit']))) {"

$password = mysql_real_escape_string($_POST['password']);

if ($_POST['Submit'] == 'Add' & $password == 'xyd')  {

$platform = mysql_real_escape_string($_POST['platform']);

$created = date("Y-m-d H:i:s");

$query = "INSERT INTO Platform (id_platform, platform, date_created, date_modified) VALUES ('', '$platform', '$created', '$created')";
mysql_query($query);
mysql_close();
  header("Location: inplain.php");
    die();
}

Ответы [ 3 ]

1 голос
/ 27 марта 2012

вам нужно exit после написания заголовка Location. запись дополнительных выходных данных может нарушить перенаправление.

0 голосов
/ 27 марта 2012

Вероятно, стоит проверить журналы ошибок MySQL и PHP.

Возможно ли, что сбои связаны с тем, откуда был вызван скрипт, так как я заметил, что ваши данные базы данных включены во включенную сотносительный путь.Если этот сценарий также «включен», а не запускается напрямую, возможно, этот относительный путь не всегда корректен?

0 голосов
/ 27 марта 2012

Вы должны вывести результаты вашего запроса mysql и использовать функцию mysql_error, чтобы определить, иногда ли что-то не так в вашем запросе.Я заметил, что вы не помещаете кавычки вокруг переменной $ platform в вашу вставку, чтобы это могло быть проблемой.

Также обратите внимание, что ваш скрипт уязвим для внедрения SQL.Вам нужно экранировать строку $ platform с помощью mysql_real_escape_string перед ее вставкой.

Наконец, в логике отправки, только после выдачи заголовка для перенаправления обратно в сценарий, вы должны поместить команду die (), чтобы остановитьскрипт от дальнейшей обработки, пока браузер перенаправляет.Не требуется, но хорошая практика.

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