error en php ayuda porfavor

Iniciado por ahaugas, 31 Marzo 2011, 19:50 PM

0 Miembros y 1 Visitante están viendo este tema.

ahaugas

hola estoy haciendo un sistema y tengo el siguiente error
CitarNotice: Undefined variable: errors in E:\xampp\htdocs\xxxxxxxx\manageUsers.php on line 88

y en la linea tengo if(count($errors) > 0) {

pero no entiendo porque

me podeis ayudar porfavor
no subestimar al mas debil ya que tendra otras experiencias

Nakp

no existe... no ha sido definida, probablemente solo es definida dentro de un if, que pasa si ninguno de los if se cumple? jamas es definida :)
Ojo por ojo, y el mundo acabará ciego.

ahaugas


esto es todo pero no se que hacer porque no entiendo mucho

<?php
require_once(
"models/config.php");
if(!isUserLoggedIn()) { header("Location: login.php"); die; }
$access $loggedInUser->groupID();
if ($access['Group_ID'] != 1) {header("Location: login.php"); die; }
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Welcome <?php echo $loggedInUser->display_username?></title>
<link href="cakestyle.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="wrapper">
<div id="logo"></div>
<div id="regbox">
       
<div style="text-align:center; padding-top:15px;">
       
<?php

if (!empty($_POST)) {
$sql "SELECT * FROM ".$db_table_prefix."Users";
$users $db->sql_query($sql);
$sql "SELECT * FROM ".$db_table_prefix."Groups";
$groups $db->sql_query($sql);
$errors = array();
while($row $db->sql_fetchrow($users)) {
$deleteID "delete" $row['User_ID'];
$delete=($_POST[$deleteID])?"Yes":"No";
$usernameID "username" $row['User_ID'];
$newusername $_POST[$usernameID];
$emailID "email" $row['User_ID'];
$newemail $_POST[$emailID];
$groupID "group_id" $row['User_ID'];
$newgroup $_POST[$groupID];
if ($delete == "Yes") {
$sql "DELETE from ".$db_table_prefix."Users WHERE User_ID = '".$row['User_ID']."'";
$db->sql_query($sql);
}
else {
if($newusername != $row['Username']) {
if(minMaxRange(5,25,$newusername)){
$errors[] = "Unable to update ".$row['Username']."'s username because selected name is not between 5 and 25 characters.";
}
elseif (usernameExists($newusername)){
$errors[] = "Unable to change ".$row['Username']."'s name because selected username is already in use.";
}
else{
$sql "UPDATE ".$db_table_prefix."Users SET Username = '".$newusername."', Username_clean = '".sanitize($newusername)."' WHERE User_ID='".$row['User_ID']."'";
$db->sql_query($sql);
}
}
if ($row['Email'] != $newemail) {
if(trim($newemail) == "")
{
$errors[] = "Unable to update ".$row['Username']."'s email because no address was entered.";
}
else if(!isValidEmail($newemail))
{
$errors[] = "Unable to update ".$row['Username']."'s email because address is invalid.";
}
else if(emailExists($newemail))
{
$errors[] = "Unable to update ".$row['Username']."'s email because address is already in use.";
}
else {
$sql "UPDATE ".$db_table_prefix."Users SET Email = '".$newemail."' WHERE User_ID='".$row['User_ID']."'";
$db->sql_query($sql);
}
}
if ($newgroup != $row['Group_ID']){
$sql "UPDATE ".$db_table_prefix."Users SET Group_ID = '".$newgroup."' WHERE User_ID='".$row['User_ID']."'";
$db->sql_query($sql);
}
}
}
}

$sql "SELECT * FROM ".$db_table_prefix."Users";
$users $db->sql_query($sql);
$sql "SELECT * FROM ".$db_table_prefix."Groups";
$groups $db->sql_query($sql);

if(
count($errors) > 0) {
$list="";  
foreach($errors as $issue$list.="<li>".$issue."</li>";
echo 
"<div id=\"errors\">";
echo 
"<ol>";
echo 
$list;
echo 
"</ol>";
echo 
"</div>";
}
echo <<< HTML1
<table class="table">
<tr>
<td>User ID</td>
<td>Name</td>
<td>Email</td>
<td>Group</td>
<td>Last Seen</td>
<td>Delete</td>
</tr>
HTML1;

echo 
"<form name=\"ChangeUser\". action=\"".$_SERVER['PHP_SELF']."\" method=\"post\">";
while (
$row $db->sql_fetchrow($users)) {
echo "<tr>";
echo "<td>".$row['User_ID']."</td>";
echo "<td><input type=\"text\" size=\"12\" name=\"username".$row['User_ID']."\" value=\"".$row['Username']."\"></td>";
echo "<td><input type=\"text\" size=\"12\" name=\"email".$row['User_ID']."\" value=\"".$row['Email']."\"></td>";
echo "<td><select name=\"group_id".$row['User_ID']."\">";
while ($row2 $db->sql_fetchrow($groups)){
if ($row['Group_ID'] == $row2['Group_ID']){
echo "<option selected value=\"".$row2['Group_ID']."\">".$row2['Group_Name']."</option>";
}
else {
echo "<option value=\"".$row2['Group_ID']."\">".$row2['Group_Name']."</option>";
}
}
mysql_data_seek($groups,0);
echo "</select>";
echo "</td>";
echo "<td>".date("M jS",$row['LastSignIn'])."</td>";
echo "<td><input name=\"delete".$row['User_ID']."\" type=\"checkbox\" id=\"delete\" value=\"delete\"></td>";
echo "</tr>";
}

echo <<< EOT
<tr>
<td>
<input type="submit" size="1" value="Modify">
</form>
</td>
</tr>
</table>
            
        </div>
        
    </div>

</div>
</body>
</html>
EOT;
include(
"models/clean_up.php"); 
?>
no subestimar al mas debil ya que tendra otras experiencias

Shell Root

Por ejemplo,
Funciona correctamente,
Código (php) [Seleccionar]
$sArray = array( 'a', 'b', 'c', 'd', 'e', 'f' );
print count( $sArray )."\n";

# 6


Error,
Código (php) [Seleccionar]
#$sArray = array( 'a', 'b', 'c', 'd', 'e', 'f' );
print count( $sArray )."\n";

# PHP Notice:  Undefined variable: sArray in /home/alex/Escritorio/PoC.php on line 4
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

ssaammuu

$errors = array();
esta siendo declarado dentro del if
if (!empty($_POST)) {
y despues lo estas intentando acceder desde fuera de ese if con
if(count($errors) > 0) {
lo que pasa es que fuera del ambito donde declaraste la variable, esta cesa de existir.

No he mirado el codigo entero pero suponge que moviendo $errors=array(); encima del if, es decir poniendolo despues de <?php deberia solucionar el problema