php cookie 값이 META HTTP-EQUIV="Refresh"를 통해서 다른 php로 넘어갈 때 적용이 잘 안되요.
안녕하세요
php, mySQL 입문자 김장원입니다.
지금 php와 mySQL로 어떤 auido를 듣고 몇가지 항목에 대해 evaluation을 하는 웹페이지를 만들고 있는데요,
cookie 값이 두 개의 php 파일 사이에서 연동이 잘 되지 않는 것 같아요.
며칠째 문제를 파악하려고 붙잡고 있는데, 시간만 흐르고 답이 나오질 않네요. ㅜㅜ
꼭 도와주셨으면 좋겠습니다.
일단 문제가 있는 파일 두 개를 여기에 올릴께요.
input.php에서 쿠키 (num_vids)의 값을 하나씩 증가시키고, stim.php파는 파일을 한번씩 불러서 그 증가된 값으로 html을 만드는 코드입니다.
sail.usc.edu/~jangwon/ema_eval/
여기에 가시면 문제가 있는 부분을 직접 확인해보실 수 있어요.
처음에 아이디 새로 입력하고 evaluation을 시작하시면, 1 out of 5 같은 글이 title로 보이실 거에요. 거기서 1에 해당되는 값이 num_vids라는 쿠키의 값인데, 하나씩 증가되지가 않아요. 1 -> 1-> 3-> 3-> 5 이렇게 증가가 되기도 하고 그럽니다.
도대체 문제가 무엇인지 모르겠어요.
firefox의 option -> privacy 로 들어가서 쿠키값들을 직접 확인해보면, num_vids가 하나씩 증가가 되고 있는 것이 확인 되는데, 실제로 웹 페이지에서 보이는 값들은 이상해요.
혹시 궁금한 점이 있으시면 아래 이메일로 연락주세요.
jangwon@usc.edu
감사합니다.
1. input.php ---------------------------------------------------------- <?php $con = mysql_connect("localhost:3306", "user_name", "password"); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("data_eval", $con); if (isset($_COOKIE['num_vids'])) { $val = $_COOKIE['num_vids'] + 1; setcookie(num_vids,'',time()-3600); setcookie(num_vids,$val,time()+60*60*60*24); } else { $val = 2; setcookie(num_vids,$val,time()+60*60*24*60); } $date = date("Y.m.d"); $name = $_COOKIE['sub_name']; $age = $_COOKIE['sub_age']; $gender = $_COOKIE['sub_gender']; $native = $_COOKIE['sub_native']; $prof = $_COOKIE['sub_prof']; $sentID = $_COOKIE['sentID']; $sentNum = $_COOKIE['sentNum']; $sentType = $_COOKIE['sentType']; $emo = $_POST['emo']; $nat = $_POST['naturalness']; if (isset($_COOKIE['sub_name'])) { $sql = "INSERT INTO $name VALUES('$name', '$age', '$gender', '$native', '$prof', '$date', '$pers_type', '$sentID', '$sentNum', '$sentType', '$emo', '$nat')"; } else { die("Your session has expired, please copy this address into your browser's address bar and log in again: <a href="http://sail.usc.edu/~jangwon/ema_eval/"" rel="nofollow">http://sail.usc.edu/~jangwon/ema_eval/"</a>); } #echo $vflag; # This part updates the number of a times a single file has been viewed $check = mysql_query("SELECT * FROM Clips WHERE ClipID = '$sentNum'"); if ($check) { while($row = mysql_fetch_array($check)) { $times = $row[TimesViewed]; } } $times = $times + '1'; mysql_query("UPDATE Clips SET TimesViewed = '$times' WHERE ClipID = '$sentNum'"); if (!mysql_query($sql, $con)) { die('Error: ' . mysql_error()); } if ($_COOKIE['num_vids'] >= $_COOKIE['numToEval']) { print "<h1><a href='http://sail.usc.edu/~jangwon/ema_eval/done.php'>That was the last video, please click here to end the evaluation.</a></h1>" and die; } mysql_close($con); ?> <?php print $_COOKIE['num_vids']; ?> <?php print $_COOKIE['numToEval']; ?> <META HTTP-EQUIV="Refresh" CONTENT="2; URL=http://sail.usc.edu/~jangwon/ema_eval/stim.php"> <?php print $_COOKIE['num_vids']; ?> <?php print $_COOKIE['numToEval']; ?> </html>
2 stim.php ---------------------------------------------------------------
<?php print $_COOKIE['num_vids']; ?> <?php print $_COOKIE['numToEval']; ?> <?php $con = mysql_connect("localhost:3306", "user_name", "password"); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("data_eval", $con); $choice = $_COOKIE['num_vids']; $result = mysql_query("SELECT * FROM Clips WHERE ClipID='$choice'"); if (!$result) { $message = 'invalid query: ' . mysql_error() . "\n"; $message .= 'Whole query: ' . $query; die($message); } else { while($row = mysql_fetch_array($result)) { $filename = $row[ClipName]; $video_flag = $row[ClipType]; } $inTwoMonths = 60*60*24*60 + time(); setcookie(sentNum, $choice, $inTwoMonths); setcookie(sentID, $filename, $inTwoMonths); setcookie(sentType, $video_flag, $inTwoMonths); setcookie(video_flag, '0', $inTwoMonths); } // for this evaluation, only use audio data $header = "Clips/"; $footer = ".mp3"; mysql_close($con); ?> <html> <head> <title><?php echo $_COOKIE['sub_name']?>'s Evaluation: <?php echo $_COOKIE['num_vids']?> out of <?php echo $_COOKIE['numToEval']?></title> </head> <body> <?php echo $_COOKIE['num_vids']?> <center><h2><?php echo $_COOKIE['sub_name']?>'s Evaluation: <?php echo $_COOKIE['num_vids']?> out of <?php echo $_COOKIE['numToEval']?><br><br> </h2></center> <form name="myform" action="input.php" method="POST"> <!--<table width="95%" border="2" align="center">--> <table align="center" border="2" cellpadding=10 cellspacing=10> <tr align="center"><td>Audio File</td><td>How would you describe this utterance?</td></tr> <tr> <td> <?php print $_COOKIE['sendID']?> <?php print $filename?> <object type="application/x-shockwave-flash" data="player.swf" id="audioplayer1" height="25" width="250"> <param name="movie" value="player.swf"> <param name="FlashVars" value="playerID=audioplayer1&soundFile=<?php print $header?><?php print $filename?><?php print $footer?>"> <!-- <param name="FlashVars" value="playerID=audioplayer1&soundFile=001.mp3"> --> <param name="quality" value="high"> <param name="menu" value="false"> <param name="wmode" value="transparent"> </object> <!--<?php echo $header; echo $filename; ?>--> </center> </td> <td> <center><br>Please select the label that best describes the <i>emotion</i> displayed in the clip: <br><br> <table> <tr><td>Neutral:</td><td><input type="radio" name="emo" value="2"></td></tr> <tr><td>Angry:</td><td><input type="radio" name="emo" value="0"></td></tr> <tr><td>Happy:</td><td><input type="radio" name="emo" value="1"></td></tr> <tr><td>Sad:</td><td><input type="radio" name="emo" value="3"></td></tr> <tr><td>Other:</td><td><input type="radio" name="emo" value="4"></td></tr> <tr><td><br></td></tr> </center> <tr><td> <hr><br><br>Please rate the <i>human-ness</i> of the clip:<br><br> <center> <table> <tr><td>Human-like (completely NATURAL):</td><td><input type="radio" name="naturalness" value="4"></td></tr> <tr><td>Close to Human-like:</td><td><input type="radio" name="naturalness" value="3"></td></tr> <tr><td>Sort of Human-like:</td><td><input type="radio" name="naturalness" value="2"></td></tr> <tr><td>Not very Human-like:</td><td><input type="radio" name="naturalness" value="1"></td></tr> <tr><td>Distorted (completely UNNATURAL):</td><td><input type="radio" name="naturalness" value="0"><br><br></td></tr> <tr><td><br></td></tr> </table> </center> <!-- use type hidden if you do not want it to be seen --> <tr align="center"><td colspan="4"> <input name="submit" type="submit" value="submit" color="red"></tr></td> </div> </table> </form> </body> </html>
댓글 달기