Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > не выполняется скрипт php


Автор: agarheim 13.2.2007, 01:25
не выполняется скрипт php. на локальном сервере работает. а в интернете нет. возможно это изза того что не правильно установлены атрибуты для файла.?! 

Автор: Alex13 13.2.2007, 08:07
agarheim, хостинг PHP поддерживает?

Автор: PARROT 13.2.2007, 11:00
agarheim, скрипт в студию, МЫ тут не телепаты.

Автор: agarheim 13.2.2007, 11:11
выкладываю код. который не работает. 
Код

<td background="images/bg_blue.jpg" align="right"><div class="lang"><a href="index.php?yaz=rus" class="lang" >рус</a>   <font color="#CCCCCC"> | </font><a href="index.php?yaz=ukr" class="lang" >укр</a>  <font color="#CCCCCC"> | </font><a href="index.php?yaz=eng" class="lang" >eng</a> &nbsp;</div></td>


по нажатию на ссылку на страничке индекс должен выполниться вот такой запрос:
Код

$sql02=mysql_query("select * from `$table1` where tipe='$yaz' limit 1,1 ");
$num_results = mysql_num_rows($sql02);
for ($i=0; $i <$num_results; $i++)
 {  $row = mysql_fetch_assoc($sql02);
  $a =substr($row['text'],0,100);
  $b =substr($row['text'],100,45);
    echo '<img src="images/index/'.$row['img'].'" width="100" height="62" alt="'.$row['alt'].'"></td>
                            <td align="left" valign="top"> 
                              <div class="content">'.tags($a).'</div>
                            </td>
                          </tr>
                          <tr> 
                            <td colspan="2"> 
                              <div class="content">'.tags($b).'</div></td>
                    </tr>';
 }

дома на локальном серваке все работает. тестировал его на хостинге у одних работает прекрассно. а на том где он дожен стоять. работает на половину. т.е. при заходе на сайт я вижу все что должно вывестить все отображено правильно. но вот при смене языковой версии ничего не происходит.

Автор: PARROT 13.2.2007, 11:20
Код

$sql02=mysql_query("select * from `$table1` where tipe='$yaz' limit 1,1 ") or die(mysql_error());

Проверьте на ошибки запрос.

Автор: mishaSL 13.2.2007, 11:20
agarheim, может быть несколько вариантов.
1. перед этим скриптом надейсь у тебя стоит: $yaz = mysql_real_escape_string($_GET['yaz']). Т.е. используй глобальные массивы.
2. могут не правильно стоять права на файл. Сделай 755 для php файлов и посмотри работает или нет.

P.S. и еще зачем это? 
Код

for ($i=0; $i <$num_results; $i++)


если ты из базы одну запись берешь

Автор: PARROT 13.2.2007, 11:25
$yaz строка или число?

Автор: agarheim 13.2.2007, 11:39
$yaz строка.

Код

for ($i=0; $i <$num_results; $i++)


это я уже так от безисходности....

права сейчас поставлю . и попробую

Автор: mishaSL 13.2.2007, 11:41
Цитата(PARROT @  13.2.2007,  11:25 Найти цитируемый пост)
$yaz строка или число?


У него это строка:
Цитата(agarheim @  13.2.2007,  11:11 Найти цитируемый пост)
index.php?yaz=rus


Автор: agarheim 13.2.2007, 11:44
дело в том что при заходе на страницу выбор из базы выполняется. тот который по умолчанию стоит. т.е. русский. как я понимаю скрипт работает. 

Автор: mishaSL 13.2.2007, 11:49
agarheim,  обрати внимание на это:

Цитата(mishaSL @  13.2.2007,  11:20 Найти цитируемый пост)
перед этим скриптом надейсь у тебя стоит: $yaz = mysql_real_escape_string($_GET['yaz']). Т.е. используй глобальные массивы.



Автор: agarheim 13.2.2007, 11:50
поменял по умолчанию язык. чтоб из базы выбирало английский. выбирает. но дальше в упор нехочет работать. 

может я не в ту папку на серваке закинл скрипт. стоит система плеск. раньше работал только с Спанелью.

попробую с глобальным массивом.

Добавлено @ 11:57 
Код

$yaz = mysql_real_escape_string($_GET['yaz']);


прописал эту строчку из базы перестало выбирать вообще.

Автор: PARROT 13.2.2007, 11:58
agarheim, запрос ошибки дает?
Попробуйте напечатать запрос так:
Код

echo "select * from `$table1` where tipe='$yaz' limit 1,1";
 
Что пишет? Строка должна быть в двойных кавычках, а число или в одинарных или без.

Автор: agarheim 13.2.2007, 12:01
Код

select * from `index` where tipe='rus' limit 1,1 

этот текст мне вывело на сайт

Автор: PARROT 13.2.2007, 12:13
кавычки поменяйте на двойные и еще раз напечатайте

Автор: agarheim 13.2.2007, 12:38
Код

<td background="images/bg_blue.jpg" align="right"><div class="lang"><a href="ind.php?yaz=rus" class="lang" >ðóñ</a>   <font color="#CCCCCC"> | </font><a href="ind.php?yaz=ukr" class="lang" >óêð</a>  <font color="#CCCCCC"> | </font><a href="ind.php?yaz=eng" class="lang" >eng</a> &nbsp;</div></td>
<?php
if (isset ($yaz)) {
if ($_GET['yaz']=="eng") {

}
if ($_GET['yaz']=="ukr")
{$yaz='ukr';

}  
if ($_GET['yaz']=="rus")
{$yaz='rus';

}}
else
{$yaz='rus';

}  
echo $yaz;
?>


собственно говоря не работает даже вот такая штука.точнее первый раз выбирает по умолчанию рус. но при нажатии на ссылку ничего не меняется

Автор: mishaSL 13.2.2007, 12:40
Цитата(agarheim @  13.2.2007,  12:38 Найти цитируемый пост)
if (isset ($yaz)) {


нужно 
Код

if (isset ($_GET['yaz'])) {


в начало скрипта поставь var_dump($_GET);
и посмотри что в массиве _GET

Автор: agarheim 13.2.2007, 12:49
о гуру. поставил 
по твоему совету 
Код

if (isset ($_GET['yaz'])) {


Добавлено @ 12:52 
а можете меня послать туда где написана разница между двумя проверками?!

дамп array(1) { ["yaz"]=> string(3) "eng" }

Автор: mishaSL 13.2.2007, 13:15
Смотри здесь: http://ru.php.net/register_globals

Автор: agarheim 13.2.2007, 13:19
большое человеческое спасибо. вот что значит когда нормально ничего не изучаеш. а так там кусочек там кусочек. сам бы я не разобрался.

Автор: agarheim 13.2.2007, 13:34
пошел отлаживать сайт. по новой.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)