2014-12-06 5 views
0

누군가 내 문제를 해결할 수 있는지 궁금합니다. mysql 데이터베이스에 값 (입력 텍스트)을 보내고 싶지만 항상 빈 텍스트입니다. 같은 양식 내부 버튼을 제출하여 이동에 대해 (PHP로 mysql에 값으로 html 입력 텍스트 추가하기

<form name="form" method="get"> 
    <input type="text" name="nick"> 
    <input type="text" name="message" height="300px"> 
</form> 
     <?php 
$servername = "localhost"; 
$username = "root"; 
$password = "xxx"; 
$dbname = "xxxxx"; 

if (isset($_POST['button1'])) 
{ 
$conn = new mysqli($servername, $username, $password, $dbname); 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 
$nickval = $_POST['nick']; 
$messageval = $_REQUEST['message']; 
$sql = "INSERT INTO Messages (nick, message) 
VALUES ('$_GET[nick]', '$_GET[message]')"; 

if ($conn->query($sql) === TRUE) { 
    echo "OK"; 
} else { 
    echo "Error: " . $sql . "<br>" . $conn->error; 
} 
$result = mysqli_query($conn,"SELECT * FROM Messages"); 

echo "<table border='1'> 
<tr> 
<th>Nick</th> 
<th>Message</th> 
</tr>"; 

while($row = mysqli_fetch_array($result)) 
{ 
echo "<tr>"; 
echo "<td>" . $row['nick'] . "</td>"; 
echo "<td>" . $row['message'] . "</td>"; 
echo "</tr>"; 
} 
echo "</table>"; 
$conn->close(); 
} 
?> 
<form method="POST" action=''> 
<input type="submit" name="button1" value="Send"> 
</form> 
+1

왜 $ _POST, $ _REQUEST 및 $ _GET을 사용하고 있습니까? 양식 메소드는'POST'이므로'$ _POST'를 사용하여 양식에서 입력 내용을 검색해야합니다. – ElefantPhace

답변

1

이 :

<input type="submit" name="button1" value="Send"> 

은 다른 입력이 첫 번째 형태로, 내부에 갈 필요가있다.

<form name="form" method="post"> 
    <input type="text" name="nick"> 
    <input type="text" name="message" height="300px"> 
    <input type="submit" name="button1" value="Send"> 
</form> 

또한 @Joe T의 답변입니다. 이 질문에 많은 문제가있는 것 같습니다.

0

귀하의 SQL을 더 다음과 같아야합니다, 다른 대답은 마우스 오른쪽이다 : 나는 초보자이고 내가 바보 같은 실수 ... 코드를 만든 것 같아요 당신의 입력)에 주석이 쓴 것처럼

$nickval = mysqli_real_escape_string ($conn , $_POST['nick']); 
$messageval = mysqli_real_escape_string ($conn , $_POST['message']); 
$sql = "INSERT INTO Messages (nick, message) 
VALUES ('$nickval', '$messageval')"; 

는 $ _REQUEST와 $ _GET, 여기에 사용되는 경우에만 $ _POST를 사용하지 마십시오.
입력을 이스케이프하지 않으면 (mysqli_real_escape_string으로 여기에서했던 것처럼) 상처의 세계를 요구하고 있습니다.