2014-11-29 2 views
0

나는 AWS에서 Apache, PHP, MYSQL을 사용하여 EC2 웹 서버를 설정했으며,이 코드를 제외하고는 모든 코드가 PHP와 HTML5에서 작동했다. 나는 PHP와 mySQL에 익숙하지 않기 때문에 대답은 정말 간단 할 것이다.mysql_query 명령어로 전체 페이지가로드되지 않습니까?

<?php 

mysql_connect('localhost', 'root', '') or die("Couldn't Connect") ; 

echo 'Connected!'; 

     mysql_select_db('testdatabase') or die("Couldn't find database"); 

echo "Connected!"; 
?> 

<!DOCTYPE html> 
<html lang='pt'> 
<head> 
     <meta http-equiv="content-type" content="text/html; charset=UTF-8"> 
</head> 
<body> 

<form method="post" action=""> 

Nome: <input type="text" name="nome"/><br> 
Telefone <input type="text" name="telefone" /><br> 
<input type="submit" value="Enviar" /><br> 

</form> 


<?php 

     $nome = $_POST['nome']; 
     $telefone = $_POST['telefone']; 

     if(empty($nome) || empty($telefone)) { 
       echo "Preencha tudo!"; 
     }  else { 
       $sql = "INSERT INTO dados(nome,telefone) VALUES ('$nome','$telefone')"; 
       $result = mysql_query($sql); 
         if($result == false) { 
         die("Error".mysql_error()); 
         } 


       } 


?> 


</body> 
</html> 

짐작 하셨겠지만, 이것은 내가 본 튜토리얼에서 작동하는 예제 코드입니다. 웃긴 점은, 나는 아무런 오류가 없다는 것입니다.

페이지에 아무 것도 표시되지 않고 영원히 계속로드됩니다. 투쟁의 많은 후, 나는 단순히

$의 SQL =을 삭제 한 경우 "dados (놈, 전화기 수도) ('$의 놈', '$의 전화기 수도')를 값으로 INSERT"발견;

라인은 페이지에 echo 및 echo 명령을 표시하지만 분명히 php가 제대로 작동하지 않습니다.

내가 MySQL의에서 사용하고 데이터베이스는 다음과 같습니다

Database changed 
mysql> show tables; 
+-------------------------+ 
| Tables_in_testdatabase | 
+-------------------------+ 
| dados     | 
+-------------------------+ 
1 row in set (0.00 sec) 
mysql> select * from dados; 
+----+-------+------------+ 
| id | nome | telefone | 
+----+-------+------------+ 
| 1 | Peter | 2147483647 | 
+----+-------+------------+ 
1 row in set (0.01 sec) 

나는 그것을 할 수 있는지 모르겠어요. 나는 이미 같은 목적으로 새로운 코드를 작성하려고 시도했지만 동일한 결과를 얻었습니다. 빈 페이지가로드되었습니다.

상관 관계가 있는지 모르겠지만 코드에서 사용한 언어는 포르투갈어입니다.

미리 감사드립니다.

+0

당신이 가지고 : 당신이 웹 서버를 배포하는 경우

, 당신은 명시 적으로 80

enter image description here

현재 EC2 보안 그룹에 대해 자세히 알아볼 수 있습니다 포트 TCP 트래픽 권한을 부여해야합니다 여분의} 그 후 다른 조건 – Mihai

답변

0

방금 ​​설치 한 EC2 인스턴스에서 코드를 테스트했는데 예상대로 작동합니다.

enter image description here

mysql> create table dados(nome varchar(50), telefone varchar(50)); 
Query OK, 0 rows affected (0.00 sec) 

mysql> show tables; 
+----------------+ 
| Tables_in_test | 
+----------------+ 
| dados   | 
+----------------+ 
1 row in set (0.00 sec) 

mysql> select * from dados; 
+------+----------+ 
| nome | telefone | 
+------+----------+ 
| test | 111  | 
+------+----------+ 
1 row in set (0.00 sec) 

mysql> 

페이지에 연결할 때 빈 페이지를 수신하는 경우

, 그것은 EC2 보안 그룹 구성과 관련이있을 수 있습니다.

보안 그룹을 사용하면 인스턴스간에주고받을 수있는 네트워크 트래픽의 종류를 정의 할 수 있습니다. 들어오는 트래픽은 기본적으로 거부됩니다.

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html

+0

나는 보안 Gropus를 확인하고 모든게 괜찮은 것 같습니다. 이 [image] (http://i.imgur.com/zh4mFRX.png)와 같이 HTTP, HTTPS 및 SSH에 대한 인증을 설정합니다. 너와 거의 똑같이 보인다. –

+0

좋습니다. 두 사람은 다음을 확인합니다. 1/yoru EC2 인스턴스에 연결하고/var/log/httpd에있는 Apache 로그를 확인합니다. Access.log 및 error.log 파일이어야합니다. 거기에 오류 메시지가 있습니까? 2/EC2 인스턴스에서 페이지에 연결할 수 있습니까? 'curl http : //your_public_ip_address/you_path_to_your_page.php'명령을 사용하여 테스트 할 수 있습니다. –

+0

시간 내 주셔서 감사합니다. error.log의 access.log 및 [작은 오류 메시지] (http://i.imgur.com/1t97L8r.png)에는 문제가없는 것 같습니다.curl 명령에 관해서는 정보 나 오류를 다시 얻지 못하므로 제대로 작동한다고 가정합니다. –

관련 문제