Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Форма не отправляеть одну перемену
 
 автор: Jovidon   (11.08.2012 в 20:24)   письмо автору
 
 

Здарова, народ

Есть форма add.php которы получаеть перемену cat_les

<form action="add.php" method="POST" enctype="multipart/form-data">
<label>Ном: <br /><input type="text" name="title" size="65" /></label><br />
<label>Мант: <br /><textarea name="lesson" cols="50" rows="20"></textarea></label><br />
Аудио: <br /><input type="file" name="file" />
<input type="hidden" name="cat_les" value="<? echo $_GET["id"]; // переммена которы получил через GET  ?>" />
<br /><br /><input type="image" src="../img/ok.png" width="48" height="48" />
</form>

Когда отправляеть перемен $cat_les ищезаеть.
Что не так?

  Ответить  
 
 автор: confirm   (11.08.2012 в 20:31)   письмо автору
 
   для: Jovidon   (11.08.2012 в 20:24)
 

Так у вас не только это "ищезаеть", у вас и буквы в словах пропадают. У вас что, клавиатура неполноценная, или клавиши не все?
А вы проверяли, содержит ли атрибут value этого поля значение?
И так нельзя вставлять значения в форму, их надо обрабатывать:
<? echo htmlspecialchars($_GET["id"]); ?>

  Ответить  
 
 автор: Jovidon   (11.08.2012 в 20:37)   письмо автору
 
   для: confirm   (11.08.2012 в 20:31)
 

Это форма для админа.
Если админ добовляеть что та их тоже надо праверить?

  Ответить  
 
 автор: confirm   (11.08.2012 в 20:46)   письмо автору
 
   для: Jovidon   (11.08.2012 в 20:37)
 

Надо пропускать чрез указанную функцию то, что приходит извне, не важно кому и от кого.
А проверить, это значит убедиться есть ли на странице, где эта форма у вас, это значение, которое "пропадет". А это нужно сделать в браузере - просмотреть исходный код страницы.
Если бы оно там существовало, то никуда бы оно не делось, то есть, его там нет попросту, потому и не получаете вы его, либо вообще форма "разбита", что вполне может быть, так как вы необработанные данные вываливаете в форму.

  Ответить  
 
 автор: Jovidon   (11.08.2012 в 20:53)   письмо автору
 
   для: confirm   (11.08.2012 в 20:46)
 

Этот способ тоже не работает

Форма и обработчик

<form action="add.php" method="POST" enctype="multipart/form-data">
<label>Ном: <br /><input type="text" name="title" size="65" /></label><br />
<label>Мант: <br /><textarea name="lesson" cols="50" rows="20"></textarea></label><br />
Аудио: <br /><input type="file" name="file" />
<input type="hidden" name="cat_les" value="<? echo htmlspecialchars($_GET["id"]); ?>" />
<br /><br /><input type="image" src="../img/ok.png" width="48" height="48" />
</form>

<?php 
if(!empty($_POST))
   {
        
        
$err = array();
        if(empty(
$_POST["title"]))                  $err[] = "Номашро нанавиштед!";
        if(empty(
$_POST["lesson"]))                 $err[] = "Матнро нанавиштед!";
        if(
$_FILES["file"]["name"]["error"] > 0)    $err[] = "Аудиоро нагузоштед!";
        
        
$cat        $_POST["cat_les"];
        
$title      $_POST["title"];
        
$lesson     $_POST["lesson"];
        
$mp3_name   $_FILES["file"]["name"];
        
$date       date("Y-m_d");
        
        if(empty(
$err))
        {
            
copy($_FILES['file']['tmp_name'],"../../files/mp3_lesson/".$_FILES['file']['name']);
            
            
$tbl_name 'system_lesson';
            
$query "INSERT INTO ".$tbl_name."
                      VALUES(0,'
$cat','$title','$lesson','$mp3_name','1','$date')";
            
$result mysql_query($query) or die(mysql_error() . "<strong class='error'>Ворид карда нашуд! :(</strong>");
            if(
$result) echo "<span class='true'>Бо муваффак ворид карда шуд! :)</span>";
        }
        
        if(!empty(
$err))
        {
            foreach(
$err as $error)
            {
                echo 
"<span class='error'>".$error."</span><br />";
            }
        }
    }
?>

  Ответить  
 
 автор: confirm   (11.08.2012 в 20:59)   письмо автору
 
   для: Jovidon   (11.08.2012 в 20:53)
 

Это не способ, это ваша ОБЯЗАННОСТЬ пропускать через эту функцию выводимые на страницу данные! Как и нельзя так вносить данные в базу!

Вы знаете как просмотреть исходный код html-страницы? Вот сделайте это и посмотрите код своей формы ПРЕД ОТПРАВКОЙ ее. Есть ли в ней значение у cat_les?

  Ответить  
 
 автор: Jovidon   (11.08.2012 в 21:02)   письмо автору
 
   для: confirm   (11.08.2012 в 20:59)
 

а а
ощибка
<b>Notice</b>: Undefined index: id in <b>D:\xampp\htdocs\sitei.mo\admin\lesson\add.php</b> on line <b>33</b>

  Ответить  
 
 автор: confirm   (11.08.2012 в 21:08)   письмо автору
 
   для: Jovidon   (11.08.2012 в 21:02)
 

У вас эта переменная вообще не приходит на данную страницу, а вы ее в форму вставляете, а потом пытаетесь получить.

  Ответить  
 
 автор: Jovidon   (11.08.2012 в 21:09)   письмо автору
 
   для: confirm   (11.08.2012 в 20:59)
 

>это ваша ОБЯЗАННОСТЬ пропускать через эту функцию выводимые на страницу данные!

Дайте ссылку как зашитить сайть

5 месяц ищу книгу головолмки для хакера ни где нет.

Я знаю что нечего не знаю.

  Ответить  
 
 автор: confirm   (11.08.2012 в 21:49)   письмо автору
 
   для: Jovidon   (11.08.2012 в 21:09)
 

Нет, такой ссылки я вам дать не могу, потому, что не знаю сетевого ресурса, где бы было описано все касающееся безопасности. Безопасность веб-приложений, это серьезный и обширный вопрос, что-то касающееся баз данных можно прочесть на одних ресурсах, что-то касающееся серверных скриптов на других, о html еще где-то... В общем искать надо, есть в сети много информации по данным вопросам.

Что касается htmlspecialchars(), то это не обязательно вопрос безопасности. Вот код:
<?
if($_POST) {
  echo
$_POST['txt']; 
}
?>
<form method="post">
<textarea name="txt"><? echo "Текстовая область начинается с открывающего тега <textarea>,
и заканчивается закрывающим тегом </textarea>"
?></textarea>
<input type="submit" value="Send" />
</form>
Что наблюдается на странице, какова форма? И что получается после ее отправки?

А теперь так:
<?
if($_POST) {
  echo 
htmlspecialchars($_POST['txt']); 
}
?>
<form method="post">
<textarea name="txt"><? echo htmlspecialchars("Текстовая область начинается с открывающего тега <textarea>,
и заканчивается закрывающим тегом </textarea>"
); ?></textarea>
<input type="submit" value="Send" />
</form>
А теперь как?

Если так выводить данные, не обработав их, то можно и вторгнуться в компьютер вашего пользователя, украв у него кое что ценное. Этот пример ничего не ворует, он просто демонстрирует, что произойдет на странице пользователя, если вы необработанные данные пришедшие из формы выведите на страницу:
<?
$_POST
['text'] = '<script>alert("Я готов похитить cookies пользователя!")</script>';
echo 
'<p>Пользователь Jovidon прислал следующее сообщение'.$_POST['text'].'</p>';

А если их обработать то ничего страшного для пользователя уже не произойдет:
<?
$_POST
['text'] = '<script>alert("Я готов похитить cookies пользователя!")</script>';
echo 
'<p>Пользователь Jovidon прислал следующее сообщение'.htmlspecialchars($_POST['text']).'</p>';

Открывайте руководство РНР и прочтите об этой функции, что она делает.

  Ответить  
 
 автор: Киналь   (11.08.2012 в 21:28)   письмо автору
 
   для: Jovidon   (11.08.2012 в 20:53)
 

Это на каком-то языке или просто бессмыслица?

  Ответить  
 
 автор: Jovidon   (11.08.2012 в 21:39)   письмо автору
 
   для: Киналь   (11.08.2012 в 21:28)
 

не понял ваш вопрос?

  Ответить  
 
 автор: Киналь   (11.08.2012 в 21:48)   письмо автору
 
   для: Jovidon   (11.08.2012 в 21:39)
 

> Бо муваффак ворид карда шуд!

Это просто набор букв?

  Ответить  
 
 автор: Jovidon   (11.08.2012 в 21:57)   письмо автору
 
   для: Киналь   (11.08.2012 в 21:48)
 

:)))

Это на Таджикском языке.

  Ответить  
 
 автор: Киналь   (11.08.2012 в 20:48)   письмо автору
 
   для: Jovidon   (11.08.2012 в 20:24)
 

Напишите в add.php строчки:
echo '<pre>';
print_r($_POST);
echo ''</pre>'';

Результат давайте сюда.

  Ответить  
 
 автор: Jovidon   (11.08.2012 в 20:56)   письмо автору
 
   для: Киналь   (11.08.2012 в 20:48)
 


Array
(
    [title] => title
    [lesson] => lesson
    [cat_les] => 

Notice:  Undefined index: id in D:\xampp\htdocs\sitei.mo\admin\lesson\add.php on line 33


    [x] => 25
    [y] => 30
)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования