2011-08-30 4 views
0

문제점 : 데이터베이스에서이 쿼리를 수행 할 때 필드 값을 저장해야합니다. 이 같은 구문을 사용하고 몇 페이지를 가지고 있지만 어떤 이상한 이유로이 협력하지 않습니다 ..Php 변수를 저장할 때 정의되지 않은 색인

HTML

<form method="post" action="listPage.php"> 
    <fieldset> 
    <legend>Pull some data</legend> 
    <label for="name">Name</label> 
    <input type="text" name="name" id="name" maxlength="255" /> 
    <hr /> 
    <br /> 
    <input type="submit" value="find event" /> 
    </fieldset> 
    </form> 

listPage.php 후 값이 있는지 확인하기 위해

<?php 

//CONNECT TO DATABASE 
$user="root"; 
$password=""; 
$database="db"; 
$connection=mysql_connect('localhost',$user,$password); 
@mysql_select_db($database) or die("Unable to select database"); 

echo "NOT running..."; 

//STORE ALL DATA FROM PREVIOUS FORM 
if (isset($_POST['name'])) { 
    $name = mysql_real_escape_string($_POST['name']); 

    $query="SELECT event FROM events WHERE event='$name'"; 
    $result=mysql_query($query) or die(mysql_error()); 
    $num=mysql_numrows($result); 

    echo "running..."; 

    while ($row = mysql_fetch_array($result)) 
    { 
    echo $row['event'] . " // "; 
    echo "<br />"; 
    } 
} 

mysql_close($connection); 
?> 
+0

1.'$ name' 변수를 이스케이프 처리해야합니다. 2.'phpinfo()'만있는 스크립트를 만들면 어떨까요? 대신이 스크립트를 사용하여 list.php가 어떤 환경에서 실행되는지보기 위해 HTML을 변경하십시오. 3. db에 대한 연결이 실제로 작동한다는 것을 확인하십시오! –

+0

@Ed Heal에 감사 드려요.하지만 변수를 list.php로 넘기는 것조차 보이지 않습니다. 그것에 대한 아이디어가 있습니까? – Starboy

+0

@Starboy는 list.php 출력을 전혀하지 않습니까? 'display_errors'가 켜져 있습니까? –

답변

0

확인 그것으로 무엇인가를하기 전에 설정됩니다. (또한 mysql_real_escape_string()에 전화하는 것을 잊지 마십시오.)

데이터가 게시 된 후 페이지가 처음로드되거나 새로 고쳐질 때이 코드가 페이지에 나타나면 설정되지 않을 수 있습니다.

// Don't attempt any of this unless you actually have a $_POST value 
if (isset($_POST['name'])) { 
    $name = mysql_real_escape_string($_POST['name']); 

    $query="SELECT event FROM events WHERE event='$name'"; 
    $result=mysql_query($query) or die(mysql_error()); 
    $num=mysql_numrows($result); 

    while ($row = mysql_fetch_array($result)) 
    { 
    echo $row['event'] . " // "; 
    echo "<br />"; 
    } 
} 
+0

고마워 마이클, 그리고 내가 제출 한 값을 (list.php에) 전달 된 가치조차 보이지 않는 것 ... 그것에 대한 아이디어? – Starboy

+0

@listboy'list.php' 상단의'var_dump ($ _ POST)'? 또한, 진짜'list.php' 또는'List.php'입니까? 중요한 시스템의 경우 –

+0

코드를 권장 사항으로 업데이트했으며 if 문을 통과하지도 않았습니다. 또한 list.php에 var_dump ($ _ POST)를 추가했는데 아무 것도 나오지 않았습니다. 또한 list.php를 listPage.php로 변경했는데 행운을 얻었지만 행운이 없다는 것을 알았습니다. – Starboy

0

내가 빨리 POST 또는 HTML 양식 변수 수 예약어에 관한 문서를 찾을 수 없습니다, 그래서

http://www.w3schools.com/TAGS/tryit.asp?filename=tryhtml_form_method_post

에 가서 namefname 필드를 변경 (edit and click me button를 클릭) POST 변수가 전달되거나 인식되지 않았습니다.

필드의 이름을 name 이외의 것으로 변경하는 것이 좋습니다.

관련 문제