2012-06-12 3 views
0

양식이 매우 약하다. 양식이 제출 될 때 mysql 테이블이 채워지지 않고있는 것 같습니다. 웹은 양식을 만드는 방법에 관한 많은 것들이 있습니다. PHP에서는 충분하지만, MySQL에서는 충분합니다. 그러나 세 가지를 동기화시키는 어떤 것도 발견하지 못합니다. 이것은 제가 가지고있는 것입니다 :MySQL, PHP 및 HTML 양식 동기화

폼 (걱정하지 마세요.

<div style="background-color:#424142; width:100%; margin-left:7%; margin-top:20px;"> 
    <form action="templates/tmpl_tmd022/scripts/post_subscription.php" method="post"> 
     <table width="100%" border="0"> 
      <tr> 
       <td style="padding:5px; font-family:'Lucida Sans Unicode', 'Lucida Grande', sans-serif; font-size:12px; color:#FFF;" colspan="2">Sign up now to recieve our free newsletter. </td> 
      </tr> 
      <tr> 
       <td style="padding:5px; font-family:'Lucida Sans Unicode', 'Lucida Grande', sans-serif; font-size:12px; color:#FFF;" width="30%">First name:</td> 
       <td style="padding:5px; padding-left:0; font-family:'Lucida Sans Unicode', 'Lucida Grande', sans-serif; font-size:12px; color:#FFF;" width="70%"><input type="text" name="fname" /></td> 
      </tr> 
      <tr> 
       <td style="padding:5px; font-family:'Lucida Sans Unicode', 'Lucida Grande', sans-serif; font-size:12px; color:#FFF;">Last name:</td> 
       <td style="padding:5px; padding-left:0; font-family:'Lucida Sans Unicode', 'Lucida Grande', sans-serif; font-size:12px; color:#FFF;"><input type="text" name="lname" /></td> 
      </tr> 
      <tr> 
       <td style="padding:5px; font-family:'Lucida Sans Unicode', 'Lucida Grande', sans-serif; font-size:12px; color:#FFF;">Email:</td> 
       <td style="padding:5px; padding-left:0; font-family:'Lucida Sans Unicode', 'Lucida Grande', sans-serif; font-size:12px; color:#FFF;"><input type="text" name="email" /></td> 
      </tr> 
      <tr> 
       <td style="padding:5px;">&nbsp;</td> 
       <td style="padding:3px; font-family:'Lucida Sans Unicode', 'Lucida Grande', sans-serif; font-size:12px; color:#000;"><input type="submit" value="Submit" style="color:000;"/></td> 
      </tr> 
     </table> 
    </form> 
</div> 

PHP :

스타일 외부 나는 기능 아래)를 얻을 마자

포함 된 connect_to_mysql.php 파일은 db 이름, db 사용자 및 db 암호이며 테스트를 거쳐 정상적으로 작동합니다.

누군가 내가 뭘 만들고 있는지 (어리석은) 실수에 대한 생각이 있습니까? 당신은 당신의 쿼리를 실행하여 mysql_query() 부분을 포함하지 않은

$sql = "INSERT INTO subscriptions (lname, fname, email) 
     VALUES ('$lname','$fname','$email')"; 
mysql_query($sql); 
+0

mysql_query ($ sql)? 누락되었습니다. – Gntem

답변

4

:

+1

당신은 또한 vars를 http://php.net/manual/en/mysqli.real-escape-string.php와 같은 것을 사용하여 탈출해야합니다. –

+1

글쎄 그들은 정말로 준비된 문장을 사용해야합니다. 그렇습니다. 참고. –

+1

예 준비 문 ftw –

1

시도는 SQL을 수정합니다.

<?php 
require "connect_to_mysql.php"; 

$fname = mysql_real_escape_string($_POST['fname']); 
$lname = mysql_real_escape_string($_POST['lname']); 
$email = mysql_real_escape_string($_POST['email']); 

$sql="INSERT INTO subscriptions (lname, fname, email) 
VALUES ('$lname','$fname','$email')"; 
mysql_query($sql); 

mysql_close(); 

header('Location: http://www.*websitehidden*.com/') 
?> 

또한 mysql_로 기능 ​​을 사용하지 않아야 그들은 일을하는 기존의 방법과 새로운 mysqli_ 함수만큼 빠르고 안전하지 않습니다.

+0

고마워요, 문제를 해결하지 못했지만, 그게 무슨 뜻인지 알 것 같아요. – Nathan

+0

이것이 작동하지 않는 이유를 모르겠다. 위의 게시물은 거의 똑같은 것을 말했고 효과가 있었다. 그러나 감사한다. – Nathan