Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Перенаправление из функции

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (3): [1] 2 3 »   

> Без описания
MANN
Отправлено: 12 Апреля, 2011 - 12:45:51
Post Id


Новичок


Покинул форум
Сообщений всего: 25
Дата рег-ции: Март 2011  


Помог: 0 раз(а)




Народ помогите сделать перенаправление из функции.
Есть файл main.php в нем включен файл function.php в котором определены все функции.

В файле main.php осуществляется вызов функции для удаления новостной рубрики
CODE (html):
скопировать код в буфер обмена
  1. <td class="Nmodif"><? deleteFuncNews($row['News_id']);?></td>

Теперь функция:
PHP:
скопировать код в буфер обмена
  1.  
  2. function deleteFuncNews($a) {
  3.         echo "<a href=main.php?id=".$a.">Удалить</a>";
  4.         $a=$_GET['id'];
  5.         $a=intval($a);
  6.         mysql_query ('DELETE FROM news WHERE News_id='.$a.'');
  7. }

Все удаляется нормально, но только после нажатия "Удалить" необходимо обновить страницу, или просто перезайти заного в main.php. Как в теле функции сделать самопереадресацию?

Использовал header ("location: http://main.php"); exit(); Но выскакивает сообщение об уже отправленных заголовках.

(Отредактировано автором: 12 Апреля, 2011 - 12:48:59)

 
 Top
SAD
Отправлено: 12 Апреля, 2011 - 12:48:25
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




echo '<meta http-equiv="refresh" content="5;url=http://example.com/" />';

(Отредактировано автором: 12 Апреля, 2011 - 12:49:49)

 
 Top
MANN
Отправлено: 12 Апреля, 2011 - 12:58:57
Post Id


Новичок


Покинул форум
Сообщений всего: 25
Дата рег-ции: Март 2011  


Помог: 0 раз(а)




В общем не стану редактировать начало поста, напишу как пытался решить:
1) header ("location: http://main.php");
exit(); // Тут выскакивает ошибка об отправленных заголовках
2) Аналогично посту SAD только использовав все теги <html><head><meta>...
PHP:
скопировать код в буфер обмена
  1.  
  2. function deleteFuncNews($a) {
  3. echo "<a href=main.php?id=".$a.">Удалить</a>";
  4. $a=$_GET['id'];
  5. $a=intval($a);
  6. mysql_query ('DELETE FROM news WHERE News_id='.$a.'');
  7. echo "<meta http-equiv=refresh content=5;url=http://site.ru/main.php>";
  8.  

// Тут страница main.php постоянно обновляется через 5 сек пока не удалишь сообщение. Возможно ли чтобы рефреш был только 1 раз как только удалишь нужную рубрику

(Отредактировано автором: 12 Апреля, 2011 - 13:00:21)

 
 Top
Viper
Отправлено: 12 Апреля, 2011 - 13:10:10
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




CODE (html):
скопировать код в буфер обмена
  1. <script type="text/javascript">document.location.href = 'http://site.ru/main.php';</script>

тупой варинт для ленивых бороться с 'header already eated'


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
MANN
Отправлено: 12 Апреля, 2011 - 13:23:32
Post Id


Новичок


Покинул форум
Сообщений всего: 25
Дата рег-ции: Март 2011  


Помог: 0 раз(а)




Viper пишет:
CODE (html):
скопировать код в буфер обмена
  1. <script type="text/javascript">document.location.href = 'http://site.ru/main.php';</script>

тупой варинт для ленивых бороться с 'header already eated'


Что то не то вышло страница постоянно обновляется. Код вставил в main.php
CODE (html):
скопировать код в буфер обмена
  1.  
  2.  
  3. <head>
  4.         <meta http-equiv="Content-Type" content="text/html; charset=Windows-1251">
  5.         <link rel="stylesheet" type="text/css" href="../style/style.css">
  6.         <link rel="stylesheet" type="text/css" href="../style/main.css">
  7.         <!--<script type="text/javascript">document.location.href = 'http://site.ru/main.php';</script>-->
  8. </head>
  9.  

(Отредактировано автором: 12 Апреля, 2011 - 13:24:37)

 
 Top
SAD
Отправлено: 12 Апреля, 2011 - 13:30:40
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




жесть
приведите более подробный код
 
 Top
MANN
Отправлено: 12 Апреля, 2011 - 13:56:49
Post Id


Новичок


Покинул форум
Сообщений всего: 25
Дата рег-ции: Март 2011  


Помог: 0 раз(а)




щас подробно выложу
(Добавление)
PHP:
скопировать код в буфер обмена
  1.  
  2. $itog_user='Admin';
  3. $itog_pass='Admin';
  4. $Ntitle=$_REQUEST['title'];
  5. $Ntext=$_REQUEST['news'];
  6. $Ndate=date("H:i:s d-m-Y");
  7. $Nuser=$_REQUEST['user'];
  8. include "mysql_connect.php";
  9. mysql_query('CREATE TABLE IF NOT EXISTS news(
  10.        News_id INT AUTO_INCREMENT PRIMARY KEY NOT NULL,
  11.        Ntext TEXT,
  12.        Ntitle VARCHAR(255),
  13.        Ndate VARCHAR(255),
  14.        Nuser VARCHAR(255))') or die ("Не могу создать таблицу в базе данных: ".mysql_error());
  15. if (isset($_REQUEST['Go'])) {
  16. if ($_REQUEST['title']!=false && $_REQUEST['user']!=false && $_REQUEST['news']!=false){
  17. mysql_query("INSERT INTO news(Ntitle, Ntext, Ndate, Nuser) VALUES('$Ntitle','$Ntext','$Ndate','$Nuser')");     
  18. header("Location: http://{$_SERVER['SERVER_NAME']}{$_SERVER['SCRIPT_NAME']}?$rnd");
  19. exit();        
  20. }}
  21. include "function.php";
  22.  

CODE (html):
скопировать код в буфер обмена
  1.  
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=Windows-1251">
  5. <link rel="stylesheet" type="text/css" href="../style/style.css">
  6. <link rel="stylesheet" type="text/css" href="../style/main.css">
  7. </head>
  8. <body>
  9. <div id="index_main">
  10. <div><?php include "../header.html";?></div>
  11. <div id="body_main">
  12. <div id="layer_logo_main"><h1>главная</h1></div>
  13. <div></br></div>       
  14. <div align="center">
  15.       <table border="0" width="780" height="1100" cellpadding="2" cellspacing="2">
  16.       <tr>
  17.       <td height="900" align="center" valign="top">
  18.       <table border="0" height="900" width="780">
  19.       <tr>
  20.       <td width="630" height="900" valign="top">
  21.       <?$result=mysql_query('SELECT News_id,Ndate,Ntitle,Nuser,Ntext FROM news ORDER BY News_id DESC LIMIT 9') or die ("Не могу выполнить запрос к базе данных:". mysql_error());
  22. while ($row=mysql_fetch_array($result)){?>
  23.       <table class="view_news" align="center" cellpadding="2" border="0">
  24.       <tr>
  25.       <td colspan="4" align="left" class="Ntitle_news"><a href=news.php class="title"><?echo $row['Ntitle']?></a></td>
  26.       </tr>
  27.       <tr>
  28.       <td colspan="4" align="left" class="Ntext"><p class="text"><?echo $row['Ntext']?></p></td>
  29.       </tr>
  30.       <tr>
  31.       <td align="left" width="120" class="Ndate"><?echo $row['Ndate']?></td>
  32.       <td align="left" width="200" class="Nuser">Автор новости: <?echo $row['Nuser']?></td>
  33.       <?php
  34.         if (($_SESSION['login']!='') && ($_SESSION['password']!='')) {
  35.         if (($_SESSION['login']==$itog_user) && ($_SESSION['password']==$itog_pass))?>  <td class="Nmodif">Редактировать</td>
  36.         <td class="Nmodif"><? deleteFuncNews($row['News_id']);?></td>
  37.         <?}?>
  38.         </tr>
  39.         </table>
  40.         <HR noshade size="1">
  41.         <?}?>  
  42.         </td>
  43.         </tr>
  44.         </table>       
  45.         </td>          
  46.         </tr>
  47.         </table>                       
  48.         </div>
  49. </div>
  50. <div><?php include "../foot.html";?></div>     
  51. </div>
  52. </body>
  53. </html>
  54.  


function.php
PHP:
скопировать код в буфер обмена
  1.  
  2. function deleteFuncNews($a) {
  3. echo "<a href=main.php?id=".$a.">Удалить</a>";
  4. $a=$_GET['id'];
  5. $a=intval($a);
  6. mysql_query ('DELETE FROM news WHERE News_id='.$a.'');
  7. }
  8.  

(Отредактировано автором: 12 Апреля, 2011 - 14:40:56)

 
 Top
SAD
Отправлено: 12 Апреля, 2011 - 14:41:58
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




вы извращенец
зачем так делать
вставьте ссылку, в ней пропишите адрес скрипта удаления, например: delete.php?id=some_id
в том скрипте выполняется удаление и перебрасывает на страницу main.php

(Отредактировано автором: 12 Апреля, 2011 - 14:44:39)

 
 Top
MANN
Отправлено: 12 Апреля, 2011 - 14:50:21
Post Id


Новичок


Покинул форум
Сообщений всего: 25
Дата рег-ции: Март 2011  


Помог: 0 раз(а)




SAD пишет:
вы извращенец
зачем так делать
вставьте ссылку, в ней пропишите адрес скрипта удаления, например: delete.php?id=some_id
в том скрипте выполняется удаление и перебрасывает на страницу main.php


так и было сделано первоначально, но хотелось отказаться от лишних файлов для удаления, редактирования и тд и просто создать для всего этого функции в одном файле

(Отредактировано автором: 12 Апреля, 2011 - 14:51:00)

 
 Top
SAD
Отправлено: 12 Апреля, 2011 - 14:51:53
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




то что у вас сейчас написано - уже говнокод
зачем создавать таблицу в скрипте??
вы еще не видели много файлов
 
 Top
MANN
Отправлено: 12 Апреля, 2011 - 14:55:15
Post Id


Новичок


Покинул форум
Сообщений всего: 25
Дата рег-ции: Март 2011  


Помог: 0 раз(а)




ну я пока новичок в оформлении, просто решил функции освоить, потом буду разделять код страницы
(Добавление)
народ ну как быть то с функцией?
 
 Top
Viper
Отправлено: 12 Апреля, 2011 - 15:19:41
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




MANN заверните в класс необходимые вам функции. и будет у вас 1 файл если вам уж так критично их кол-во.

ЗЫ! Хотя я понимаю можно было бы призадуматься при кол-ве файлов за 5k...

SAD Улыбка


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
MANN
Отправлено: 12 Апреля, 2011 - 15:24:03
Post Id


Новичок


Покинул форум
Сообщений всего: 25
Дата рег-ции: Март 2011  


Помог: 0 раз(а)




Viper пишет:
MANN заверните в класс необходимые вам функции. и будет у вас 1 файл если вам уж так критично их кол-во.

ЗЫ! Хотя я понимаю можно было бы призадуматься при кол-ве файлов за 5k...

SAD Улыбка


Классы еще не проходилУлыбка А проблему с переадресацией функцией как решить?
 
 Top
vsll
Отправлено: 12 Апреля, 2011 - 15:36:29
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 530
Дата рег-ции: Февр. 2011  


Помог: 10 раз(а)




function deleteFuncNews($a) {
echo "<a href=main.php?id=".$a.">Удалить</a>";
$a=$_GET['id'];
$a=intval($a);
mysql_query ('DELETE FROM news WHERE News_id='.$a.'');
redirect ($location);
}

function redirect($location) {
header("Location: ".str_replace("&amp;", "&", $location));
exit;
}

$location - адрес
 
 Top
MANN
Отправлено: 12 Апреля, 2011 - 17:50:31
Post Id


Новичок


Покинул форум
Сообщений всего: 25
Дата рег-ции: Март 2011  


Помог: 0 раз(а)




Vasiliya пишет:
function deleteFuncNews($a) {
echo "<a href=main.php?id=".$a.">Удалить</a>";
$a=$_GET['id'];
$a=intval($a);
mysql_query ('DELETE FROM news WHERE News_id='.$a.'');
redirect ($location);
}

function redirect($location) {
header("Location: ".str_replace("&amp;", "&", $location));
exit;
}

$location - адрес


Снова проблема с заголовками :

Warning: Cannot modify header information - headers already sent by (output started at

Код:
PHP:
скопировать код в буфер обмена
  1.  
  2. function deleteFuncNews($a) {
  3.         echo "<a href=main.php?id=".$a.">Удалить</a>";
  4.         $a=$_GET['id'];
  5.         $a=intval($a);
  6.         mysql_query ('DELETE FROM news WHERE News_id='.$a.'');
  7.         $location='http://site.ru/main.php';
  8.         redirect ($location);
  9. }
  10. function redirect($location){
  11.         header("Location:".str_replace("&","&",$location));
  12.         exit;
  13. }
  14.  
 
 Top
Страниц (3): [1] 2 3 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB