Проблемы с формой вставки PHP

#php #html #wordpress

#php #HTML #wordpress

Вопрос:

Итак, я пытаюсь заставить этот php-код отображать текстовую область и кнопку отправки, чтобы пользователь мог отправить биографию, которая будет вставлена в БД. У меня есть несколько проблем с этим кодом:

  1. По какой-то причине текстовая область заполнена фактической формой HTML, а не просто пустым полем, поэтому она отображается как:
     <form action='page-bio.php' method='post'>
        <textarea name='author_bio' value=<input type='hidden' name='hidden' value=
        <input type='submit' name='update' value=update
    </form>.
     
  2. Я использую wordpress, так что это шаблон php, но мне интересно, правильно ли этот код получит текущего пользователя и вставит биографию пользователя в поле биографии пользователя в базе данных? У меня такое чувство, что этого не произойдет, но я не могу сказать, потому что я все еще не могу отобразить кнопку отправки.
 <?php
    $con = mysql_connect("localhost","XXXX","XXXX");
    if (!$con){
        die("can not connect: " . mysql_error());
    }
    mysql_select_db("i5412",$con);

    // Get the current user's info 
    $current_user = wp_get_current_user();


    if(isset($_POST['update'])){ 
        $UpdateQuery = "UPDATE wp_usermeta SET author_bio='".$_POST['author_bio']."'WHERE
        user_id=$current_user and author_bio='".$_POST['hidden']."'";
        mysql_query($UpdateQuery, $con);
    }

    $sql = "SELECT * FROM wp_usermeta";
    $myData = mysql_query($sql,$con);
    while($record = mysql_fetch_array($myData)){
        echo "<form action='page-bio.php' method='post'>";
        echo "<textarea name='author_bio' cols='10' rows='10' value=" . $record['author_bio'];
        echo "<input type='hidden' name='hidden' value=" . $record['author_bio'];
        echo "<input type='submit' name='update' value=update";
        echo "</form>";
    }
    mysql_close($con);
?>
 

Комментарии:

1. Вы забыли закрыть почти все теги элементов формы.

2. echo "<textarea name='author_bio' cols='10' rows='10' value=" . $record['author_bio']; должно быть echo "<textarea name='author_bio' cols='10' rows='10'>" . $record['author_bio'] . "</textarea>";

3. echo "<input type='hidden' name='hidden' value=" . $record['author_bio']; должно быть echo "<input type='hidden' name='hidden' value='" . $record['author_bio'] ."' >";

4. echo "<input type='submit' name='update' value=update"; должно быть echo "<input type='submit' name='update' value='update'>";

5. @ThinkDifferent Пожалуйста, удалите свои комментарии теперь, когда вы отправили ответ.

Ответ №1:

Вам необходимо изменить следующие строки:

 echo "<textarea name='author_bio' cols='10' rows='10' value=" . $record['author_bio'];
echo "<input type='hidden' name='hidden' value=" . $record['author_bio'];
echo "<input type='submit' name='update' value=update";
 

Для

 echo "<textarea name='author_bio' cols='10' rows='10'>" . $record['author_bio'] . "</textarea>";
echo "<input type='hidden' name='hidden' value='" . $record['author_bio']. "'>";
echo "<input type='submit' name='update' value='update'>" ; 
 

Ответ №2:

вы забыли закрыть половину входных тегов, например, echo "<input type='submit' name='update' value=update"; где вы пропустили окончание>

Комментарии:

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

2. Если я добавлю весь код, разве он не будет просто копировать вставлять его и ничему не учиться, вместо того, чтобы направить его в правильном направлении и позволить ему решить проблему и, следовательно, чему-то научиться?

3. Я ценю ваш ограничитель комментариев, но я потратил бесчисленное количество часов, пытаясь узнать, что я хочу сделать. И у меня многое впереди, и иногда мне просто нужно заставить что-то работать, чтобы я не падал духом. Этот код почти работает, но теперь проблема 2, о которой я упоминал, как я и опасался: это шаблон WordPress, вызываемый со страницы WP, и он не принимает $current_user = wp_get_current_user(); То есть, когда я покидаю wordpress для этой страницы php, он не сохраняет текущую пользовательскую переменную, я полагаю,так что это может быть еще одним тупиком для использования php insert с WordPress: (

4. @Limiter Я точно знаю, что вы имеете в виду, но вы знаете, есть люди, которые неправильно читают и просто понижают голос из-за «слишком короткого», «не предоставляет образец» и т. Д.