Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   [решено] редактирование записи (http://forum.oszone.net/showthread.php?t=235473)

cibin 27-05-2012 18:08 1923459

редактирование записи
 
Вложений: 2
У меня тут странная вещь произошла:
Делаю возможность редактирования справочника, т.е. нажимаешь на ссылку он открывает форму в котором вписан текст который нужно редактировать. В роде бы ни чего сложного, но вот парадокс некоторые тексты выдаёт не полностью и не могу понять почему! Прикладываю скрины и код!

PHP код:

<?php 

require_once "bdconnect.php";
require_once 
"zashita.php";
mysql_query("SET NAMES cp1251");

$edit mysql_fetch_object(mysql_query("SELECT * FROM `bank` WHERE id_bank = '$id_bank'"));

?>



<h1><strong><em>Редактировать наименование Банка</em></strong></h1>
<form action="<?php echo "update_spr_bank.php?id_bank=$id_bank" ?>" method="post" name="form">
<tr>
<td><input name="bank_name" type="text" value="<?php echo $edit->bank_name;?>" size="55" maxlength="100" /></td>
  </tr>
<p>
  <input type="submit" name="create" value="Изменить" />
</p>


</form>

1.jpg - это то как выглядит текст, нажимаю с боку кнопку-ссылку и выдаёт 2.jpg
Я для решение и таблицу заново с связками создал, перед этим всю таблицу очистил и ввёл информацию в ручную, не помогло!
Точно таким же способом создал для другого вида справочника, работает без проблем!

Coutty 27-05-2012 19:47 1923506

Вероятно, дело в кавычках. Заменяйте их на & q u o t ; (без пробелов) перед добавлением в базу данных. Думаю, это поможет.

cibin 27-05-2012 19:55 1923510

Нет, вводил без кавычек! Не помогло!

Sham 28-05-2012 10:24 1923795

Цитата:

Цитата cibin
mysql_fetch_object(mysql_query("SELECT * FROM `bank` WHERE id_bank = '$id_bank'")); »

Делайте через переменную-ресурс. См. php.net

cibin 28-05-2012 11:46 1923826

можно чуть чуть по подробнее!?

Sham 28-05-2012 12:43 1923848

$resource = mysql_query( .......
$edit = mysql_fetch_object($resource);

http://www.php.net/manual/ru/languag...s.resource.php
http://php.net/manual/ru/function.my...tch-object.php

cibin 28-05-2012 13:20 1923872

Странно но помогло то что в место формы input применил textarea

Sham 28-05-2012 13:50 1923887

Цитата:

Цитата Coutty
Вероятно, дело в кавычках. Заменяйте их на & q u o t ; (без пробелов) »

Имеется в виду, что перед выводом текст нужно обрабатывать htmlspecialchars, если в базе лежит не HTML-вариант. Из-за необработанной кавычки часть текста было скрыта (ломаный HTML-код).

cibin 28-05-2012 21:28 1924125

У меня где то токая запись была сохранена и я его применял:
PHP код:

class CcreateEdit extends McreateEdit {
        function 
clean_data($str) { // ф-ция для очистки введенного контента
            
if(get_magic_quotes_gpc() == 1) { // если на сервере включен magic quotes, срабатывает "ручная" очистка
                
$str str_replace('\"'"&quot;"$str) ;
                
$str str_replace("\'""'"$str) ;
                
$str str_replace("<""&lt;"$str) ;
                
$str str_replace(">""&gt;"$str) ;
            } else { 
// если на сервере выключен magic quotes, срабатывает "ручная" очистка
                
$str htmlspecialchars($str,ENT_QUOTES,"cp1251",false) ;
            }
            return 
$str ;
        } 

Но это не помогло!
Я как токовой понимал что проблема в кавычке, что нужно применить htmlspecialchars, но почему помогла запись типа:

PHP код:

<textarea name="bank_name" cols="55" rows="1"><?php echo $edit->bank_name;?></textarea>

???

Sham 28-05-2012 22:45 1924175

Цитата:

Цитата cibin
Но это не помогло! »

тут какбы не медицинский форум

Цитата:

Цитата cibin
но почему помогла запись типа: »

неэкранированые кавычки (как и символы > < &) вне тегов показываются браузерами нормально, хотя это тоже нарушение разметки.

cibin 29-05-2012 20:56 1924700

Цитата:

Цитата Sham
Имеется в виду, что перед выводом текст нужно обрабатывать htmlspecialchars, если в базе лежит не HTML-вариант. Из-за необработанной кавычки часть текста было скрыта (ломаный HTML-код). »

Помогла токая запись:
PHP код:

<input name="bank_name" type="text" value="<?=htmlspecialchars$edit->bank_name )?>" size="55" maxlength="100" />



Время: 23:40.

Время: 23:40.
© OSzone.net 2001-