2016-10-10 4 views
-1

Как импортировать переменную GLOBALS в основной файл PHP, поэтому мне не нужно менять имя проекта каждый раз в src?Как использовать GLOBALS в php для отправки данных формы

+0

Вы можете разместить полное содержимое index.php, включая теги ' 'И оператор include? – Luke

+0

@ Luke отправлено по мере необходимости – siddparkar

+0

@ Luke Я следил за советом и как-то заставлял его работать. Но теперь у меня большие проблемы http://stackoverflow.com/questions/39984235/use-global-variables-to-dynamically-change-url – siddparkar

ответ

0

Итак, я сделал конфиг.php-файл и объявили GLOBALS ['project_name'] = 'project_name'; в этом.

При вызове этого вызова я вызываю его только с помощью $ project_name;

1
name = $GLOBALS['project_name'] 

В этом проблема. Вы включили php-код внутри html, не указав php на его обработку. Вы можете попробовать это так:

<input type = "text" name="<?php echo($GLOBALS['project_name']) ?>" id = "project_name" class = "form-control" placeholder="Enter Project Name" value = ""> 

Однако, как вы это написали вы, вероятно, не нужно использовать суперглобальном переменную $ GLOBALS вообще, так как все выполняется в том же объеме (у вас есть нет функции). Вы могли бы просто иметь это:

config.php

<?php 
$project_name = 'test'; 
?> 

index.php

<?php 
include_once('config.php'); 
?> 
<form action="upload.php" method="post"> 
    <h3 class="text-center">If Project Name does not exist, add new one below.</h3>  
    <div class = "form-group"> 
    <label class="control-label col-sm-2" for="project_name">Project Name:</label> 
    <div class="col-sm-8"> 
     <input type = "text" name="<?php echo($project_name) ?>" id="project_name" class="form-control" placeholder="Enter Project Name" value= ""> 
    </div> 
    <button type="submit">Submit</button> 
    </div> 
</form> 

upload.php

<?php 
include_once('config.php'); 

$project_name = $_POST[$project_name]; 
$version = $_POST['version']; 
$description = $_POST['description']; 
$data = "INSERT INTO demo VALUES(NULL, '$project_name', '$version', '$description', '$path')"; 

$download_data = "SELECT demo_id, demo_name, demo_version, demo_details, file 
         FROM demo 
         WHERE demo_name = '$project_name' 
         AND demo_version = '$version'"; 

?> 

примечание: этот последний раздел upload.php опасен для производственной среды, вы должны прочитать о «SQL-инъекции» и «подготовленных операторах», если вы действительно хотите запустить этот код на сервере sql.

объяснение $ GLOBALS

Я не уверен, какие исследования вы сделали на этом суперглобальный но я хотел бы предложить чтение страницы PHP.net по размаху: http://php.net/manual/en/language.variables.scope.php

Этот фрагмент кода демонстрирует правильное использование:

<?php 
$a = 1; 
$b = 2; 

function Sum() 
{ 
    $GLOBALS['b'] = $GLOBALS['a'] + $GLOBALS['b']; 
} 

Sum(); 
echo $b; 
?> 

В этом случае результат будет 3. Если код был написан без использования $ GLOBALS:

<?php 
$a = 1; 
$b = 2; 

function Sum() 
{ 
    $b = $a + $b; 
} 

Sum(); 
echo $b; 
?> 

Выходной сигнал будет 1. Переменные $ а и $ Ь в пределах функции суммы() в этом примере, являются «локальные переменные» - они только в объеме внутри функции сумма() и различны (несмотря на то, что они имеют одинаковые имена) с переменными $ a и $ b, которым присваиваются значения 1 и 2 соответственно. Таким образом, операция суммирования происходит, но она не изменяет значение переменной $ b, выводимой выражением echo (поскольку $ b в sum() не совпадает с $ b вне функции).

+0

Привет, это все равно отправьте название проекта пустым – siddparkar

+0

Я действительно забыл поставить форму/отправить элементов, чтобы вы не могли даже представить его (отредактировали index.php сейчас). Вам нужно, чтобы все файлы были сохранены в одном каталоге. Если имя проекта пуст в выводе HTML из index.php, то включение должно быть неудачным или не может найти файл config.php. Вот пример index.php, показывающий, что атрибут «name» в HTML-форме не пуст: http://ideone.com/wcev5c – Luke

-1

Если вы объявляете глобальной переменной вы можете легко использовать его в качестве переменной, как это:

$GLOBALS['project_name'] = 'test'; 
echo $project_name; //test 

В вашем случае:

<?php  
global $project_name; 
?> 
    <div class = "form-group"> 
     <label class="control-label col-sm-2" for ="<?php echo $project_name; ?>">Project Name:</label> 
     <div class="col-sm-8"><input type = "text" name ="<?php echo $project_name;?>" id ="<?php echo $project_name; ?>" class = "form-control" placeholder="Enter Project Name" value = ""></div></div> 

Последнее обновление Ваш PHP код:

global $project_name; 
$project = $_POST[$project_name]; 

Надеюсь, это поможет!

+0

вы никогда не устанавливаете значение $ GLOBALS ['project_name'] или $ project_name внутри второй фрагмент кода - вам нужно будет включить код из первого фрагмента во второй. Иными словами: значения $ GLOBALS не сохраняются в разных вызовах отдельных скриптов. – Luke

Смежные вопросы