Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

VBS Variablen in PHP nutzen

Empfohlene Antworten

Veröffentlicht

Hallo,

ich habe ein VBS Script das eine Windows Umgebungsvariable in eine Variable ausliest.

Diese bräuchte ich danach wieder als PHP Variable.

Ist das möglich?

Gruß

Phil

wieso liest du die systemvariable nicht gleich mit php ein, wozu der ganze umweg?

s'Amstel

Wenn der Server und der Rechner, auf dem Du die Variable auslesen willst ein und derselbe ist, dann mache es, wie mein Vorposter es schreibt, ansonsten rufe per VBS die URL zu einem PHP-Script auf, der Du dann einen Parameter und den Wert der Variable übergibst.

hast du vielleicht ein code schnipsel für mich?

bin nicht so der programmier crack

gehts denn auch andersherum?

von php das vbs script aufrufen und mit nem rückgabewert arbeiten.

<script type="VBScript">

Set shell = CreateObject("WScript.Shell")

Set env = shell.Environment("process")

CNAME = env("COMPUTERNAME")

UNAME = env("USERNAME")

ADDR = env("addr")

</script>

Wichtig ist für mich die Variable ADDR die dann im PHP weiterverwendet werden soll

blub.php:


<html>

	<head>

		<title>Testscript</title>

	</head>

	<body>

		<?php


			if ($_GET['hasVar'] == 'true') {

				//Variable wird übergeben

				if (!empty($_GET['envVar'])) {

					echo 'Der Wert der Umgebungsvariable lautet:<br>'.$_GET['envVar'].'<br>';

				}

				else {

					echo 'Es wurde keine Wert für die Umgebungsvariable übergeben!';

				}												

			}

			else {	

				?>


					<script type="text/vbscript">												

						Set shell = CreateObject("WScript.Shell")

						Set env = shell.Environment("process")

						CNAME = env("COMPUTERNAME")

						UNAME = env("USERNAME")

						ADDR = env("addr")

						window.location.href="<? echo $PHP_SELF;?>?hasVar=true&envVar="+ADDR

					</script>													

					Dieser Text sollte nicht erscheinen...

				<?

			}		

		?>

	</body>

</html>

Achja: Die rufst Du wie gewohnt auf: http://webserver/blub.php

Wichtig ist für mich die Variable ADDR die dann im PHP weiterverwendet werden soll

Warum nicht ohne VBS?


echo $_SERVER['REMOTE_ADDR'];
[/PHP]

mit echo $_SERVER['REMOTE_ADDR']; arbeitet das script bis jetzt.

wenn dieses script jetzt auf dem windows terminal server läuft kommt immer nur die terminal server ip dabei raus

nicht so toll

gruß

phil

wenn dieses script jetzt auf dem windows terminal server läuft kommt immer nur die terminal server ip dabei raus

Solche Hintergrundinformationen gehören schon in das Originalposting ;)

Klappt denn die VBS-Lösung?

klappt noch nicht so recht.

die datei mit dem vbs script heisst jetzt client.php und wird von der index.php aufgerufen.

jetzt hab ich nur hinter der index.php immer "?hasVar=true&envVar=" stehen.

Andere als Parameter übergebene Seiten werden dadurch überschrieben

wenn du den hostnamen brauchst, verwende halt 'REMOTE_HOST' statt 'REMOTE_ADDR', falls die variable verfügbar ist.

s'Amstel

wenn du den hostnamen brauchst, verwende halt 'REMOTE_HOST' statt 'REMOTE_ADDR', falls die variable verfügbar ist.

Wobei er dann wieder nur den Hostnamen des Terminal-Servers hat, wenn er überhaupt aufgelöst wird...

wie schaut sowas eigentlich mit nem cookie aus?

ist eh ne intranet anwendung deshalb wär das auch nicht so tragisch

Ja, Du kannst den Wert per JavaScript (VBScript?) in den Cookie schreiben, und den per PHP auslesen, aber dafür muss zuerst das Script aufrufen, und dann das PHP-Script...

Aber poste mal den Code, mit der anderen Implementierung, dann sag ich Dir, wo der Fehler ist...

wenn der php-server auf windows läuft (glaskugel ist in der reinigung) kannst du auch einfach die PHP-COM()-Befehle nutzen. Dazu müsstest du dann aber ins Handbuch gucken

EDIT: vielleicht zeigt phpinfo() dir ja auch schon die benötigte var an

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.