Natrich Skrevet 24. mai 2009 Del Skrevet 24. mai 2009 (endret) Hei! Jeg jobber med et forum nå om dagen, istad skulle jeg se hvordan jeg lå an når jeg fikk denne feilmeldingen: Notice: Undefined index: act in C:\wamp\www\forum\admin.php on line 133 Jeg har googla rundt for å finne svar men fant ingen ting Har også prøvd med isset() og empty() men de ser ikke ut til å fungere med mindre man har if(), men da funker ikke resten av scriptet =/ Natrich Script: <?php session_start(); include "global.php"; ?> <html> <head> <title>Unreliable Forum | Admin Index</title> <style type="text/css"> body{ background-color: #EEE; color: #000; font-family: Verdana; font-size: 10pt; } #holder { width: 80%; color: #000; font-family:Verdana; border: 1px solid black; padding: 10px; text-align: left; } #userInfo{ color: #000; font-family: verdana; border: 1px solid #ccc; text-align: right; padding: 3px; } #userInfo a{ color: #800000; text-decoration: none; } #content { color: #000; font-family: Verdana; border: 1px solid #ccc; text-align: left; padding: 3px; margin-top: 5px; } #content a { color: #4a777a; text-decoration: none; } #content table,tr,td{ font-size: 10pt; color: #000; } #content input { border: 1px solid #4a777a; background-color: #eee; color: #000; font-family: Verdana; font-size: 9pt; padding: 2px; } </style> <script language="javascript"> function confirmLogout(){ var agree = confirm("Are you sure you wish to logout?"); if(agree){ return true; }else{ return false; } } </script> </head> <body> <center> <div id="holder"> <div id="userInfo"> <?php if(isset($_SESSION['uid'])){ $sql = "SELECT * FROM `users1` WHERE `id`='".$_SESSION['uid']."'"; $res = mysql_query($sql) or die(mysql_error()); if(mysql_num_rows($res) == 0){ session_destroy(); echo "Please <a href=\"/login.php\">Login</a> to your account or, <a href=\"register.php\">Register</a> a new account.\n"; }else{ $row = mysql_fetch_assoc($res); echo "Welcome back, <a href=\"./index.php?act=profile&id=".$row['id']."\">".$row['username'] . "</a>! <a href=\"logout.php\">Logout</a> \n"; if (isset($row['admin']) || ($row['admin'] == 1)){ echo " "; echo "<a href=\"admin.php\">Administrative Section</a>\n"; } } }else{ echo "Please <a href=\"login.php\">Login</a> to your account or, <a href=\"register.php\">Register</a> a new account.\n"; } ?> </div> <div id="content"> <?php if(isset($_SESSION['uid'])){ $sql3 = "SELECT admin FROM `users1` WHERE `id`='".$_SESSION['uid']."'"; $res3 = mysql_query($sql3) or die(mysql_error()); if(mysql_num_rows($res) == 0 ){ echo "Please login to your account!\n"; }else{ $row2 = mysql_fetch_assoc($res3); if($row2['admin'] != '1'){ echo "You are not allowed to be here!\n"; }else{ $act = $_GET['act']; $acts = array('create_cat','create_subcat'); $actions = array('create_cat' => 'Create Forum Category', 'create_subcat' => 'Create Forum Sub Categry'); $x=1; $c = count($actions); foreach($actions AS $url => $link){ $bull = ($x == $c) ? "" : " • "; echo "<a href=\"./admin.php?act=".$url."\">".$link."</a>" . $bull . "\n"; $x++; } echo " \n"; if(!$act || !in_array($act, $acts)){ echo "Please choose an option from above to continue!\n"; }else{ if($act == 'create_cat'){ if (!isset($_POST['submit']) || ($_POST['submit'] != 'Crate Forum Category')){ echo "<table border =\"0\" cellspacing=\"3\" cellpadding=\"3\">\n"; echo "<form method\"post\" action=\" ./admin.php?act=create_cat\">\n"; echo "<tr><td>Category Name</td><td><input type=\"text\" name=\"name\"></tr></td>\n"; echo"<tr><td>Admin Only?</td><td><input type=\"checkbox\" name=\"admin\" value=\"1\"></tr></td>\n"; echo "<tr><td colspan=\"2\" align=\"right\"><input type=\"submit\" name=\"submit\" value=\"Crate Forum Category\"></td></td>\n"; echo "</form></table>\n"; }else{ $name = mss($_POST['name']); $admin = $_POST['admin']; if($name){ if(strlen($name) < 3 || strlen($name) > 32){ echo "The Category name must be between 3 and 32 characters!\n"; }else{ $sql4 = "SELECT * FROM `forum_cats` WHERE `name`='".$name."'"; $res4 = mysql_query($sql4) or die(mysql_error()); if(mysql_num_rows($res4) > 0){ echo "The Category name already exsist!\n"; }else{ $admin_check = ($admin == '1') ? "1" : "0"; $sql5 = "INSET TO `fourm_cats` (`name`,`admin`) VALUES ('".$name."','". $admin_check."')\n"; $res5 = mysql_query($sql5) or die(mysql_error()); echo "The Fourm Category <b>" . $name ."</b> has been successfully added!\n"; } } }else{ echo "You must supply a category name!\n"; } } } } } } } ?> </div> </div> </center> </body> </html> Endret 24. mai 2009 av Natrich Lenke til kommentar
Ernie Skrevet 24. mai 2009 Del Skrevet 24. mai 2009 (endret) Vel, du sjekker ikke om act finnes i GET. Som du selv kommer frem til må du bruke isset. Det kan du lett gjøre ved å erstatte $act = $_GET['act']; med $act = (isset($_GET['act'])) ? $_GET['act'] : null; ?: kalles «Ternary Operator» og brukes i en svært kompakt versjon av if-else. null kan erstattes med en default verdi for $act hvis den ikke er satt. Jeg har bare brukt en verdi som medfører at resten av scriptet skal fungere (null er 1. tegn i ASCII-tegnsettet). Endret 24. mai 2009 av Ernie Lenke til kommentar
Natrich Skrevet 24. mai 2009 Forfatter Del Skrevet 24. mai 2009 Vel, du sjekker ikke om act finnes i GET. Som du selv kommer frem til må du bruke isset. Det kan du lett gjøre ved å erstatte $act = $_GET['act']; med $act = (isset($_GET['act'])) ? $_GET['act'] : null; ?: kalles «Ternary Operator» og brukes i en svært kompakt versjon av if-else. null kan erstattes med en default verdi for $act hvis den ikke er satt. Jeg har bare brukt en verdi som medfører at resten av scriptet skal fungere (null er 1. tegn i ASCII-tegnsettet). Takk Alt funker fjell her nå! Natrich Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå