php cookie 값이 META HTTP-EQUIV="Refresh"를 통해서 다른 php로 넘어갈 때 적용이 잘 안되요.

sylphguy의 이미지

안녕하세요
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&amp;soundFile=<?php print $header?><?php print $filename?><?php print $footer?>">
<!-- <param name="FlashVars" value="playerID=audioplayer1&amp;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>

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.