2015-09-07 3 views
-1

Я работаю на веб-сайте, где пользователь собирается заполнить форму, и форма будет распечатана в файл .txt.PHP fwrite и variable isset

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

Мой код (index.php):

<form action="sendinfo.php" method="post"> 
Your Name:<br /> 
<input type="text" name="name"><br /> 
Your Message:<br /> 
<textarea name="message"></textarea><br /> 
<input type="submit" value="Send Info"> 
</form> 

Мой код (sendinfo.php)

<?php 
    //variables 
    $name = $_POST['name'] > 
    $message = $_POST['message'] 

    //code i need to know 
    if (!isset()){ 

    } 
    ?> 

    <?php 
     //write text file. 
     $file = fopen("Test.txt","w"); 
     fwrite($file, "Name: " . $name . "\r\n"); 
     fwrite($file, "Message: " . $message . "\r\n"); 
    ?> 

ответ

0

Вы думаете, что слишком сложно. Попробуйте это:

<?php 

//variables 
$name = $_POST['name']; 
$message = $_POST['message']; 

//write text file. 
$file = fopen("Test.txt","w"); 
if ($name) fwrite($file, "Name: " . $name . "\r\n"); 
if ($message) fwrite($file, "Message: " . $message . "\r\n"); 
?> 

Причина, почему это работает, как PHP обрабатывает такое условие: он будет решать выражение ложно для чего-нибудь «falsy», поэтому переменная, которая не установлена, пустая переменная и переменная, которая содержит false или null. Для всего остального выражение будет разрешено true, поэтому запись будет записана.

+0

Никогда не думал, что это сработает. но это так. Большое спасибо! – mike