2013-11-06 2 views
0

im пытается обновить значение переменной home all в одном файле php, mas значение переменной должно быть сохранено в этом же файле, возможно ли это? Как я могу это сделать?Обновление и сохранение в том же файле php

Я уже пробовал некоторые трюки, но не добился успеха, надеюсь, что кто-то уже прошел с той же проблемой, что и у меня.

<?php 
$home = 'home'; 
?> 
<form method="post" name="" action="" > 
<label><?php echo $home;?></label> 
<input type="text" name="nome" value="<?php echo $home;?>" /> 
<input type="submit" name="" value="Gravar" /> 
</form> 
+0

Итак, вы хотите обновить значение переменной '$ home' с помощью этой формы или что? – artur99

ответ

0

Не совсем уверен, что вы пытаетесь достичь, но вы можете использовать переменную в $ _POST или $ _GET, чтобы установить переменную домой $ динамически.

EDIT:

Чтобы сохранить $ домой переменную вы можете сделать это:

<?php 
if(!empty($_POST['home_variable'])){ 
    //save it 
} 

if(empty($_POST['home'])){ 
    $home = 'home'; 
} else { 
    $home = $_POST['home']; 
} 

?> 
<form method="post" action="<?php echo $ SERVER['PHP SELF']; ?>" > 
<label><?php echo $home; ?></label> 
<input type="text" name="home" value="<?php echo $home;?>" /> 
<input type="hidden" name="home_variable" value="<?php echo $home; ?>" /> 
<input type="submit" name="submit" value="Gravar" /> 
</form> 
+0

Но данные переменной дома должны быть сохранены. Я должен быть в порядке, как переписать переменные данные. – mauro

+0

Если вам нужно сохранить переменную $ home, вы можете использовать скрытый ввод и сохранить, когда отправлена ​​форма. См. Код выше. –

+0

Позвольте мне посмотреть код – mauro

0
<?php 
if (isset($_POST['home'])) { 

    $var = addcslashes(htmlentities($_POST['home']), "'"); 
    $fileContent = file_get_contents(__FILE__); 
    $fileContent = preg_replace("/^(\\\$home ?= ?)'(.*)'(;[\n\r])/m", "$1'$var'$3", $fileContent); 

    file_put_contents(__FILE__, $fileContent); 
    // redirect to skip post in next refresh 
    header("Location: {$_SERVER['REQUEST_URI']}"); 
    exit; 
} 

$home = 'home'; 

?> 
<form method="post" name="" action="" > 
<label><?php echo $home;?></label> 
<input type="text" name="home" value="<?php echo $home;?>" /> 
<input type="submit" name="" value="Gravar" /> 
</form> 
+0

, пожалуйста, прочитайте мое сообщение, мне нужно переписать/обновить значение в том же файле php. – mauro

+0

Извините, Мауро, не поймал это. Я обновил код для обновления. Убедитесь, что пользователь, под которым запускается веб-сервер, может записывать в файл. – Alexander

0

Самый простой способ использует 2 файла:

set.php и take.php

set.php - файл, в котором вы указали переменную $ home

take.php файла, в котором находится $ домой, и могут быть приняты

set.php:

<form action="set.php" method="POST"> 
Home:<input type="text" name="home"><br> 
<input type="submit"> 
</form> 
<?php 
if(isset($_POST['home'])){ 
$home=$_POST['home']; 
$content= '<?php $home = "'.$home.'"; ?>'; 

    $file = "take.php"; 
    $fh = fopen($file, 'w') or die("can't open file"); 
    fwrite($fh, $content); 
fclose($fh); 
} 
?> 

Этот сценарий принимает значение из формы, и помещает его в переменной дубля .php. Пример файла take.php:

<?php $home = "nowhere"; ?> 
Смежные вопросы