[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не выполняется запрос внутри функции
Xes
У меня есть форма обратной связи которая работатет и отправляет сообщения . Форма собствено слизана с php-mailer.ru помоему или чтото в этом роде.
В коде есть такие строки функция отправки мыла
function complete_mail()
....
....
if($sendemail == 'No') show_form(); // Если $sendemail не NO все поля заполнены делаем операторы ниже
$query ="";
$sql = mysql_query($query, $db);


Вопрос в том что у меня в шапке сайта которая инклюдится к файлу идет подключения к БД. Т.е. все сценарии подключены к БД не зависимо будут там запросы к базе или нет.
Так вото почемуто запрос это не проходит к базе данных.
Когда все параметры подключения пишу непосредсвенно в функции function complete_mail() все работает.
Почему мой запрос написанный в функции function complete_mail() не видит подключения.
Но при этом $sql = mysql_query($query, $db); - не какой ошибки не выводит.

if($sendemail == 'No') show_form(); // Если $sendemail не NO все поля заполнены делаем операторы ниже
// Данные подключения пишу тут
$query ="";
$sql = mysql_query($query, $db);



Спустя 12 минут, 18 секунд (30.04.2011 - 18:58) Игорь_Vasinsky написал(а):
во превых - не вижу что функция принимает данные ввиде аргумента
потом, чтоб зоставить работать функцию, нужно как минимум её вызвать

если ты ждёшь что функция вернёт тебе результат (успех или провал) - то нужно как минимум прописать это с помощью return


Спустя 21 минута, 4 секунды (30.04.2011 - 19:19) Xes написал(а):
Она вызывается.
Вот код собсвенно отличия лишь только в форме структура таже
Ссылка на скрипт отправки почты

При нажатии на кнопку отправит вызвается функция function complete_mail()

если не все поля формы заполнены возвращаемся к функции которая рисует форму для зополнения. Если все поля заполненны $sendemail не NО
if($sendemail == 'No') show_form();
то пропускается оператор show_form()

и переходим к моим запросам и формированию письма и его отправки.
Писма отсылаються в любом случае.
А вот в базу инфа добавляеться только если параметры подключения я прописываю перед этими запросами.
А то что подкючение выполнено в head.php почемуто не работает.

ВОТ и я не пойму что за ерунда, вроди как токого быть не должно.
----
Не обратил внимания она немного другая...
Но суть не миняеться мои запросы написаны непосредсвенно перед формированием письма $mess = '.....

Спустя 9 минут, 7 секунд (30.04.2011 - 19:29) Игорь_Vasinsky написал(а):
там подключён целый класс.

Покажи коннект к БД
Покажи полную свою функцию

оформи в теги [php]

Спустя 7 минут, 41 секунда (30.04.2011 - 19:36) Игорь_Vasinsky написал(а):
долго ты...

попробуй так:

function complete_mail($db) 
....
....

if($sendemail == 'No') show_form(); // Если $sendemail не NO все поля заполнены делаем операторы ниже
$query ="";
$sql = mysql_query($query, $db);

Спустя 1 минута, 41 секунда (30.04.2011 - 19:38) Xes написал(а):
Привожу всю страницу, здесь подключение внутри функции, тоже самое в head. Привел весь текст страницы где тут свернуть\развернуть не нашел но потом можно подредактировать.
Не понял почему вы мне такой код посоветовали врди ни чем не отличается от моего, тольок параметр передаеться. Только зачем он если этот параметр ни что не обробатывает.





<html>
  <head>
    <? require('config.php'); ?>
    <? require(root().'design/head.php'); ?>
  </head>
  <body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
    <table class="tablebig" border="0" cellspacing="0" cellpadding="0" align="center" >
      <? require(root().'design/log.php'); ?>
      <? require(root().'design/centerstart.php'); ?>
      <!-- MAIN -->
      <td class="main" style="background: url(<? echo $urlsite ?>/images/imgladd.gif) no-repeat left 35px;">
        <? echo $errordb; ?>
        <? echo '<h1>'.$fraza1.'</h1>'; ?>
        <p class="indent">Для добавления информации о гостинице, пожалуйста, заполните и отправьте анкету. Поля помеченные "*" обязательны для заполнения. Или Вы можете заполнить анкету в формате Microsoft Word, прикрепить к письму фотографии гостиницы и отправить его по адресу <span title="E-mail адрес администратора сайта ListHotel" class="cou12" style="color:#91230A; white-space:nowrap;">info-site@list.ru</span><br>
    Файл анкеты в формате <a title="Файл анкеты в формате Microsoft Word" href="<? echo $urlsite; ?>/files/anketa.doc">Microsoft Word - Анкета.doc</a>
          <hr size="1" width="75%" color="#BCBCBC">
        </p>
        <table align="left" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td width="100%" valign="top">
<?
error_reporting(0);
function show_form()
{
              ?>
              <form action="" method=post enctype="multipart/form-data">
                <div class="tah12" align="center"><b>А н к е т а</b>
                </div>
                <div style="padding:0 0 0 15">
                  <table class="tah11" cellspacing="1" cellpadding="2">
                    <tr><td>* Контактное лицо Ф.И.О. :</td><td></td>
                    </tr>
                    <tr><td>
                        <input type="text" name="input_name[0]" value="<?=substr(htmlspecialchars(trim($_POST['input_name'][0])), 0, 50);?>" style="color:#000000; font: 13px Tahoma; border: 1px solid #BCBCBC; background-color:white; width:200px;">
                        <input type="hidden" name="check[]" value="2"></td>
                      <td style="color:#7e7e7e; vertical-align:top; text-align:justify;">Пример: Смирнов Иван Александрович</td>
                    </tr>
                    <tr><td>* Контактное лицо E-mail :</td><td></td>
                    </tr>
                    <tr><td>
                        <input type="text" name="input_name[1]" value="<?=substr(htmlspecialchars(trim($_POST['input_name'][1])), 0, 50);?>" style="color:#000000; font: 13px Tahoma; border: 1px solid #BCBCBC; background-color:white; width:200px;">
                        <input type="hidden" name="check[]" value="2"></td>
                      <td style="color:#7e7e7e; vertical-align:top; text-align:justify;">Пример: smirnov@mail.ru</td>
                    </tr>
                    <tr>
                      <td colspan="2" style="padding-top:3px; padding-bottom:5px;">
                        <hr noshade size="1" width="95%" color="#BCBCBC"></td><td></td>
                    </tr>
                 
- - -- -- - - -- -- - - - Повтор по аналогии разные поля заполнения

                    <tr><td>Примечание :</td><td></td>
                    </tr>
                    <tr><td>
<
textarea name="input_name[19]" style="color:#000000; font: 13px Tahoma; border: 1px solid #BCBCBC; background-color:white; width:200px; height:100; scrollbar-dark-shadowcolor:#E7E8EB; scrollbar-light-shadow-color:#EFF3F4; scrollbar-base-color:#EFF3F4; scrollbar-arrow-color:#D0CFCE; scrollbar-face-color:#E7E8EB; scrollbar-shadow-color:#7D868D; scrollbar-3d-light-color:#EFF3F4;"><?=substr(htmlspecialchars(trim($_POST['input_name'][19])), 0, 10000);?></textarea>
                        <input type="hidden" name="check[]" value="2"></td>
                      <td style="color:#7e7e7e; vertical-align:top; text-align:justify;">В этом поле Вы можете при желании указать любую служебную информацию, или задать вопрос. Например, Вы можете попросить отформатировать приведенные Вами цены в виде таблицы, это особенно актуально для сезонных гостиниц. </td>
                    </tr>
                    <tr>
                      <td colspan="2" style="padding-top:3px; padding-bottom:5px;">
                        <hr noshade size="1" width="95%" color="#BCBCBC"></td><td></td>
                    </tr>
                    <tr>
                      <td colspan="2" align="center">
                        <input type="submit" name="submit" value="Отправить" style="color:#FFFFFF; font-weight:normal; background-color:#000000; border: #000000 0px solid;"></td><td></td>
                    </tr>
                  </table>
                </div>
              </form>
<?
}

function complete_mail()
{
        $empty_input[] = 'Контактное лицо Ф.И.О. ';
        $empty_input[] = 'Контактное лицо E-mail ';
        $empty_input[] = 'Полное название гостиницы с кавычками ';
        $empty_input[] = 'Собственное имя гостиницы БЕЗ КАВЫЧЕК ';
        $empty_input[] = 'Тип ';
        $empty_input[] = 'Город ';
        $empty_input[] = 'Область ';
        $empty_input[] = 'Адрес ';
        $empty_input[] = 'Общее кол-во номеров ';
        $empty_input[] = 'Телефон администратора ';
        $empty_input[] = 'Сайт ';
        $empty_input[] = 'E-mail ';
        $empty_input[] = 'О гостинице ';
        $empty_input[] = 'Номера ';
        $empty_input[] = 'Цены ';
        $empty_input[] = 'Как добраться до гостиницы ';
        $empty_input[] = 'Сылка на гостиницу на Яндекс.Картах ';
        $empty_input[] = 'Количество звезд ';
        $empty_input[] = 'Наличие Wi-Fi ';
        $empty_input[] = 'Питание ';
        $empty_input[] = 'Примечание ';
        for ($i=0; $i<count($_POST['input_name']); $i++) {
              $_POST['input_name'][$i] = substr(htmlspecialchars(trim($_POST['input_name'][$i])), 0, 100000);
              if(substr(htmlspecialchars(trim($_POST['check'][$i])), 0, 1) == 1) {
                if(empty($_POST['input_name'][$i])) {
                        $sendemail = 'No';
                        echo '<br><b><span class="cou13">Необходимо заполнить поле '.$empty_input[$i].'!</span></b>';
                }
              }
        }
        if($sendemail == 'No') show_form();

$dbhost = 'localhost'; // Хост
$dbuser = 'admin'; // Имя пользователя
$dbpassword = '123'; // Пароль
$dbname = 'listhotel'; // Имя базы данных
// Подключаемся к mysql серверу

$db = @mysql_connect($dbhost, $dbuser, $dbpassword);

$contfio=str_replace("'","\'",$_POST['input_name'][0]);
$contemail=str_replace("'","\'",$_POST['input_name'][1]);
$namelong=str_replace("'","\'",$_POST['input_name'][2]);
$title=$namelong;
$nameshort=str_replace("'","\'",$_POST['input_name'][3]);
$tip=str_replace("'","\'",$_POST['input_name'][4]);
$adres=str_replace("'","\'",$_POST['input_name'][7]);
$colnomer=str_replace("'","\'",$_POST['input_name'][8]);
$telefon=str_replace("'","\'",$_POST['input_name'][9]);
$sitehotel=str_replace("'","\'",$_POST['input_name'][10]);
$emailhotel=str_replace("'","\'",$_POST['input_name'][11]);
$ohotel=str_replace("'","\'",$_POST['input_name'][12]);
$description='Гостиница '.$nameshort.' Адрес '.$adres.' '.$ohotel;
$description=substr($description,0,250);
$keywords='гостиница '.$nameshort.', '.str_replace("'","",$_POST['input_name'][5]).', о гостинице '.$nameshort.', номера гостиницы '.$nameshort.', цены гостиницы '.$nameshort.', проезд до гостиницы '.$nameshort.', '.str_replace(".","",$adres);
$keywords=substr($keywords,0,250);
$onomer=str_replace("'","\'",$_POST['input_name'][13]);
$price=str_replace("'","\'",$_POST['input_name'][14]);
$transit=str_replace("'","\'",$_POST['input_name'][15]);
$yandex=str_replace("'","\'",$_POST['input_name'][16]);
$star=str_replace("'","\'",$_POST['input_name'][17]);
$wifi=str_replace("'","\'",$_POST['input_name'][18]);
$query = "SELECT goroden FROM goroda where gorodru LIKE '%".str_replace("'","",$_POST['input_name'][5])."%'";
$sql = @mysql_query($query, $db);
if (@mysql_num_rows($sql)>0)
{
  $sqlrow=@mysql_fetch_array($sql);
  $goroden=$sqlrow['goroden'];
}
else
{
  $goroden="NO_Gorod";
}
foreach ($_POST['input_checkbox_name1'] as $key => $value)
  {
    $pitanie .= $value.', ';
  }
$pitanie=substr_replace(str_replace("'","",$pitanie),"",-2);

// Добавление записи в таблицу zayavka
$query = "INSERT INTO `addhotels` (`goroden`, `namelong`, `nameshort`, `adres`, `dadd`, `dview`, `dsort`, `tip`, `title`, `description`, `keywords`, `colnomer`, `telefon`, `sitehotel`, `emailhotel`, `pitanie`, `wifi`, `ohotel`, `onomer`, `price`, `transit`, `yandex`, `star`, `foto`, `contfio`, `contemail`) VALUES
('"
.$goroden."', '".$namelong."', '".$nameshort."', '".$adres."', CURDATE(), CURDATE(), CURDATE(), '".$tip."', '".$title."', '".$description."', '".$keywords."', '".$colnomer."', '".$telefon."', '".$sitehotel."', '".$emailhotel."', '".$pitanie."', '".$wifi."', '".$ohotel."', '".$onomer."', '".$price."', '".$transit."', '".$yandex."', '".$star."', '0', '".$contfio."', '".$contemail."')";
$sql = mysql_query($query, $db);

        $mess = '';
$mess .= '<b>Контактное лицо Ф.И.О.</b>: '.$_POST['input_name'][0].'<br>';
$mess .= '<b>Контактное лицо E-mail</b>: '.$_POST['input_name'][1].'<br>';
$mess .= '<b>Полное название</b>: '.$_POST['input_name'][2].'<br>';
$mess .= '<b>Короткое название</b>: '.$_POST['input_name'][3].'<br>';
$mess .= '<b>Тип</b>: '.$_POST['input_name'][4].'<br>';
$mess .= '<b>Город</b>: '.$_POST['input_name'][5].'<br>';
$mess .= '<b>Область</b>: '.$_POST['input_name'][6].'<br>';
$mess .= '<b>Адрес</b>: '.$_POST['input_name'][7].'<br>';
$mess .= '<b>Общее кол-во номеров</b>: '.$_POST['input_name'][8].'<br>';
$mess .= '<b>Телефон администратора</b>: '.$_POST['input_name'][9].'<br>';
$mess .= '<b>Сайт</b>: '.$_POST['input_name'][10].'<br>';
$mess .= '<b>E-mail</b>: '.$_POST['input_name'][11].'<br>';
$mess .= '<b>О гостинице</b>:<br>'.$_POST['input_name'][12].'<br>';
$mess .= '<b>Номера</b>:<br>'.$_POST['input_name'][13].'<br>';
$mess .= '<b>Цены</b>:<br>'.$_POST['input_name'][14].'<br>';
$mess .= '<b>Как добраться</b>:<br>'.$_POST['input_name'][15].'<br>';
$mess .= '<b>Сылка на Яндекс.Картах</b>: '.$_POST['input_name'][16].'<br>';
$mess .= '<b>Количество звезд</b>: '.$_POST['input_name'][17].'<br>';
$mess .= '<b>Наличие Wi-Fi</b>: '.$_POST['input_name'][18].'<br>';
$mess .= '<b>Питание</b>: '.'<br>';
foreach ($_POST['input_checkbox_name1'] as $key => $value)
  {
    $mess .= str_replace("'","",$value).', ';
  }
$mess .= '<b>Примечание</b>: '.$_POST['input_name'][19].'<br>';

// подключаем файл класса для отправки почты
  require 'class.phpmailer.php';
  $mail = new PHPMailer();
  $mail->From = $_POST['input_name'][1]; // от кого мыло
  $mail->FromName = $_POST['input_name'][0]; // от кого Имя
  $mail->AddAddress('info-site@list.ru', 'ListHotel'); // кому - адрес, Имя
  $mail->IsHTML(true); // выставляем формат письма HTML
  $mail->Subject = 'Анкета ListHotel'; // тема письма
  $mail->Body = $mess;
  // если был файл, то прикрепляем его к письму
  if(isset($_FILES['file_name']))
    {
      if($_FILES['file_name']['error'][0] == 0)
        {
          $mail->AddAttachment($_FILES['file_name']['tmp_name'][0], $_FILES['file_name']['name'][0]);
        }
    }
                     
  if (!$mail->Send())
    {
      echo '<p class="indent"><b>Извините. По техническим причинам Ваше письмо не было отправлено.</b><br><br>Пожалуйста, заполните анкету в формате  Microsoft Word и отправьте ее с фотографиями на адрес <span title="E-mail адрес администратора сайта ListHotel" class="cou12" style="color:#7e1e0a; white-space:nowrap;">info-site@list.ru</span> с помощью вашей почтовой программы.</p>';
    }
  else
    {
      echo '<p class="indent"><b>Спасибо! Ваша анкета была успешно отправлена.</b><br><br>В ближайшее время мы разместим вашу гостиницу в каталоге. О добавлении гостиницы в каталог ListHotel Вам будет сообщено дополнительно на указанный Вами e-mail.</p>';
    }
  }

if (!empty($_POST['submit'])) complete_mail();
else show_form();
?>
              </td>
          </tr>
        </table></td>
      <!-- /MAIN -->
      <? require(root().'design/centerfinish.php'); ?>
      <? require(root().'design/bottom.php'); ?>
    </table>
  </body>
</
html>

Спустя 13 минут, 36 секунд (30.04.2011 - 19:52) inpost написал(а):
Xes
Второй аргумент при запросе не указывай, а именно к какой БД идёт коннект, то есть $db не пиши.
Нигде не обрабатывается... внимательнеее надо быть, читай:
$sql = @mysql_query($query, $db); , видишь в конце $db ? Вот это он!

Спустя 36 секунд (30.04.2011 - 19:52) Игорь_Vasinsky написал(а):
Во первых - ты глушишь все ошибки:
error_reporting(0);

смени на
error_reporting(E_ALL); 


далее исправь :

$sql = @mysql_query($query, $db);[/php
на
[php]$sql = @mysql_query($query, $db) or die(mysql_error());


вылезут ошибки - их сюда

Спустя 1 минута, 6 секунд (30.04.2011 - 19:53) Игорь_Vasinsky написал(а):
inpost
вдруг ему принципиально, пусть лучьше его в кчестве аргумента передаст,если эта переменная заранее объявлена

Спустя 11 минут, 20 секунд (30.04.2011 - 20:05) Xes написал(а):
Цитата
Второй аргумент при запросе не указывай, а именно к какой БД идёт коннект, то есть $db не пиши.
Нигде не обрабатывается... внимательнеее надо быть, читай:
$sql = @mysql_query($query, $db); , видишь в конце $db ? Вот это он!


Чето я это момент вообще не аонял как не указывать? Нада же указать как он там идентификатор подключения.


Вот такие ошибки начали вылазить в полях для заполнения
<!--error--><br />
<b>Notice</b>: Undefined index: input_name in <b>Z:\home\test1.ru\www\addhotel.php</b> on line <b>135</b><br />
<script language=JavaScript src='/denwer/errors/phperror_js.php'></script>

Такая ошибка php
Undefined variable: root in Z:\home\test1.ru\www\config.php on line 17

фалй конфиг.пхп лежит в корне с тем же.

<?
$urlsite='http://test1.ru';
// ---------- ФУНКЦИИ ----------
/*
Функция возвращает относительный путь до корня от текущего сценария.
$_SERVER['SCRIPT_NAME'] содержит адрес типа /hotels/0000b.php подсчитываем кол-во "/",
берем на еденицу меньше, формируем относительный путь.
*/

function root()
{
unset($root); // стираем переменную
$kol=substr_count($_SERVER['SCRIPT_NAME'], '/')-1; // Подсчитываем "/" в адрессе
for ($i=0; $i<$kol; $i++) // Формирую путь
{
$root=$root.'../';
}
return $root; // Возврат значения через переменную $root
}
?>

Спустя 3 минуты, 27 секунд (30.04.2011 - 20:08) Xes написал(а):
Или вы имеете ввиду что внутри функции этот идентификатор как раз и не виден...

Спустя 3 минуты, 33 секунды (30.04.2011 - 20:12) Игорь_Vasinsky написал(а):
ОооОо. так ты стока ошибок подавлял, так нельзя.

Цитата
Такая ошибка php
Undefined variable: root in Z:\home\test1.ru\www\config.php on line 17

фалй конфиг.пхп лежит в корне с тем же.


пишет что неизвестная (не объявленная) переменная root

во здесь - ни известно:

function root()	
{
unset($root); // стираем переменную
$kol=substr_count($_SERVER['SCRIPT_NAME'], '/')-1; // Подсчитываем "/" в адрессе
for ($i=0; $i<$kol; $i++) // Формирую путь
{
$root=$root.'../';
}
return $root; // Возврат значения через переменную $root
}

Спустя 2 минуты, 55 секунд (30.04.2011 - 20:15) Игорь_Vasinsky написал(а):
Цитата
Вот такие ошибки начали вылазить в полях для заполнения
<!--error--><br />
<b>Notice</b>: Undefined index: input_name in <b>Z:\home\test1.ru\www\addhotel.php</b> on line <b>135</b><br />
<script language=JavaScript src='/denwer/errors/phperror_js.php'></script>


неуказано имя input в addhotel.php на 135 строчке

Спустя 14 минут, 26 секунд (30.04.2011 - 20:29) Xes написал(а):
Игорь_Vasinsky
Цитата
function complete_mail($db)

Так чето не катит, мне так тоже теперь логичным показалось оформить. Либо дальше ошибка в синтаксие.

Если делать как сказал inpost
Цитата
Второй аргумент при запросе не указывай,
то фурычит.

Над остальным работаю пока.

Спустя 4 минуты, 46 секунд (30.04.2011 - 20:34) Игорь_Vasinsky написал(а):
Цитата
Игорь_Vasinsky
Цитата 
function complete_mail($db) 


Так чето не катит, мне так тоже теперь логичным показалось оформить. Либо дальше ошибка в синтаксие.


у тя в SQL запросе моячит $db, как 2й необязательный параметр (т.е. его используют когда несколько подключений), у тебя в конфиге он может называться по другому, например $link - (mysql_connect)

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

Цитата
Если делать как сказал inpost
Цитата 
Второй аргумент при запросе не указывай, 

то фурычит.


естественно, раз ты не указываешь на $db - в которой и были проблемы

Спустя 9 минут, 40 секунд (30.04.2011 - 20:43) Xes написал(а):
НУ конечно другой бы забил работатет и ладно... но мы не из таких )))

вот моое подключение выполняемое вфайле head.php
// Данные для mysql сервера
$dbhost = 'localhost'; // Хост
$dbuser = 'admin'; // Имя пользователя
$dbpassword = '123'; // Пароль
$dbname = 'listhotel'; // Имя базы данных
// Подключаемся к mysql серверу
$db = @mysql_connect($dbhost, $dbuser, $dbpassword);

Идентификатор подключения $db
Передавали параметр так function complete_mail($db) почему не работает, вроди все верно. Тоесть внутри функции теперь известно о существовании переменной $db.

Спустя 1 час, 1 минута, 37 секунд (30.04.2011 - 21:45) Xes написал(а):
Еще в этом моменте не могу разобраться что здесь написано?
Я так понимаю, это в случе если наше сообщение не было отправленно (часть полей была не заполнена), то чтобы все не стерлось, то что мы вводили ранее, копируеться обратно в соответвующие поля.
А так как POST в начале пуста то и получается неизвестный идентификатор.

У меня вызывает вопросы запсиь <?=substr
Что значит символ равно? Иесли это код php то наверное чтобы значению value="..." присвоить чтото то ето надо вывести например value="<? echo substr(...); ?>

<input type="text" name="input_name[0]" value="<?=substr(htmlspecialchars(trim($_POST['input_name'][0])), 0, 50);?>"

Спустя 19 минут, 22 секунды (30.04.2011 - 22:04) Лена написал(а):
В файле head.php, как вы сказали, вы делаете подключение к базе:
<? require(root().'design/head.php'); ?>
В функции вы ВО ВТОРОЙ РАЗ подключаетесь к базе. Зачем?
Правильно вам говорят, один раз в head.php подключились - в функцию надо передать параметр $db, чтобы внутри функции уже было подключение к базе данных.

О записи <?=substr.
Символ равно значит, что кто-то неправильно написал, а вы бездумно вставили это в свой код. В php, по-моему, допустимы только короткие теги <? ... ?>
Здесь надо так:

<input type="text" name="input_name[0]" value="<?php print substr(htmlspecialchars(trim($_POST['input_name'][0])), 0, 50);?>"


По поводу POST я не поняла, о чем вы спрашиваете.

Спустя 17 минут, 36 секунд (30.04.2011 - 22:22) Xes написал(а):
Пр пост вопроса небыло это все мои бешеные мысли выдали, это относилось к вопросу про <?=substr . В полях для ввода была ошибка неизвестный идентификатор.

А про подключение к бд я понял что надо передать идентификатор в функцию, об этом я и пишу... и спрашиваю почему не работает ....

Я убрал повторное подключение внутри функции и передаю ей параметр
function complete_mail($db)

но не работатет.

Работает только если ничего не передовать, а второй параметр в $sql = @mysql_query($query, $db); $db - не писать. так если $sql = @mysql_query($query);

Спустя 5 минут, 17 секунд (30.04.2011 - 22:27) Игорь_Vasinsky написал(а):
потому что и вызывать нужно с аргументом

function name(arg1);


но этот парамтр не обязателен., можешь убрать его из SQL и не указыватьв качестве аргумента. и всё пучком.


Спустя 2 минуты, 5 секунд (30.04.2011 - 22:29) Игорь_Vasinsky написал(а):
function complete_mail($db);
;)

Цитата
<?=substr

- это ранние версии php (вроде)
сделать так
как написала Лена

Спустя 1 минута, 52 секунды (30.04.2011 - 22:31) Xes написал(а):
Цитата
потому что и вызывать нужно с аргументом

Точняк, я лошара... написал в объявлении функции function complete_mail($db) и чегото еще жду....

Спустя 50 секунд (30.04.2011 - 22:32) Игорь_Vasinsky написал(а):
Цитата
А про подключение к бд я понял что надо передать идентификатор в функцию, об этом я и пишу... и спрашиваю почему не работает ....


не идентификатор, аргумент, а ещё точнее - переменную в качестве аргумента

чтобы внешнюю переменную (объявленную вне функции)- использовать в функции.

ПАОчитай про функции, всё предельно просто.

Спустя 2 минуты, 13 секунд (30.04.2011 - 22:34) Гость_liw написал(а):
С какого перепуга запись <?= стала вдруг неправильной? а товарищи отвечающие?

<?='something here'; ?>

эквивалентна

<?php echo 'something here'; ?>

Спустя 4 минуты, 24 секунды (30.04.2011 - 22:39) Игорь_Vasinsky написал(а):
Гость_liw
Цитата
С какого перепуга запись <?= стала вдруг неправильной? а товарищи отвечающие?


Лена возможно сравнителбно недавно в php.. ей фозможно не известно что так писали ранее, может и сейчас, но реже и реже.

Спустя 7 минут, 57 секунд (30.04.2011 - 22:47) Гость_liw написал(а):
Т.е. short_open_tag = On и тут везде используется а вот удобную короткую запись <?= используют всё реже и реже.. хм.. откуда такая статистика.

Это нельзя использовать если не разрешён короткий открывающий тег, - оно и понятно, -а вот если разрешён, по почему бы не воспользоваться.

Ну да ладно.

И к слову, - если бы была такая запись <?= не верной, - то получили бы Parse error или пустую страницу, - это никак нельзя пропустить.

Спустя 3 минуты, 35 секунд (30.04.2011 - 22:50) Игорь_Vasinsky написал(а):
мы тут все фанаты irbis-team, и по рекомендации этих ребят мы используем - то что используем: <?php & ?>

Спустя 1 минута, 7 секунд (30.04.2011 - 22:51) Лена написал(а):
Гость_liw
Все правильно. Это не ранний вариант, это просто редкто используемый вариант. Просто не у всех хостеров эти короткие теги разрешены, я сталкивалась, когда они не работают. А лазить в php.ini никто не разрешит.

Из мануала:
There are four different pairs of opening and closing tags which can be used in PHP. Two of those, <?php ?> and <script language="php"> </script>, are always available.
Short tags are only available when they are enabled via the short_open_tag php.ini configuration file directive, or if PHP was configured with the --enable-short-tags option.

Спустя 5 минут, 18 секунд (30.04.2011 - 22:57) Гость_liw написал(а):
Цитата (Игорь_Vasinsky @ 30.04.2011 - 19:50)
мы тут все фанаты irbis-team, и по рекомендации этих ребят мы используем - то что используем: <?php & ?>

Ну я понимаю что вы тут все фанаты, но дело то не в этом.
Естественно лучше использовать длинный тег.

Дело в другом, - а именно в том, что раз у человека в скрипте разрешён короткий тег, то ошибкой <?= это быть не может, вот и всё.

Спустя 16 минут, 19 секунд (30.04.2011 - 23:13) Xes написал(а):
Я тут от уродств в полях избавился следующим образом, надеюсь правильно понял необходимость данных строк в коде.
<input type="text" name="input_name[0]" value="<? if (!empty($_POST)) echo substr(htmlspecialchars(trim($_POST['input_name'][0])), 0, 50);?>" >

------
Тут еще возник вопрос надо ли исправлять все ошибки до конца например пишет неизвестный идентификато sendemail ...тоесть все значения были введены и $sendemail - оказался не определнный... скрипт работатет с такими мелкими ошибками. Просто исправления такого рода ошибок это висьма головобольное занятие
if($sendemail == 'No') show_form();

---
или у меня есть код
foreach ($_POST['input_checkbox_name1'] as $key => $value)
{
$mess .= str_replace("'","",$value).', ';
}

но так как небыло выбрано не каких элементов то $_POST['input_checkbox_name1'] не существует опять пишет
Цитата
Notice: Undefined index: input_checkbox_name1 in Z:\home\test1.ru\www\addhotel.php on line 401

Warning: Invalid argument supplied for foreach() in Z:\home\test1.ru\www\addhotel.php on

Это значит надо дополнительно проверять если переменная существует то выполнять цикл если нет то не выполнять....

Вобщем такого рода ошибки ИСПРАВЛЯТЬ или НЕ ИСПРАВЛЯТЬ?

Спустя 29 минут, 14 секунд (30.04.2011 - 23:42) Игорь_Vasinsky написал(а):

ну зачем те нотисы на странице? исправить всё нужно...

Спустя 6 минут, 35 секунд (30.04.2011 - 23:49) Лена написал(а):

if(isset($_POST['input_checkbox_name1']) && $_POST['input_checkbox_name1'] !=''){

foreach ($_POST['input_checkbox_name1'] as $key => $value){
...
}
}


Спустя 12 часов, 39 минут, 44 секунды (1.05.2011 - 12:28) Xes написал(а):
Вроди бы все неопределнности убрал когда убирал, возник вопрос по одной ошибке выскакиев в разных метсах одна и таже.
Например вот здесь.
$star=$_POST['input_name'][17];
Ошибка не помню по английски, типа "неизвестный указатель" возникает по причине того что переменная $_POST['input_name'][17] не была определнна(элемнта масива не существует), и он обращается к элементу этого массива.
$_POST['input_name'][17]; - Сюда заноситься значения радикнопки.

Причем в случае когда например
$adres=$_POST['input_name'][7]; - идет присвоение адреса то такой ошибки не возникает, даже если я ничего не ввел, это текстовое поле.

ТОесть вопрос в том что для радиокнопок ошибка неизвестный указатель возникает а для текстового поля нет. (ну и с чекбоксами такая же дребидень)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.