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

Форум PHP

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

 

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

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

тема: При выходе из сценария рушится html-таблица. Как с этим бороться?
 
 автор: Evgen   (01.04.2006 в 01:19)   письмо автору
 
 

Из-за недостатка опыта не получается корректно построить HTML-таблицу, содержащую сценарий php. Подскажите пожалста, какой выход?

Допустим, структура страницы:
таблица из трех колонок, во второй находится содержательная часть - результат выполнения сценария:

<table>
<tr><td>1 колонка</td>

<td>2 колонка

<?php
    
if(условие){
        
процедура_1;
        exit();
    }
        else{
        
процедура_2;
    }
?>
</td>

<td>3 колонка</td></tr>

</table>

В случае, если в условном операторе выполняется процедура_1 и следующий за ней exit(), то 3 колонка таблицы не формируется - соответственно нарушается стиль страницы. Как правильно поступать в таких случаях?

   
 
 автор: kokos   (01.04.2006 в 14:20)   письмо автору
 
   для: Evgen   (01.04.2006 в 01:19)
 

А зачем вообще использовать exit? Он прекращает работу сервера над документом. Просто проделай процедуру_1 без exit'а. А вообще напиши поный листинг скрипта и будет тебе полный вразумительный ответ.

   
 
 автор: Evgen   (02.04.2006 в 01:50)   письмо автору
 
   для: kokos   (01.04.2006 в 14:20)
 

Не вопрос!
Плиз - ...

<HTML>
<head>
      <title>Регистрация нового клиента</title>
</head>

<body>
      <H1><P align="center">ЗАГОЛОВОК</H1>
      <hr align="center" width="98%">

<table border="0" cellpadding="1" cellspacing="1" align="left" valign="top" width="100%">
    <tr>
<!-- 1-й столбец таблицы -->
        <td valign="top" width="25%" bgcolor="#D0D0D0">
            <table align="center" valign="middle" border="1" cellpadding="3" cellspacing="2">
                   <tr>
                       <td><font size="2"><a href="http://localhost/index.php">На первую страницу</a></font></td>
                   </tr>
                   <tr>
                       <td><font size="2"><a href="./form/query.html">Задать вопрос</a></font></td>
                   </tr>
            </table>

        </td>
<!-- 2-й столбец таблицы -->
         <td width="50%" bgcolor="#FFFFFF">
               <!-- Сценарий регистрации клиента -->
<?php
//проверка на заполнение всех необходимых полей
if (!$name || !$mail)
{
   echo 
"Не заполнено одно из полей формы.<br>
   После заполнения повторите попытку."
;
   exit;
}
//подключение к базе
include "config.php";
    
//Проверяем вновь вводимые данные на совпадения в базе
    
$query "SELECT * FROM customers WHERE email='".$_POST['mail']."'";
    
$result mysql_query($query);
    if(!
$result)
    {
    echo 
"Ошибка выполнения запроса";
    exit();
    }
//обработка полученного запроса
$num_rows=mysql_num_rows($result);
$namedb=mysql_result($result,0,"name");
if (
$num_rows<1)
{
// запрос к базе - добавление нового клиента ...

echo "<p>$name : $mail : Запись добавлена";
exit();
}
       else{
       echo 
"<p>$name : $mail : Запись не добавлена";
       exit();
       }
}
elseif (
$name!=$namedb)
{
//мыло есть, имя не совпадает
echo "<p>Есть уже такое мыло! Забыл пароль?.. и т.п.";
exit();
}
else
{
//мыло и имя совпадают
echo "<p>Заходи в двери - как положено!.. и т.п.";
exit();
}
?>
</td>
<!-- 3-й столбец таблицы -->
         <td width="25%" align="right" valign="top" bgcolor="#D0D0D0"><font size="2">
              <p>Реклама<br>
              Реклама<br>
              Реклама<br>
              Реклама<br>
              Реклама<br>
              Реклама</p></font>
         </td>
</tr>
</table>
</body>
</HTML>

   
 
 автор: Drago   (02.04.2006 в 02:23)   письмо автору
 
   для: Evgen   (02.04.2006 в 01:50)
 

Не знаю, как будет правильнее в данном случае, но если вам так нужно использовать функцию exit(), то можно нужный html код записать в переменную

<?php
$html 
"</td> 
<!-- 3-й столбец таблицы --> 
         <td width=\"25%\" align=\"right\" valign=\"top\" bgcolor=\"#D0D0D0\"><font size=\"2\"> 
              <p>Реклама<br> 
              Реклама<br> 
              Реклама<br> 
              Реклама<br> 
              Реклама<br> 
              Реклама</p></font> 
         </td> 
</tr> 
</table> 
</body> 
</HTML>"
;
?>

и выводить вместе с exit()

<?php
exit($html);
?>

   
 
 автор: kokos   (02.04.2006 в 13:18)   письмо автору
 
   для: Evgen   (02.04.2006 в 01:50)
 

По-моему структура циклов нарушена (Количество символов "{" не сооттветствует количеству символов "}"). Я тут попробовал исправить, но наверное это не то:

<HTML>
<head>
      <title>Регистрация нового клиента</title>
</head>

<body>
      <H1><P align="center">ЗАГОЛОВОК</H1>
      <hr align="center" width="98%">

<table border="0" cellpadding="1" cellspacing="1" align="left" valign="top" width="100%">
    <tr>
<!-- 1-й столбец таблицы -->
        <td valign="top" width="25%" bgcolor="#D0D0D0">
            <table align="center" valign="middle" border="1" cellpadding="3" cellspacing="2">
                   <tr>
                       <td><font size="2"><a href="http://localhost/index.php">На первую страницу</a></font></td>
                   </tr>
                   <tr>
                       <td><font size="2"><a href="./form/query.html">Задать вопрос</a></font></td>
                   </tr>
            </table>

        </td>
<!-- 2-й столбец таблицы -->
         <td width="50%" bgcolor="#FFFFFF">
               <!-- Сценарий регистрации клиента -->
<?php
//проверка на заполнение всех необходимых полей
if (!$name || !$mail)
{
   echo 
"Не заполнено одно из полей формы.<br>
   После заполнения повторите попытку."
;
}
else{
//подключение к базе
include "config.php";
    
//Проверяем вновь вводимые данные на совпадения в базе
    
$query "SELECT * FROM customers WHERE email='".$_POST['mail']."'";
    
$result mysql_query($query);
    if(!
$result)
    {
    echo 
"Ошибка выполнения запроса";
    }
//обработка полученного запроса
$num_rows=mysql_num_rows($result);
$namedb=mysql_result($result,0,"name");
if (
$num_rows<1)
{
// запрос к базе - добавление нового клиента ...

echo "<p>$name : $mail : Запись добавлена";
}
       else{
       echo 
"<p>$name : $mail : Запись не добавлена";
       }
elseif (
$name!=$namedb)
{
//мыло есть, имя не совпадает
echo "<p>Есть уже такое мыло! Забыл пароль?.. и т.п.";
}
else
{
//мыло и имя совпадают
echo "<p>Заходи в двери - как положено!.. и т.п.";
}
}
?>
</td>
<!-- 3-й столбец таблицы -->
         <td width="25%" align="right" valign="top" bgcolor="#D0D0D0"><font size="2">
              <p>Реклама<br>
              Реклама<br>
              Реклама<br>
              Реклама<br>
              Реклама<br>
              Реклама</p></font>
         </td>
</tr>
</table>
</body>
</HTML>

А ввобще Drago дело говорит.

   
 
 автор: Evgen   (03.04.2006 в 01:44)   письмо автору
 
   для: kokos   (02.04.2006 в 13:18)
 

Со скобками я действительно немного ошибся в примере - очепятка!..

Но то, что посоветовал Drago - работает, как надо !

Спасибо, уважаемые!!!

   
Rambler's Top100
вверх

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