Gå til innhold

[Løst]Undefined index: act


Anbefalte innlegg

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 av Natrich
Lenke til kommentar
Videoannonse
Annonse

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 av Ernie
Lenke til kommentar
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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...