开发者

Error when visiting PHP page, using $_REQUEST

<?php
if ($_REQUEST['c'] == "1") {
    echo "<p style=\"text-align: center;\">Your shell account has been setup. Please check your inbox.</p>";
}
elseif ($_REQUEST['c'] == "2") {
    echo "<p style=\"color: red; text-align: center;\">There was a problem setting up your account! Please contact Fike via his details <a href=\"http://fike.me\">here<开发者_运维百科;/a>.</p>";
}
else {
    include("elements/signup_form.php");
}

Could somebody tell me what I'm doing wrong? When I request the normal page, it's supposed to display the form, however it gives me these errors:

Notice: Undefined index: c in C:\xampp\htdocs\index.php on line 27

Notice: Undefined index: c in C:\xampp\htdocs\index.php on line 30


Try checking if $_REQUEST['c'] exists as well:

<?php
if (isset($_REQUEST['c']) && $_REQUEST['c'] == "1") {
    echo "<p style=\"text-align: center;\">Your shell account has been setup. Please check your inbox.</p>";
}
elseif (isset($_REQUEST['c']) && $_REQUEST['c'] == "2") {
    echo "<p style=\"color: red; text-align: center;\">There was a problem setting up your account! Please contact Fike via his details <a href=\"http://fike.me\">here</a>.</p>";
}
else {
    include("elements/signup_form.php");
}


Do this instead:

if (isset($_REQUEST['c'])) switch ($_REQUEST['c']) {
  case '1':
    echo "<p style=\"text-align: center;\">Your shell account has been setup. Please check your inbox.</p>";
    break;
  case '2':
    echo "<p style=\"color: red; text-align: center;\">There was a problem setting up your account! Please contact Fike via his details <a href=\"http://fike.me\">here</a>.</p>";
    break;
  default:
    require("elements/signup_form.php");
    break;
} else require("elements/signup_form.php");

Using switch allows you to easily handle unrecognised values of $_REQUEST['c'] with a default: and also makes it easier to add handlers for new values of $_REQUEST['c'] in the future.


What the error is basically saying is that c is not defined so it can't check if it is 1 or 2, you need to make sure that the variable is set first.

You can do this using the convenient function called 'isset' to work out if the request has been sent. You can read about it here.

<?php
if (isset($_REQUEST['c'] && $_REQUEST['c'] == "1") {
        echo "<p style=\"text-align: center;\">Your shell account has been setup. Please check your inbox.</p>";
}
elseif (isset($_REQUEST['c'] && $_REQUEST['c'] == "2") {
    echo "<p style=\"color: red; text-align: center;\">There was a problem setting up your account! Please contact Fike via his details <a href=\"http://fike.me\">here</a>.</p>";
}
else {
    include("elements/signup_form.php");
}
?>

I'm not the best PHP guy but that might work :)


if (isset($_REQUEST['c']) && $_REQUEST['c'] === "1")
{
    echo '<p style="text-align: center;">Your shell account has been setup. Please      check your inbox.</p>';
}
else if (isset($_REQUEST['c']) && $_REQUEST['c'] === "2")
{
    echo '<p style="color: red; text-align: center;">There was a problem setting up your account! Please contact Fike via his details <a href="http://fike.me">here</a>.</p>';
}
else 
{
    require 'elements/signup_form.php';
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜