2014-04-06 68 views
-3

任何人都可以告诉我为什么我得到这个脚本的以下未定义变量($ url)错误。 错误是我的if语句if ($url)。我是一个新手。由于脚本 'testnew/edit_your_sites.php' 发生在28行

错误: 未定义的变量: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"); 
    } 
    ?> 

有可能在这个脚本,如果你看到一些 更多的错误任何它将不胜感激,如果你 让我知道他们。 感谢你的帮助,你们是真的有很大的帮助

+0

[参考? - 这是什么错误PHP意味着]可能重复(http://stackoverflow.com/questions/12769982/reference-what-does-this-error-mean -in-php) – Anonymous

+2

这已经被问过很多次了,很明显。你的变量'$ url'只是基于条件声明的,所以当这个条件不成立时,它会抛出这个错误。改变'if($ url){'到'if(isset($ url)){' –

+0

它的一个通知...只是把它关掉......没有东西可以破坏这个代码.. –

回答

0

这是因为您在else块定义变量$url。但是,如果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']); 
} 

为了避免这种错误,就在上述代码段之前定义$url

$url = null; 
0

变量只有一个if语句中定义的,你需要先定义它到...尝试定义它在脚本的开头有一个空白值。

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

这是因为你曾经说过

if($url) 

但这不是定义。

尝试

if(isset($url)) 
+0

我试过如果(isset($ url))但我的表单告诉我没有设置$ url,并且无论我尝试什么,它都不会被设置,即使我在表单字段中键入内容并按下提交。 – user3286022

相关问题