2013-05-26 4 views
1

올바르게 수행하는 것을 잊었습니다. 나는 기본적으로 하나의 PHP 페이지가 데이터베이스 (submitscore.php)에 데이터를 보내려면 다른 하나는 (showscore.php) 데이터베이스에서 그들을 잡아 테이블에 그들을 표시 :페이지간에 데이터를 전달 하시겠습니까?

submitscore.php :

if(isset($_POST['score']) && isset($_POST['playername'])) 
{ 
    $scorefromflash = mysql_real_escape_string($_POST['score']); 
    $namefromflash = mysql_real_escape_string($_POST['playername']); 


    $con = mysql_connect("servername","username","password"); 
    if (!$con) 
    { 
     die('Could not connect: ' . mysql_error()); 
    } 

    mysql_select_db("testdb", $con); 

    $sql = "INSERT INTO test (Name, Score) VALUES ('$namefromflash', '$scorefromflash')"; 

    header("./showscore.php"); 

    if (!mysql_query($sql,$con)) 
    { 
     die('Error: ' . mysql_error()); 
    } 

    mysql_close($con); 
} 
?> 

showscore.php

<?php 

$con = mysql_connect("server","username","password"); 
if (!$con) 
{ 
    die('Could not connect: ' . mysql_error()); 
} 

mysql_select_db("testdb", $con); 

echo ("Name: ".$namefromflash); 
echo ("Score: ".$scorefromflash); 

$result = mysql_query("SELECT * FROM test ORDER BY Score DESC"); 

echo "<table border='1'> 
<tr> 
<th>Name</th> 
<th>Score</th> 
</tr>"; 

while($row = mysql_fetch_array($result)) 
    { 
    echo "<tr>"; 
    echo "<td>" . $row['Name'] . "</td>"; 
    echo "<td>" . $row['Score'] . "</td>"; 
    echo "</tr>"; 
    } 
echo "</table>"; 

if (!mysql_query($sql,$con)) 
{ 
    die('Error: ' . mysql_error()); 
} 

mysql_close($con); 

?> 

이렇게하면 submitscore.php 페이지에 오류 Notice: Undefined index: scoreNotice: Undefined index: playername을 제공하기 때문에 내가 부탁드립니다.

데이터베이스에 레코드를 삽입하거나 테이블을 표시하지 않습니다.

감사합니다.

당신이 쇼의 점수 페이지에

$scorefromflash = $_POST['score']; 
$namefromflash = $_POST['playername']; 

필요하지 않습니다 당신의 codes 당신이 데이터베이스에 값을 삽입하기 전에 mysql_real_escape_string 기능을 사용한다 sql injection에 취약

+0

DB에 데이터를 저장할 수 있습니까? – Steven

+0

mysql 함수는 더 이상 사용되지 않습니다. PDO 또는 mysqli를 살펴보십시오. http://nl1.php.net/manual/en/book.pdo.php 또는 http://nl1.php.net/manual/en/book.mysqli.php – botenvouwer

답변

1

여기에 나를 위해 일한 코드는 다음과 같습니다.

submitscore.php :

<?php 
if(isset($_REQUEST['score']) && isset($_REQUEST['playername'])) 
{ 
    $con = mysql_connect("host","user","password"); 
    if (!$con) 
    { 
     die('Could not connect: ' . mysql_error()); 
    } 

    mysql_select_db("database", $con);  
    $scorefromflash = mysql_real_escape_string($_REQUEST['score']); 
    $namefromflash = mysql_real_escape_string($_REQUEST['playername']); 

    $sql = "INSERT INTO test (Name, Score) 
      VALUES ('$namefromflash', '$scorefromflash')"; 

    if (!mysql_query($sql,$con)) 
    { 
     die('Error: ' . mysql_error()); 
    } 

    mysql_close($con); 

    header("Location: showscore.php"); 
} 
?> 

는 모든 데이터와 테이블이 표시되는 페이지로 리디렉션 데이터를 삽입 한 후 showscore.php

<?php 
$con = mysql_connect("host","user","password"); 
if (!$con) 
{ 
    die('Could not connect: ' . mysql_error()); 
} 

mysql_select_db("database", $con); 

$result = mysql_query("SELECT * FROM test ORDER BY Score DESC"); 
if (!$result) 
{ 
    die('Error: ' . mysql_error()); 
} 

echo "<table border='1'> 
<tr> 
<th>Name</th> 
<th>Score</th> 
</tr>"; 

while($row = mysql_fetch_array($result)) 
{ 
    echo "<tr>"; 
    echo "<td>" . $row['Name'] . "</td>"; 
    echo "<td>" . $row['Score'] . "</td>"; 
    echo "</tr>"; 
} 
echo "</table>"; 

mysql_close($con); 
?> 

. 데이터베이스 자격 증명을 변경하십시오. 난 당신이 submitscore.php에서 이것을 시도 $_POST['score'] and $_POST['playername']

와 showscore.php 다시 페이지를 다시로드 헤더를 설정하려고 생각

http://domain/submitscore.php?score=1&playername=2 
+0

왜 그가 $ _REQUEST [ 'playername'] & $ _REQUEST [ 'score']가 필요합니까? – sAnS

+0

@santanukumar 그는 submitscore.php의 통지에 대해 질문하고 있습니다. . 이 파일에서 그는 데이터를 삽입하고 있습니다. 그것이 내가 그것을 사용한 이유입니다. – user4035

+0

그의 질문에 따라 그의 의도는 데이터베이스 레코드를 보여주는 것이고 그는 데이터베이스에서 보여주기 위해이 두 값이 필요한지 아닌지 알지 못합니다. – sAnS

2

.. ...

+0

지금 가지고있는 것으로 업데이트되었습니다. 그것은 오류를 보여주지는 않지만 테이블의 데이터베이스에서 데이터를 보여주지 않습니다. – Liam

+0

ufoinvasion에 데이터를 삽입하고 있지만 res 테이블을 사용하여 acess를 시도하고 있습니다. SELECT * FROM ufoinvasion ORDER BY showscore.php의 DESC를 삽입하십시오. 삽입 중에 선택한 데이터베이스는 mysql_select_db ("bg29li", $ con)입니다. 하지만 당신은 mysql_select_db ("testdb", $ con); showscore.php에서. – sAnS

+0

코드를 업데이트했습니다. – Liam

0

다음은 GET 요청은 내가 시험에 사용하는 것이있다 :

$scorefromflash = $_REQUEST['score']; 
$namefromflash = $_REQUEST['playername']; 
+0

왜 그가 자신의 질문에 따라 데이터베이스에서 데이터를 보여주기를 원했기 때문에 $ _REQUEST [ 'playername'] & $ _REQUEST [ 'score']를 보내야합니까? – sAnS

+0

그는 거기를 에코에 넣기 때문입니다. 나는 왜 그런지 모르지만 그가 원하는 것을 원한다면. – botenvouwer

+0

지금 가지고있는 것으로 업데이트되었습니다. 그것은 오류를 보여주지는 않지만 테이블의 데이터베이스에서 데이터를 보여주지 않습니다. echos는 변수가 작동하는지 테스트하는 것입니다. – Liam

0

첫째 :

header("location: ./showscore.php?player=$namefromflash&score=$scorefromflash"); 

과 showscore.php 사용 내부

요 ur 코드는 저장되지 않습니다. mysql_escape_string

이것은 실제로 오류가 아닙니다. 그것은 (그것이 말하는 것처럼) 통지입니다. 변수가 설정되어 있는지 확인하려면 isset 함수를 사용하지 마십시오. 이전에 페이지가 페이지를 보내지 않았기 때문에이 변수에 값이 없을 가능성이 있습니다.

당신이

$scorefromflash = $_POST['score']; 

사용이 대신 사용하는 경우 :

$scorefromflash = isset($_POST['score'])?$_POST['score']:null 

다음이 통지가 사라질 것입니다.기타 $_POST

+0

지금 가지고있는 것으로 업데이트되었습니다. 그것은 오류를 보여주지는 않지만 테이블의 데이터베이스에서 데이터를 보여주지 않습니다. – Liam

관련 문제