#php #html #wordpress
#php #HTML #wordpress
Вопрос:
Итак, я пытаюсь заставить этот php-код отображать текстовую область и кнопку отправки, чтобы пользователь мог отправить биографию, которая будет вставлена в БД. У меня есть несколько проблем с этим кодом:
- По какой-то причине текстовая область заполнена фактической формой 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>.
- Я использую 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 Я точно знаю, что вы имеете в виду, но вы знаете, есть люди, которые неправильно читают и просто понижают голос из-за «слишком короткого», «не предоставляет образец» и т. Д.