Php скрипт работает сам по себе, но не включен в html

#php #html

#php #HTML

Вопрос:

я пытаюсь использовать php-скрипт на своем html-сайте. Php-скрипт работает так, как задумано, когда я его запускаю. Мой php скрипт:

 <?php
mysql_connect("localhost","demo","123abc");
mysql_select_db("demo");
$sql=mysql_query("SELECT vorname FROM users"); 
if(mysql_num_rows($sql)){ 
$select= '<select name="select">';   
while($rs=mysql_fetch_array($sql)){ 
      $select.='<option value='.$rs['vorname'].'>'.$rs['vorname'].'</option>'; 
  } 
} 
$select.='</select>'; 
echo $select;  
?>
  

Теперь я хочу, чтобы выпадающий список на моем сайте был в разных местах. Моя идея заключалась в том, чтобы просто вставлять php-скрипт всякий раз, когда он мне нужен. Моя html-часть:

 <td>
<?php include 'http://localhost/Testsamples/test.php'; ?>
</td>
  

Но он не работает, и я не знаю почему.
Может кто-нибудь мне помочь?

Спасибо

Комментарии:

1. HTML-файл находится в другой папке. Html = localhost/Prompt/index.html а затем php= localhost/Testsamples/test.php

2. Помимо приведенных ниже ответов о пути, ваш php, вероятно, не будет выполнен, если включаемый файл имеет .html расширение. Измените это на .php также.

3. @jeroen возможно, чтобы HTML выполнял php, но это требует некоторых настроек в системных файлах. Я понятия не имею, где он должен искать, поскольку я понятия не имею, какой локальный сервер он использует. Однако более безопасная ставка — это просто изменить html на php

4. @Dorvalla Вот почему я сказал probably . Изменение настроек сервера OP действительно немного выходит за рамки этого вопроса 🙂

5. @jeroen ваш пост был решением в конце. Большое спасибо всем за помощь от всех. = D

Ответ №1:

Вы не включаете файл по его URL, вы должны использовать системный путь к файлу:

 <td>
<?php include '/path/to/Testsamples/test.php'; ?>
</td>
  

Комментарии:

1. Теперь я переместил их в ту же папку. Его localhost/Prompt/test.php сейчас же. HTML-файл также находится в папке Prompt. Я просто пишу /test.php каков теперь путь?

2. Вы можете сделать ./test.php или test.php

3. @LittleMonstr Измените include на require , сообщение об ошибке сообщит вам, какой путь ищет php.

4. Если у вас включены отчеты об ошибках, PHP должен сообщать вам, не может ли он найти этот файл.

Ответ №2:

Вы не можете включить использование URL (например http://www.domain.com/script.php ).

Используйте относительный путь, например :

 <?php include "/path/test.php"; ?>
  

Используйте require лучше, чем include , у вас будет прямая ошибка, если файл не найден.

Комментарии:

1. "/path/test.php" является абсолютным путем. У OP был URL-адрес.

2. Вам следует немного изменить формулировку: как уже упоминалось, исходный путь — это URL, а используемый вами путь на самом деле является абсолютным путем.

3. Вы правы, я просто назвал «absolute» слишком быстро. Я редактирую свой ответ.

Ответ №3:

Чтобы включить его из абсолютного пути, вам необходимо allow_url_include включить его в вашем php.ini.

Смотрите здесь: http://phpsec.org/projects/phpsecinfo/tests/allow_url_include.html

Однако, если ваш файл находится в той же системе, вы должны использовать относительные URL-адреса. т.е. include 'testSamples/test.php (или что-то подобное). Вы также можете использовать базовую навигацию по папкам (например ../testSamples/test.php , или использовать включение относительно root : /public_html/foo/bar/testSamples/test.php )

Ответ №4:

Попробуйте это

 <?php /* At the first instance of call, to eliminate multiple opening of SQL connections for the smae data */
    ob_start();
    get_file_contents('http://localhost/Testsamples/test.php'); 
    $contents = ob_get_contents();
?>
<td>
    <?php echo $contents; ?>
</td>
  

редактировать — как указано в других ответах, вы, вероятно, не хотите включать абсолютные пути!