Frage wegen Fehlermeldung!

lordofscotland

Erfahrenes Mitglied
Hallo Community,

ich bin derzeit ab erstellen einer Seite wo am Anfang die Standart CSS-Datei geladen werden soll.
Dabei bekomme ich folgende Fehlermeldung:
PHP:
Notice: Undefined index: poll in C:\xampp\htdocs\server\index.php on line 8

Hier der Quellcode dazu:

PHP:
<?php
$datum = date("D:d.m.Y");
$ipd = $_SERVER['REMOTE_ADDR'];
$ipe = $_SERVER['SERVER_NAME'];
$ipf = $_SERVER['SERVER_PORT'];
$info1 = $_SERVER['DOCUMENT_ROOT'];
$info2 = $_SERVER['SCRIPT_NAME'];
$meinLohn = $_POST['poll'];
 if ($meinLohn == 1) {
  // Anweisung A
  $ausgabe = "style_g.css";
  $ausgabe2 ="Gr&uuml;n";
} elseif ($meinLohn == 2) {
  // Anweisung B
  $ausgabe = "style_r.css";
  $ausgabe2 ="Rot";
} elseif ($meinLohn == "") {
  // Anweisung C
  $ausgabe = "style.css";
  $ausgabe2 ="Normal";
}
else {
  // Anweisung D
  $ausgabe = "style.css";
  $ausgabe2 ="Normal";
}
?>
<html>
<head>
<title>Serversystem - introtex.net</title>
<meta name="author" content="lairdmike">
<?php  print"<link rel=\"stylesheet\" href=\"css/$ausgabe\" type=\"text/css\">";?>
</head>
<body>
<div align="center">
<table cellspacing="0" >
<tr>
 <td class="front">
 <span class="navi">introtex.net</span>
 <a href="index.php">Home</a>
 <a href="index.php">Kunden&uuml;bersicht</a>
 <a href="index.php">Kunden neu</a>
 </td>
 <td  rowspan="2" class="inhalt"><div class="inhalt">
 <form action="<?php $PHP_SELF ?>" method="post">
 <select name="poll" size="1">
 <option value="">Standart</option>
 <option value="1">Rot</option>
 <option value="2">Gr&uuml;n</option>
 </select>
 <input type="Submit" name="senden" value="Style &auml;ndern!">
 </form></div>
 </td></tr><tr>
 <td class="front1">
 <span class="head1">Serverinformationen</span>
 <span class="head">Style: <?php print"$ausgabe2"; ?></span>
 <span class="head">Port: <?php print"$ipf"; ?></span>
 <span class="head">IP: <?php print"$ipd"; ?></span>
 <span class="head"><?php print"$datum"; ?></span></td>
</tr>
<tr><td colspan="3"><span class="headu">Pfad:<?php print"$info1$info2"; ?></span></td></tr>
</table></div>
</body>
</html>

Sobald ich über das Formular den Style ändere klappt alles es kommt keine Fehlermeldung und es wird die jeweilige CSS-Datei angebeben. Das geschieht auch beim ersten Aufruf der index.php, nur halt mit obiger Fehlermeldung.

Meine Frage nun: Wie kann ich dieser Meldung entgegenwirken?

Danke im vorraus lordofscotland
 
Das ist keine Fehlermeldung, sondern ein Hinweis, der dir sagt, dass der Index "poll" nicht existiert. Das ist auch verständlich, denn dieser existiert erst, wenn du dein Formular abgeschickt hast.
 
Du kannst diese "Fehler" Meldung aber abstellen wenn du am anfang das hin schreibst:

error_reporting( E_ALL & E_NOTICE );
 
@Garip: Das kann er zwar, aber das sollte er nicht. Jede Art von Meldung stellt eine Sicherheitslücke für ein Skript dar. Insofern sollte er sich darum bemühen, dass die Meldung nicht mehr erscheint:
PHP:
<?php 
	$datum = date("D:d.m.Y"); 
	$ipd = $_SERVER['REMOTE_ADDR']; 
	$ipe = $_SERVER['SERVER_NAME']; 
	$ipf = $_SERVER['SERVER_PORT']; 
	$info1 = $_SERVER['DOCUMENT_ROOT']; 
	$info2 = $_SERVER['SCRIPT_NAME']; 
	$meinLohn = $_POST['poll'];
	
	if (!isset($_POST['poll']) or empty($_POST['poll'])) {
		# Anweisung C & D
		$ausgabe  = 'style.css';
		$ausgabe2 = 'Normal';
		
	} elseif ($_POST['poll'] == 1) {
		# Anweisung A
		$ausgabe  = 'style_g.css';
		$ausgabe2 = 'Gr&uuml;n';
		
	} elseif ($_POST['poll'] == 2) {
		# Anweisung B
		$ausgabe  = 'style_r.css';
		$asugabe2 = 'Rot';
	}
?> 
<html> 
<head> 
<title>Serversystem - introtex.net</title> 
	<meta name="author" content="lairdmike" /> 
	<link rel="stylesheet" href="css/<?php echo $ausgabe ?>" type="text/css" /> 
</head> 
<body> 
	<div align="center"> 
		<table cellspacing="0" > 
			<tr> 
				<td class="front"> 
					<span class="navi">introtex.net</span> 
					<a href="index.php">Home</a> 
					<a href="index.php">Kunden&uuml;bersicht</a> 
					<a href="index.php">Kunden neu</a> 
				</td> 
				<td rowspan="2" class="inhalt">
					<div class="inhalt"> 
						<form action="" method="post"> 
							<select name="poll" size="1"> 
								<option value="">Standart</option> 
								<option value="1">Rot</option> 
								<option value="2">Gr&uuml;n</option> 
							</select> 
							<input type="Submit" name="senden" value="Style &auml;ndern!"> 
						</form>
					</div> 
				</td>
			</tr>
			<tr> 
				<td class="front1"> 
					<span class="head1">Serverinformationen</span> 
					<span class="head">Style: <?php echo $ausgabe2 ?></span> 
					<span class="head">Port: <?php echo $ipf ?></span> 
					<span class="head">IP: <?php echo $ipd ?></span> 
					<span class="head"><?php echo $datum ?></span>
				</td> 
			</tr> 
			<tr>
				<td colspan="3">
					<span class="headu">Pfad: <?php echo $info1 . $info2 ?></span>
				</td>
			</tr> 
		</table>
	</div> 
</body> 
</html>
 
Danke einfach nur crack, hab ne ganze weile nichts mehr gemcht und bin daher etwas aus der Übung.
Selbst das lesen von PHPSelf hat mir da nicht weitergeholfen.

Danke an alle!
 
Du kannst diese "Fehler" Meldung aber abstellen wenn du am anfang das hin schreibst:

Code:
error_reporting( E_ALL & E_NOTICE );

Man behandelt das Symptom, nicht aber die Ursache.
Dies ist auch nicht unbedingt eine sauberen Programmierung.

PHP:
$poll = null;
wäre in dem Fall die Lösung.

Man kann es auch Augenscheinlich umständlicher machen, bei großen Projekten aber durchaus sinnvoll.

PHP:
!isset($poll)?$poll=null:null;

Liebe Grüße
 
Zurück