0

我正在尝试使用

  header("Location: http://www.mysite.com/gamecode.php?gameid=$pw");

下面是我的代码。

   <?php
header("Location: http://www.mysite.com/gamecode.php?gameid=$pw");
$con = mysqli_connect("localhost","placeholder","placeholder","placeholder");
 //or die ('unable to connect');

 // Check connection
 if (mysqli_connect_errno())
 {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }


 //create random table name

  $alpha = "abcdefghijklmnopqrstuvwxyz";

  $numeric = "0123456789";
  $special = ".-+=_,!@$#*%<>[]{}";
  $chars = "";

  if (isset($_POST['length'])){
  // if you want a form like above
  if (isset($_POST['alpha']) && $_POST['alpha'] == 'on')
    $chars .= $alpha;

if (isset($_POST['alpha_upper']) && $_POST['alpha_upper'] == 'on')
    $chars .= $alpha_upper;

if (isset($_POST['numeric']) && $_POST['numeric'] == 'on')
    $chars .= $numeric;

if (isset($_POST['special']) && $_POST['special'] == 'on')
    $chars .= $special;

$length = $_POST['length'];
}else{
// default [a-zA-Z0-9]{9}
$chars = $alpha . $numeric;
$length = 6;
 }
$len = strlen($chars);
$pw = '';

 for ($i=0;$i<$length;$i++)
    $pw .= substr($chars, rand(0, $len-1), 1);
  // the finished password
 $pw = str_shuffle($pw);
 //using the $pw variable for the table name
 $sql="CREATE TABLE `" . $pw . "` (
 PID INT NOT NULL AUTO_INCREMENT, 
 PRIMARY KEY(PID),
 Name CHAR(15))";
 if (mysqli_query($con,$sql))
 {
 echo "table was created";
  }
  else
 {
  echo "Did not create table";
 }



  mysqli_close($con);

上面是我试图将变量添加到 URL 的页面。我确实得到了页面重定向,但是它没有按应有的方式将标头变量添加到重定向中。

4

6 回答 6

6

使用双引号而不是单引号,因此更改为:

header("Location: http://www.yoursite.com/new_page.php?gameid=$gmid");

或者

header('Location: http://www.yoursite.com/new_page.php?gameid='.$gmid);

双引号将在产生最终输出之前评估变量值,而单引号则不会。

于 2013-08-26T05:05:10.973 回答
4

尝试这个:

header('Location: http://www.yoursite.com/new_page.php?gameid=' . $gmid);
于 2013-08-26T05:04:37.417 回答
4

试试喜欢

header('Location: http://www.yoursite.com/new_page.php?gameid='.$gmid);

您需要更改变量之前的引号,或者您也可以尝试使用double quoteslike

header("Location: http://www.yoursite.com/new_page.php?gameid=$gmid");
于 2013-08-26T05:05:06.820 回答
3

将引号更改为双引号。

于 2013-08-26T05:05:00.890 回答
1

header("Location: http://www.yoursite.com/new_page.php?gameid=$gmid");

看到引号...."而不是'.

于 2013-08-26T05:07:31.813 回答
1

您对引号和双引号有疑问:将您的行更改为:

 header("Location: http://www.yoursite.com/new_page.php?gameid=$gmid");

或这个:

 header("Location: http://www.yoursite.com/new_page.php?gameid=".$gmid);

如果这样做'$variable',它将被解释为字符串并且:

回声'$variable';将$variable显示为 output 。但是如果你使用 "$variable" , echo 将输出这个变量的值。

于 2013-08-26T05:07:53.687 回答