【问题标题】:undefined variable $url, unsure why I am getting this error未定义的变量 $url,不确定为什么我会收到此错误
【发布时间】:2014-04-06 13:35:09
【问题描述】:

谁能告诉我为什么这个脚本会出现以下未定义变量 ($url) 错误。 错误是我的 if 语句 if ($url)。我是新手。谢谢

第 28 行的脚本“testnew/edit_your_sites.php”发生错误: 未定义变量:url

<div class="text">
    <?php
    $page_title = 'Edit Your Account';
    include ('includes/header.html');
    include ('includes/functions.php');
    include ('includes/config.inc.php');
    if (isset($_GET['id']) && is_numeric($_GET['id'])){
        $id = $_GET['id'];
    } elseif (isset($_POST['id']) && is_numeric($_POST['id'])) {
        $id = $_POST['id'];
    } else {
        echo '<p class="error">This page has been accessed in error.</p>';
        include ('includes/footer.html');
        exit();
    }
    if (isset($_SESSION['UserID'])){
    require (MYSQL);
    $scrubbed = array_map('spam_scrubber', $_POST);


    if ($_SERVER['REQUEST_METHOD'] == 'POST'){
    if (empty($scrubbed['url'])){
            echo '<p class="error">Please enter a url</p>';
        } else {
            $url = mysqli_real_escape_string($dbc, $scrubbed['url']);
        }
    }
    if ($url){
    $p = "SELECT UserID FROM sites WHERE UserID=$id";
    $q = mysqli_query($dbc, $p);
    if (mysqli_num_rows($q) == 1){

    $i = "INSERT INTO sites (UserID, url, entry) VALUES('{$_SESSION['UserID']}', '$url', NOW())";
    $r = mysqli_query($dbc, $i);
        if (mysqli_affected_rows($dbc) == 1){
        echo '<p>Your website was added succesfully.</p>';
        } else {
            echo '<p class="error">Due to a system error your website could not be added.</p>';
        }

    } else {
        echo '<p class="error">Please try again';
    }

    }
    ?>
    <form action="edit_your_sites.php" method="post">
    <?php $sql = "SELECT * FROM sitetypes";
    $f = mysqli_query($dbc, $sql) or trigger_error("Query: $sql\n<br />Mysqli Error: " . mysqli_error($dbc));
    echo '<select name="SiteType" selected="selected">';
    while($row2 = mysqli_fetch_array($f, MYSQLI_ASSOC)){
        if ($row2['SiteType'] == 'selected'){
            echo "<option Selected='selected' value=" . $row2["SiteTypeID"] . ">" . $row2['SiteType'] . "</option>";
        } else { 
            echo "<option value=" . $row2["SiteTypeID"] . ">" . $row2['SiteType'] . "</option>";
        }
    }

    echo '</select>';
    ?>
    <p>Url:<input type="text" name="url" size="30" maxlength="60" value="<?php if(isset($scrubbed['url'])) echo $scrubbed['url']; ?>" /></p>
    <?php
    echo '</fieldset>
    <p><input type="submit" name="submit" value="Edit Account!" /><input type="reset" name="reset" value="Clear Form" />
    <input type="hidden" name="id" value="' . $id . '" />
    </form>';
    } else {
        $url = BASE_URL . 'index.php';
        header("Location: $url");
    }
    ?>

此脚本中可能还有更多错误 如果您看到任何内容,将不胜感激 让我知道他们。 感谢大家的帮助,你们真的是一个很大的帮助

【问题讨论】:

  • 这个已经问过很多次了,很明显。您的变量 $url 仅根据条件声明,因此当该条件不成立时,它将引发该错误。将if ($url){ 更改为if (isset($url)){
  • 它是一个通知...只需将其关闭...没有什么可以损坏此代码..
  • Use of undefined constant MYSQL 怎么样?还是它定义的?

标签: php mysql mysqli


【解决方案1】:

该变量仅在 if 语句中定义,您需要在此之前定义它...尝试在脚本开头使用空白值定义它。

$page_title = 'Edit Your Account';
$url="";
include ('includes/header.html');

【讨论】:

    【解决方案2】:

    因为你说过

    if($url)
    

    但这没有定义。

    试试

    if(isset($url))
    

    【讨论】:

    • 我试过 if(isset($url)) 但我的表单告诉我 $url 没有设置,无论我尝试什么它都不会设置,即使我在表单字段中输入了一些东西然后按提交。
    【解决方案3】:

    这是因为您在else 块中定义了变量$url only。但是,如果 empty($scrubbed['url'])true,则永远不会定义变量,因为永远不会执行 else 块。

    if (empty($scrubbed['url'])) {
        echo '<p class="error">Please enter a url</p>';
    }
    else {
        $url = mysqli_real_escape_string($dbc, $scrubbed['url']);
    }
    

    为避免此错误,请在上述 sn-p 之前定义$url

    $url = null;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-23
      • 1970-01-01
      • 1970-01-01
      • 2012-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多