2013-05-16 3 views
0

Так что я не так хорош в php, и у меня есть базовая система комментариев, которую я пытаюсь реализовать, что вызывает и записывает в файл comments.php.

все работает хорошо, пока я не попытаюсь немного стирать $ outputstring.

это код у меня есть

$outputstring = "<br><p><span class="label">Name:</span> " .$name. "</p><br> <p><span class="label">Comment:</span>" .$message. "</p><br>"; 

Я знаю причиняет это

<span class="label"></span> 

, но может кто-нибудь сказать мне, почему?

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

полный сценарий выглядит следующим образом.

<?php 
$act = $_POST['act']; 
if($act == "post") { 
$name = $_POST['name']; 
$message = $_POST ['message']; 
@$fp = fopen("comments.php", 'a'); 
if (!$fp) { 
    //The file could not be opened 
    echo "There was an error! Please try again later!"; 
    exit; 
} else { 
    //The file was successfully opened, lets write the comment to it. 
    $outputstring = "<br><p><span class="label">Name:</span> " .$name. "</p><br> <p><span class="label">Comment:</span>" .$message. "</p><br>"; 

    //Write to the file 
    fwrite($fp, $outputstring, strlen($outputstring)); 

    //We are finished writing, close the file for security/memory management purposes 
    fclose($fp); 

    //Post the success message 
    echo "Your post was successfully entered. Click <a href='index.php'>here</a> to continue."; 
} 
} else { 
//We are not trying to post a comment, show the form. 
?> 
<h3>comments:</h3> 
<hr/> 
<?php include("comments.php"); ?> 
<br><br> 
<h3>Post a comment:</h3> 
<form action="index.php" method="post"> 
<label>Name:<label> 
<input type="text" name="name" value=""></input> 
<br/> 
<label>Comment:</label> 
<textarea name="messages"></textarea> 
<input type="hidden" name="act" value="post"></input> 
<br/> 
<input type="submit" name="submit" value="Submit"></input> 
</form> 
<?php 
} 
?> 

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

спасибо.

+0

Вы должны избегать цитат с использованием '\" 'или использовать одинарные кавычки:' 'или' ' – billyonecan

+0

Escape double quotes in' $ outputstring' или использовать одинарную цитату – Raptor

ответ

0

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

$outputstring = "<br><p><span class='label'>Name:</span> " .$name. "</p><br> <p><span class='label'>Comment:</span>" .$message. "</p><br>"; 
+0

Большое спасибо, я узнал это, как 2 дня назад, но забыл. Думаю, это то, что я получаю от попыток заставить научиться кучу новых вещей 8 часов в день: \. Значит, лучше всего. – SteveJeffs

+0

Cheers @ user2142866 Счастливое кодирование :) –

0
$outputstring = "<br><p><span class="label">Name:</span> " .$name. "</p><br> <p><span class="label">Comment:</span>" .$message. "</p><br>"; 

Эта линия является неправильной, потому что вы нарушаете ваши разделители строк. Используйте простые кавычки вместо двойных кавычек для класса атрибута:

$outputstring = "<br><p><span class='label'>Name:</span> " .$name. "</p><br> <p><span class='label'>Comment:</span>" .$message. "</p><br>"; 

Или, как заявил chandresh_cool, избежать ваши двойные кавычки.

0

$outputstring = '<br><p><span class="label">Name:</span> ' .$name. '</p><br> <p><span class="label">Comment:</span>' .$message. '</p><br>'; Это должно решить проблему, если вы не используете динамические значения.