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

Форум PHP

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

 

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

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

тема: Непонимаю в чем ошибка или это баг PHP
 
 автор: tetron   (02.07.2012 в 13:53)   письмо автору
 
 

игнорирует это правило



            foreach ($_FILES[userfile][type] as $key => $value) 
                {
                    if ($value != "image/jpeg")
                        {
                            $important_information = "Вы можете загружать фотографии с расширением .JPG";
                            header("Location: /index.php?user_account=1&add_photo=1&ads_auto_id=$ads_auto_id&important_information=$important_information");

                        }
                }



а так нет

            foreach ($_FILES[userfile][type] as $key => $value) 
                {
                    if ($value != "image/jpeg")
                        {
                            $important_information = "Вы можете загружать фотографии с расширением .JPG";
                            header("Location: /index.php?user_account=1&add_photo=1&ads_auto_id=$ads_auto_id&important_information=$important_information");
                            exit();

                        }
                }




Вот код полностью

<?php
session_start
(); 

    
// Подключение базы данных
    
require "../settings/db.php";
    
// Подключение модуля защиты
    
require "../protection/protection.php";

    if(
$_SESSION[users_id])
        {
            
// Проверка на авторизацию пользователя
            // Проверка на существование объявления и если есть то кому оно принадлежит
            
$users_id       protection_cutting($_SESSION[users_id]);
            
$users_password protection_cutting($_SESSION[users_password]);
            
$ads_auto_id    protection_cutting_id($_POST[ads_auto_id]);
    
            
// Проверяем пользователя
            
user_authentication($users_id$users_password);

            
// Проверяем доступные объявления к которым есть доступ у пользователя
            
$uaaap_access_ads_sql mysql_query ("SELECT `ads_auto_id` FROM `ads_auto` WHERE `ads_auto_user_id`='$users_id' AND `ads_auto_id`='$ads_auto_id' LIMIT 1") or die ("uaaap №1");
            
$uaaap_access_ads_sql_row mysql_fetch_array ($uaaap_access_ads_sql);
            
            if (
$uaaap_access_ads_sql_row[ads_auto_id] <= 0)
                {
                    
$important_information "Данное объявление вам не принадлежит";
                    
header("Location: /index.php?user_account=1&add_photo=1&ads_auto_id=$ads_auto_id&important_information=$important_information");
                    exit();
                }

            
// Проверка файлов на расширение
            
foreach ($_FILES[userfile][type] as $key => $value
                {
                    if (
$value != "image/jpeg")
                        {
                            
$important_information "Вы можете загружать фотографии с расширением .JPG";
                            
header("Location: /index.php?user_account=1&add_photo=1&ads_auto_id=$ads_auto_id&important_information=$important_information");

                        }
                }
        
        
                
$important_information "выводит это сообщение и игнорит проверку сверху";
                
header("Location: /index.php?user_account=1&add_photo=1&ads_auto_id=$ads_auto_id&important_information=$important_information");
        }
        
?>

  Ответить  
 
 автор: cheops   (02.07.2012 в 15:36)   письмо автору
 
   для: tetron   (02.07.2012 в 13:53)
 

Останавливать скрипт при помощи exit() после переадресации стоит, да и зачем продолжать работу, если принято решение о том, что нужно перейти на другую страницу? Если остановки нет, то скрипт не только продолжает работу, но еще и умудряется зачастую отправить клиенту часть данных. Это исходные коды нужно смотреть, как формируется набор HTTP-заголовков, но было бы логично, если оставался только один из Location, в этом случае описанная вами ситуация вполне возможна. Поэтому exit() добавляйте обязательно.

  Ответить  
 
 автор: tetron   (02.07.2012 в 15:48)   письмо автору
 
   для: cheops   (02.07.2012 в 15:36)
 

Спасибо за консультацию, сомневался. Теперь буду ставить exit().

  Ответить  
 
 автор: confirm   (03.07.2012 в 09:07)   письмо автору
 
   для: tetron   (02.07.2012 в 13:53)
 

Открываем Блокнот, пишем в нем "картинка", сохраняем как image.jpg, и отправляем вам не сервер - ваш скрипт с удовольствием скушает эту "картинку".

  Ответить  
 
 автор: tetron   (22.09.2012 в 19:08)   письмо автору
 
   для: confirm   (03.07.2012 в 09:07)
 

спасибо, поправлю

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

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