Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => PHP => Mensaje iniciado por: ahaugas en 31 Marzo 2011, 19:50 PM

Título: error en php ayuda porfavor
Publicado por: ahaugas en 31 Marzo 2011, 19:50 PM
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
Título: Re: error en php ayuda porfavor
Publicado por: Nakp en 31 Marzo 2011, 20:24 PM
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 :)
Título: Re: error en php ayuda porfavor
Publicado por: ahaugas en 31 Marzo 2011, 23:01 PM

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"); 
?>
Título: Re: error en php ayuda porfavor
Publicado por: Shell Root en 31 Marzo 2011, 23:16 PM
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
Título: Re: error en php ayuda porfavor
Publicado por: ssaammuu en 5 Abril 2011, 23:26 PM
$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