Script läuft auf Apache aber nett auf IIS

ahykes

Erfahrenes Mitglied
Hallo Leutz,
ich habe das Problem in anderer Art und Weise schonmal im Forum für Apachen und Webmaster gepostet. Da sich die Ereignisse jedoch überschlagen und ich neue Wege beschritten habe, möchte ich Euch eine Frage stellen :

Kann es sein, dass man Variablen extra deklarieren muss ?

Ich dachte immer, dass es auch ohne Deklaration funktioniert. Jetzt kommt es : Auf dem Apachen tut es auch.....ABER wenn ich das gleich Script (100%) auf einem IIS laufen lasse, geht es nicht! Fehlermeldung :

Notice: Undefined variable: manufacturerid in C:\Inetpub\wwwroot\TreeNew\links.php on line 20 :p

Langsam werde ich Wahnsinnig, warum kann DaimlerChrysler nicht einmal mit der Zeit gehen und einen Apachen verwenden? *heul*
 
Ich vermute mal, daß das Script auch auf IIS läuft..
Das ist keine Fehlermeldung, sondern nur eine Notiz, hierzu gibt es jede Menge Beiträge im Forum. Beheben kannst du die Anzeige
- durch saubere Programmierung (gute Wahl)
- durch Herabsetzen des Fehlerlevels, der von PHP angezeigt wird (schlechte, aber schnelle Wahl)
 
Hallo,

ahykes hat gesagt.:
Jetzt kommt es : Auf dem Apachen tut es auch.....ABER wenn ich das gleich Script (100%) auf einem IIS laufen lasse, geht es nicht! Fehlermeldung :
Notice: Undefined variable: manufacturerid in C:\Inetpub\wwwroot\TreeNew\links.php on line 20 *
Das hat nichts mit IIS/Apache zu tun, sondern nur mit PHP bzw. den error_reporting - Einstellungen von PHP. Die Noticekannst Du verhindern, indem Du mit isset() das Vorhandensein der entsprechenden Variable überprüfts.

MfG Micha
 
Okay, das ist auch in Ordnung. Aber warum stört sich der Apache den nicht daran Ausserdem klappt das Script nur begrenzt. Das ganze ist ein Menu mit ganz vielen Links, wenn man auf einen Link draufklickt soll das Menu aufklappen. Aber die Seite lädt neu ...und es passiert nichts...HIer mein Quellcode :
PHP:
<?PHP

$dbconnect=mssql_connect("s065m311","test","test");
mssql_select_db("[IT-Informations]");

$rsManufacturer=mssql_query("Exec pr_sel_softwareproductversionmanufacturer");


while ($manufacturer=mssql_fetch_row($rsManufacturer)){

	if ($manufacturerid != $manufacturer[0]) {
		
		// Ebene Hersteller
		echo '<tr>';
		echo '<td width="18" align="left">';
		echo '<a href="links.php?manufacturerid='.$manufacturer[0].'#'.$manufacturer[0].'" >'
			.'<img src="images/plus.bmp" width="18" height="18" border="0" ></a>'
			.'</td>'
			.'<td colspan="3" >'
			.$manufacturer[1]
			.'<a name="'.$manufacturer[0].'"></a>'
			.'</td>'
			.'</tr>';
			
			
	}
	else {
		// Ebene Hersteller
		echo '<tr>';
		echo '<td width="18" align="left">';		
		echo '<a href="links.php?manufacturerid='.$manufacturer[0].'#'.$manufacturer[0].'" >'
			.'<img src="images/minus.bmp" width="18" height="18" border="0" ></a>'
			.'</td>'
			.'<td colspan="3">'
			.$manufacturer[1]
			.'<a name="'.$manufacturer[0].'"></a>'
			.'</td>'
			.'</tr>';
			
			
		
		$rsSoftware = mssql_query("Exec pr_sel_softwareproductversionnames ".$manufacturer[0]);

		
		while ($names=mssql_fetch_row($rsSoftware)) {
			
			if ($namesid != $names[0]) {
					echo '<tr>';
					echo '<td width="18">';
					echo '<img src="images/space.bmp">';
					echo '</td>';
					echo '<td  width="18" >';
					echo '<a href="links.php?manufacturerid='.$manufacturer[0].'&namesid='.$names[0].'#'.$manufacturer[0].'" >'
						.'<img src="images/plus.bmp" width="18" height="18" border="0" ></a>'
						.'</td>'
						.'<td colspan="2">'
						.'<a href="home.php?namesid='.$names[0].'" target="inhalt">'
						.''.$names[1]
						.'</a>'
						.'</td>'
						.'</tr>';
						
						//'$namesid='.$names[0].
						
									}
			else {
					echo '<tr>';
					echo '<td width="18">';
					echo '<img src="images/space.bmp">';
					echo '</td>';
					echo '<td  width="18" >';
					echo '<a href="links.php?manufacturerid='.$manufacturer[0].'&namesid='.$names[0].'#'.$manufacturer[0].'" >'
						.'<img src="images/minus.bmp" width="18" height="18" border="0" ></a>'
						.'</td>'
						.'<td colspan="2">'
						.'<a href="home.php?namesid='.$names[0].'" target="inhalt">'
						.''.$names[1]
						.'</a>'
						.'</td>'
						.'</tr>';
						
						
						
					$rsVersions = mssql_query("Exec pr_sel_softwareproductversionversions ".$names[0]);
												
					while ($versions=mssql_fetch_row($rsVersions)) 
						{							
								echo '<tr>';
								echo '<td width="18"> ';
								echo '<img src="images/space.bmp">';
								echo '</td>';
								echo '<td>';
								echo '</td>';
								echo '<td align="left">';
								echo '<a href="links.php?manufacturerid='.$manufacturer[0].'&namesid='.$versions[0].'#'.$manufacturer[0].'" >'
								.'<img src="images/pfeil.bmp" width="20" height="8" border="0" ></a>'
								.'</td>'
								.'<td>'
								.'<a href="version.php?versionid='.$versions[0].'" target="inhalt">'
								.$versions[1].' '.$versions[2]
								.'</a>'
								.'</td>'
								.'</tr>';
								
								
									 
							}
					

			}	
			 
		}
		
		
}
		
		
		

		
	}


?>
 
ahykes hat gesagt.:
Wie kann ich denn das Level bestimmen ..? PHP.ini-> Wo?
error_reporting = ....
Aber das Herabsetzen des Errorlevels ist definitiv der falsche Weg. Sorge besser dafür, das das Script ordentlich programmiert ist. Ist zwar etwas aufwändiger, aber Du bist auf der sicheren Seite.

MfG Micha
 
Grundsätzliche Frage: Verwendet der IIS einen anderen PHP-Interpreter als der Apache, bzw. testest du auf verschiedenen Rechnern? Wenn ja, dann ist der PHP-Interpreter, der durch den Apache verwendet wird mit niedrigerem error_reporting konfiguriert, als der PHP-Interpreter, den der IIS benutzt.

Das Error-Reporting kannst Du mittels der Funktion [phpf]error_reporting[/phpf] zur Laufzeit ändern - oder aber generell in der php.ini mit dem Parameter "error_reporting". Achte darauf, dass du die php.ini im Windows-Verzeichnis verwendest.

Sven
 
So, das mit dem Error-Reporting habe ich mir angeschaut...lassen wir das..Aber wie definiere ich denn eine Variable Habe ich noch nie gebraucht -> "Quick and Dirty" ;-]

Vielleicht stimmt auch was mit meiner PHP-Installation nicht...hat einer ein gutes Tutorial?
 
Zuletzt bearbeitet:
Zurück