2013-08-05 2 views
0

Итак, у меня есть переменная, хорошо определенная на php-странице, и я использую ее на странице HTML, используя include. В настоящее время я создаю страницу, где я могу изменить Var (потому что это длинный текст, более одного на самом деле, и для их изменения будет хорошо иметь страницу с макетом только для этого), поэтому я использую текстовое поле и кнопку отправки так же, как это:Определить php var после текстового поля

<?php 
$titre= 'Bienvenido a PARIS EXPERT LIMOUSINE ! ' ; 
?> 

<form method="post"> 
Titre: <input name="titre" type="text" id="titre" value="<?php echo htmlspecialchars($titre); ?>" size="50" maxlength="50"> 
<input type="submit" name="submit"> 
</form> 

<?php 
if (isset($_POST['submit'])) 
{ 
$titre = $_POST['titre']; 
echo($titre); 
} 
?> 

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

ответ

1

EDIT: добавлены дополнительные поля и обработчик данных. См. Дополнительный код ниже оригинального ответа.


Вот код, который я придумал для записи содержимого в файл.

Примечание: Для добавления в файл с контентом, написанным под другим именем, используйте переключатель a или a+.

Чтобы создать и записать содержимое в файл и перезаписать предыдущий контент, используйте переключатель w.

Этот метод использует функцию fwrite().

(проверено)

Добавлена ​​код OP в: action="write.php"

ФОРМА

<?php 

$titre= 'Bienvenido a PARIS EXPERT LIMOUSINE ! ' ; 
?> 

<form method="post" action="write.php"> 
Titre: <input name="titre" type="text" id="titre" value="<?php if(isset($_POST['titre'])){echo htmlspecialchars($_POST['titre']); } 
else echo htmlspecialchars($titre); ?>" size="50" maxlength="50"> 


<input type="submit" name="submit"> 
</form> 

PHP записать в файл обработчик (write.php)

В этом примере используется переключатель w.

<?php 
if (isset($_POST['submit'])) 
{ 
$titre = $_POST['titre']; 
echo($titre); 
} 
?> 

<?php 

$filename = "output.txt"; #Must CHMOD to 666 or 644 
$text = $_POST['titre']; # Form must use POST. if it uses GET, use the line below: 
// $text = $_GET['titre']; #POST is the preferred method 

$fp = fopen ($filename, "w"); # w = write to the file only, create file if it does not exist, discard existing contents 
if ($fp) { 
    fwrite ($fp, $text. "\n"); 
    fclose ($fp); 
    echo ("File written"); 
} 
else { 
    echo ("File was not written"); 
} 

?> 


EDIT: Добавлены дополнительные поля и обработчик данных.

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

НОВАЯ ФОРМА с дополнительными полями

пример файла данные: test | [email protected] | 123-456-7890

<?php 

$titre= 'Bienvenido a PARIS EXPERT LIMOUSINE ! ' ; 
?> 

<form method="post" action="write.php"> 
Titre: <input name="titre" type="text" id="titre" value="<?php if(isset($_POST['titre'])){echo htmlspecialchars($_POST['titre']); } 
else echo htmlspecialchars($titre); ?>" size="50" maxlength="50"> 

<br> 
Email: <input name="email" size="50" maxlength="50"> 

<br> 
Telephone: <input name="telephone" size="50" maxlength="50"> 


<input type="submit" name="submit"> 
</form> 

<?php 
if (isset($_POST['submit'])) 
{ 
$titre = $_POST['titre']; 
echo($titre); 
} 
?> 

PHP запись в файл обработчик

<?php 

$titre = $_POST['titre']; 
$email = $_POST['email']; 
$telephone = $_POST['telephone']; 
$data = "$titre | $email | $telephone"; 

$fp = fopen("data.txt", "a"); // a-add append or w-write overwrite 

if ($fp) { 
    fwrite ($fp, $data. "\n"); 
    fclose ($fp); 
    echo ("File written successfully."); 
} 

else{ 
    echo "FAILED"; 
} 

?> 
+0

это работает .. однако возможно ли иметь несколько vars в том же текстовом файле? – Alpha

+0

@ Алфа Конечно. Это зависит от того, что вы хотели бы иметь. Чем бы Вы хотели заняться? –

+0

У меня есть 9 var, и они должны делать то же самое, что и $ titre .. ofc У меня будет 9 текстовых полей и 9 кнопок – Alpha

1

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

Titre: <input name="titre" type="text" id="titre" value="<?php if(isset($_POST['titre'])){echo htmlspecialchars($_POST['titre']); } 
else echo htmlspecialchars($titre); ?>" size="50" maxlength="50"> 

Если вам нужно, чтобы сохранить свою ценность навсегда, вы должны сохранить его в базу данных или сохранить его в файл (может быть .txt).

[EDIT]

Вот код для .txt решения (сначала создать file.txt в той же папке):

<?php 
$file = 'file.txt'; 

$lines = file("file.txt"); 
if (!isset($lines[0])) {$titre='Bienvenido a PARIS EXPERT LIMOUSINE ! ';} 
else {$titre=$lines[0];} 
?> 
<form method="post"> 
Titre: <input name="titre" type="text" id="titre" value="<?php if(isset($_POST['titre'])){echo htmlspecialchars($_POST['titre']); } 
else echo htmlspecialchars($titre); ?>" size="50" maxlength="50"> 
<input type="submit" name="submit"> 
</form> 

<?php 
if (isset($_POST['submit'])) 
{ 
echo($_POST['titre']); 
$titre = $_POST['titre']."\n".$titre; 
file_put_contents($file, $titre); 
} 

?> 

Надеется, что это помогает :)

+0

Если я обновить После изменения значения старого значения появляется .. Он не поддерживает новый. – Alpha

+0

Он работает !! спасибо ... Кстати, возможно ли иметь несколько переменных внутри одного и того же файла .txt? – Alpha

+0

Да, проверьте мое редактирование :) Теперь он сохраняет все предыдущие значения в файле file.txt и отображает последний –

0

Это нормально, потому что вы показываете новое содержимое при отправке формы. При обновлении страницы, если не сказать, что это отправить данные POST снова с обновлением (который браузер запрашивает у вас подтверждение) вашей формы (и, следовательно, поле ввода) не будет иметь ничего.

+0

Но мне нужно сохранить новое значение .. не только сохранить на данный момент, но и изменить его на 4ever .. – Alpha

+0

, потому что на странице включения ему нужно показать новое значение – Alpha

+3

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

1
<?php 

if(!($titre = file_get_contents("filename.txt"))){ 
    $titre= 'Bienvenido a PARIS EXPERT LIMOUSINE ! ' ; 
} 

?> 

<form method="post"> 
    Titre: <input name="titre" type="text" id="titre" value="<?php echo htmlspecialchars($titre); ?>" size="50" maxlength="50"> 
    <input type="submit" name="submit"> 
</form> 

<?php 
if (isset($_POST['submit'])) { 
    $titre = $_POST['titre']; 
    if(@file_put_contents("filename.txt", $titre))){ 
    echo 'Success - var stored.'; 
    } else { echo 'Some error.'; } 
    echo($titre); 
} 
?> 
Смежные вопросы