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

Форум PHP

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

 

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

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

тема: согласно условия перейти на другую страницу
 
 автор: MIB   (14.04.2008 в 19:23)   письмо автору
 
 

Господа, подскажите, ниже приведён скрипт, как написать чтоб он переводил на определённую страницу и переносил с собой переменные

<?php

$pn = $_POST['pn'];

$q = mysql_query ("select * from table where pn = '$pn'");

if ($q == '')

{

// переходим на страницу add.php

}

else
{

// переходим на страницу edit.php

}
?>

если через META, то почему-то он не передаёт глобальные переменные...

   
 
 автор: sim5   (14.04.2008 в 19:41)   письмо автору
 
   для: MIB   (14.04.2008 в 19:23)
 


<?
if ($q == ''header("Location: add.php");
else 
header("Location: edit.php"); 

После имени скрипта можете указать и передаваемые парметры, если нужно, например:

<?
header
("Location: add.php?par1=$var1&par2=$var2");

   
 
 автор: MIB   (14.04.2008 в 19:55)   письмо автору
 
   для: sim5   (14.04.2008 в 19:41)
 

не хочет... в любом случае переводит на add.php...

   
 
 автор: sim5   (14.04.2008 в 19:56)   письмо автору
 
   для: MIB   (14.04.2008 в 19:55)
 

В любом случае, значит ваша переменная $q всегда пуста.

   
 
 автор: MIB   (14.04.2008 в 20:04)   письмо автору
 
   для: sim5   (14.04.2008 в 19:56)
 

может мне просто задачу надо сформулировать по-другому:

на странице admin.php мы вводим данные, которые передаются в check.php который смотрит на наличие совпадений в БД, критерий переменная 'pn', если запись в БД существует, то мы её редактируем, если нет, то добавляем новую запись. Так сказать хочу предотвратить дублирование записей в БД, но и не исключить их изменения....

   
 
 автор: sim5   (14.04.2008 в 20:12)   письмо автору
 
   для: MIB   (14.04.2008 в 20:04)
 

Без разницы чего вы хотите, у вас выполняется условие:
если $q имеет пустое значение, то перейти на страницу add.php. Вы после запроса получили ресурс, и проверяете его не правильно, вам нужно проверять есть ли наличие записей в полученном запросе, а не является ли запрос пустым.

   
 
 автор: MIB   (14.04.2008 в 20:16)   письмо автору
 
   для: sim5   (14.04.2008 в 20:12)
 

а как это сделать? не могу допетрить... всё верно Вы говорите... как мне проверить наличие записей в полученном запросе?

   
 
 автор: MIB   (14.04.2008 в 20:20)   письмо автору
 
   для: MIB   (14.04.2008 в 20:16)
 

Warning: Cannot modify header information - headers already sent by (output started at Z:\home\test1.ru\www\check.php:5) - это о чём он?

   
 
 автор: Valick   (14.04.2008 в 20:42)   письмо автору
 
   для: MIB   (14.04.2008 в 20:20)
 

О том что заголовки посылаете после вывода в браузер


<? 
if ($qheader("Location: edit.php")
else 
header("Location: add.php")



пробуйте так

   
 
 автор: sim5   (14.04.2008 в 20:45)   письмо автору
 
   для: MIB   (14.04.2008 в 20:20)
 

Вам надо читать и изучать документацию, вот о MySQL. Не думайте, что я вас пытаюсь "отфутболить", но вы должны знать это, если хотите что-то сделать.
По второму вопросу, это значит, что вы передаете заголовок после того, когда в браузер уже был вывод. Заголовки же надо передавать до любого вывода в браузер, даже до тега <?php не должно быть пробелов, не говоря уже об остальном.

   
 
 автор: Valick   (14.04.2008 в 20:49)   письмо автору
 
   для: sim5   (14.04.2008 в 20:45)
 

до тега <?php не должно быть пробелов

Это же относится к принклюженным файлам, там тоже не должно быть ни выводов ни пробелов не только перед <?php но и после ?>

   
 
 автор: MIB   (14.04.2008 в 20:57)   письмо автору
 
   для: Valick   (14.04.2008 в 20:49)
 

"Warning" был из-за того что я не подключился к БД.... про запросы - понял, буду искать...

   
 
 автор: sim5   (14.04.2008 в 20:59)   письмо автору
 
   для: MIB   (14.04.2008 в 20:57)
 

Да, вывод ошибки, это тоже вывод в браузер, соответственно вы получите сообщение о невозможности передачи заголовка.

   
 
 автор: MIB   (14.04.2008 в 21:00)   письмо автору
 
   для: MIB   (14.04.2008 в 20:57)
 

ответ прост - " if (mysql_num_rows($q) == 0) "!!! Спасибо за пинок... ))

   
 
 автор: Usta   (14.04.2008 в 20:04)   письмо автору
 
   для: MIB   (14.04.2008 в 19:23)
 

>
>$q = mysql_query ("select * from table where pn = '$pn'");
>
Можно убрать ковычки одинарные. "select * from table WHERE pn=$pn");
А глобальную переменную можно передать так:

header("Location: add.php?par1=$pn"); 

   
Rambler's Top100
вверх

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