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>

댓글 달기