2014-05-13 2 views
1

그래서 텍스트 영역을 에코하려고 했으므로 작동하는지는 알지만 작동하지 않습니다. 게시물 이름의 테이블을 만들었으며 거기에 ID 사용자 이름과 게시물을 입력 할 수 있습니다.PHP는 데이터베이스에 텍스트 영역을 삽입합니다.

하지만 테이블에 heres는 내 코드 아무것도 삽입 나던 :

<?php 
session_start(); 
$session = $_SESSION['username']; 

if(!$session){ 
header('Location: http://wirechat.net16.net/login.php'); /* Stuur de browser naar www.site.nl */ 
} 

?> 
<html> 
<head> 
<meta http-equiv='Content-Type' content='text/html; charset=utf-8' /> 
<title>TWITTER RAMON</title> 
<link rel='stylesheet' type='text/css' href='style.css'/> 
</head> 
<body> 
<div id='banner'> 
<table style='width:100%;'> 
<tr> 
<td> 
<span style='font-size:24px;'><b>EGGY</b></span><?php echo $session ?> 
</td> 
<td width='100%' style='text-align:right;'> 
<a href='index.php'>Home</a> // <a href='followers.php'>Followers Post</a> // <a href='stats.php'>Stats</a> // <a href='search.php'>Search User</a> // <a href='logout.php'>logout</a> 
</td> 
</tr> 
</table> 
</div><br/><br><br/> 
<div class='div' id='post'> 
<table width='100%'> 
<tr> 
<td width='40%'> 
Post je bericht: 
</td> 
<td width='60%'> 
Afbeeldingen&Smileys 
</td> 
</tr> 
<form action="post.php" method="POST"> 
<tr> 
<td><textarea cols='25' name='textarea' id='textarea' class='textarea'></textarea> 
</td> 
<td style='padding:20 40 10 40;'> 
<div style='float:left;text-align:center;'>afbeelding</div> 
<div style='float:right;text-align:center;'>smileys</div> 
</td> 
</tr> 
</table> 
<table class='submit'> 
<tr> 
<td> 
<input type='submit' class='postbtn' name='post' value='Post je text!'/> 
</td> 
</tr> 
</form> 
</table> 
</div> 
<div class='post'> 
<table> 

</table> 
</div> 
</body> 
</html> 
<?php 
$host = "------------"; 
$database = "------------"; 
$user = "-----------"; 
$dbpass = "---------"; 

if ($postbtn){ 
$postbtn = $_POST['post']; 
$post = $_POST['textarea']; 

echo htmlspecialchars($_POST['textarea']); 

//$conn = mysql_connect($host, $user, $dbpass); 
//mysql_select_db($database, $conn); 
//mysql_query("INSERT INTO posts (Username, Post) VALUES ('".$_SESSION['username']."', '".$post."')", $conn); 

echo "Posted successfuly!"; 
} 
?> 
+5

당신은 삽입 작업을 수행하는 코드를 인식 할 바로 주석? 그러나 이것은 코드가 SQL 주입 공격에 광범위하게 열려 있기 때문에 좋은 일입니다. –

+0

게다가 조건문 (*은 절대 실행되지 않습니다)은 설정되거나 정의되지 않은'$ postbtn' 변수를 기반으로합니다. 나는 당신이'if (isset ($ _ POST [ 'post'])) {{}}'('name = ')'이어야하는 submit 버튼의 클래스 이름'class = 'postbtn' 게시물 '). –

답변

1

당신은 배치 할 것을 $ postbtn = $ _POST [ '포스트']; 라인 전에 if ($ postbtn) 항상 false가 발생합니다.

$postbtn = isset($_POST['post']); 
if ($postbtn){ 

주의 : John이 지적했듯이 코드는 SQL 삽입 공격에 취약합니다. 이 문제를 방지하려면 this post을 살펴 봐야합니다.

+0

OMG 너무 바보. 그러나 당신은 그것을 어떻게 보호 할 수 있습니까? 아니면 '다른 질문'입니까? – user3625270

+0

SQL 삽입을 방지하는 방법에 대한 답변으로이 게시물을 확인하십시오. http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection –

0

마찬가지이다

= $ postbtn는 isset ($ _ POST [ '포스트']);

($의 postbtn) {

그렇다면 :

if(!empty($_POST['post'])) { 
관련 문제