проблема формы php с mysql - PullRequest
       2

проблема формы php с mysql

0 голосов
/ 24 августа 2011

Я пытаюсь написать немного веб-приложений для управления проектами как новичок - я извиняюсь за это, но я не смог найти ничего рядом ...

Итак, у меня есть x тип проекта, который можно выбрать и загрузить через AJAX.

У каждого типа есть как минимум 2-3 шага для их завершения, поэтому мне нужно больше страниц php.

Я потратил много времени, чтобы выяснить это, но пришло время спросить кого-то, кто знает ответ.

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

код:

<form id="pdf" method="post">
New project name:<input type="text" name="pr-name" placeholder="new project name..."><br/>
New project end date:<input type="text" name="pr-end" placeholder="date..."><br/>

<textarea class="ckeditor" name="pagecontent"  id="pagecontent"></textarea>

<?php
    include_once "ckeditor/ckeditor.php";
    $CKEditor = new CKEditor();
    $CKEditor->basePath = 'ckeditor/';

   // Set global configuration (will be used by all instances of CKEditor).
   $CKEditor->config['width'] = 600;   
    // Change default textarea attributes
   $CKEditor->textareaAttributes = array(“cols” => 80, “rows” => 10);

   $CKEditor->replace("pagecontent");


$sbmt_caption = "continue ->";
if ($_POST["submit_name"]==$sbmt_caption)
{ 
  $prname = mysql_real_escape_string ($_POST["pr-name"]);
  $prend = mysql_real_escape_string ($_POST["pr-end"]);
  $prmenu = "pdf";
  $prcontent = mysql_real_escape_string ($_POST["pagecontent"]);
  $sql = "INSERT INTO projects (pr-name,enddate, sel, content) VALUES('$prname','$prend', '$prmenu', '$prcontent')";

  $result = mysql_query($sql);
  if (!$result){
  echo mysql_error();
  }
}
?>

"/>

этот код с битом mysql_query даже почему-то не работает.

Может ли кто-нибудь дать мне подсказку?

Ответы [ 3 ]

1 голос
/ 24 августа 2011

Четыре подсказки:

  1. Проверьте, нет ли ошибок в вашем запросе и ошибок вывода, если таковые имеются, с

    $result = mysql_query($sql);
    if (!$result){
         echo mysql_error();
    }
    
  2. Используйте подготовленные операторы вместо прямого встраивания параметров в строку запроса

    $stmt = $pdo->prepare("INSERT INTO projects (pr-name,enddate, sel, content) VALUES(?,?,?,?)");
    $stmt->execute(array($prname,$prend, $prmenu, $prcontent))
    
  3. Используйте $_POST вместо $_REQUEST.$_REQUEST массив создается из cookie, get, post и session в соответствии с директивой variables_order php.ini, поэтому вы можете просто перезаписать свои значения.

  4. ваша кнопка отправкине размещены вообще.Поэтому добавьте к нему атрибут name и отметьте его в своем операторе if.Кроме того, не используйте просто строку continue ->.Сохраните его в переменной и используйте.

    $sbmt_caption = "continue ->";
    if ($_POST["submit_name"]==$sbmt_caption){
        //your processing here
    }
    
    <input id="submitButton" name="submit_name" type="submit" value="<?php echo $sbmt_caption?>"/>
    
0 голосов
/ 24 августа 2011

Сначала у вас должен быть код проверки на стороне клиента в javascript для проверки правильности введенных клиентом вводов, и вы можете остановить его, не отправляя запрос на сервер.Это сокращает время ожидания пользователя.

0 голосов
/ 24 августа 2011

Вам нужно присвоить кнопке подтверждения «имя» и проверить наличие этого имени во втором коде в строке 2, а не «значение».

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