Variablen übergeben klappt nicht mehr

RoErtl

Grünschnabel
Hallo an Alle ;-)
bin leider kein PHP Spezialist, mein Vorgänger hat einen Code geschrieben mit dem wir Tonerbestellungen auslösen. Im Hintergrund befinden sich 2 Excelfies. Einmal mit dem Besteller und zum anderen mit den ganzen Tonerangaben.
Nun haben wir einen neuen Web / PHP Server bekommen. Leider eine Blackbox auf die wir nicht zugreifen können/dürfen.
Das Script funkt in soweit nach wie vor, dass das Formular korrekt angezeigt wird und auch die Auswahl korrekt stattfindet. Löst man aber die Bestellung aus übernimmt er zwar den Besteller mit allen Daten, leider aber nicht die zu bestellenden Toner. Diese Variablen bleiben einfach leer.
Wir haben wie gesagt nicht die Möglichkeit auf die PHP.ini zu zugreifen.


Ueber einen Workaround wäre ich Euch sehr dankbar, da ich das ganze wieder zum laufen bringen sollte aber leider echt wenig Plan habe.

Grüsse Roland

PHP:
<?PHP

// Geändert:
// ---------------------------------------------------------------------------------------------------------------------------------------------------
//
// Benötigte Files:
// ****************
//	tonerbestellung.php		--> Dieses File
//	tonertypes.csv			--> Liste der Tonertype im CSV-Format (Drucker;Farbe;Bezeichnung)
//	kommission.txt			--> Liste der möglichen Kommissionen
//	besteller.csv			--> Liste der möglichen Besteller im CSV-Format (Name;SMTP-Adresse;Telefon)
//
//
// ---------------------------------------------------------------------------------------------------------------------------------------------------


// ---------------------------------------------------------------------------------------------------------------------------------------------------
//	$telefonbest auf true --> Formular wird nicht angezeigt
//	$telefonbest auf false -> Formular wird angezeigt
// ---------------------------------------------------------------------------------------------------------------------------------------------------
	$telefonfile = "telefonisch.txt";

// ---------------------------------------------------------------------------------------------------------------------------------------------------
// Variablen Definieren
// ---------------------------------------------------------------------------------------------------------------------------------------------------
	$mailfrom_tonerbestellung = "Intranet Formular";
	$mailfromsmtp_tonerbestellung = "tt.formulareintranet@rielsein.ch";
	$mailtosmtp_tonerbestellung = "tt.tonerbestellung@rielsein.ch";
	$mailtosmtpcc_tonerbestellung = "informatik.fehlermeldung@rielsein.ch";
	$subject_tonerbestellung = "Tonerbestellung Stadt Rielsein";
	$finalrecipient = "roland.ertl@rielsein.ch";

	$tonertypesfile = "tonertypes.csv";
	$kommissionfile = "kommission.txt";
	$bestellerfile = "besteller.csv";


// ---------------------------------------------------------------------------------------------------------------------------------------------------
// PHP Code Start
// ---------------------------------------------------------------------------------------------------------------------------------------------------
	include($telefonfile);
	if ($telefonbest) {
		$switchlink = "<a href=\"telefonswitch.php?mode=off\">Telefonisch bestellen ausschalten !</a>";
	}
	else {
		$switchlink = "<a href=\"telefonswitch.php?mode=on\">Telefonisch bestellen einschalten !</a>";
	}

	$select = " - - Bitte auswählen - - - - - - - - - - - - - - - - - - - - - ";
	$obligmarke = "<font color=\"FF0000\">*</font>";
	session_start("tonerbestellung");

	$head = "<head>";
	$head .= "<link rel=\"stylesheet\" type_tonerbestellung=\"text/css\" href=\"../../../style/style.css\">";
	$head .= "<title>Intranet Tonerbestellung - Formular</title>";

	$head .= '
		<script type="text/javascript">
		<!--
		function CheckFields() {
			if(document.tonerbestellung.besteller_tonerbestellung.value == "' . $select . '") {
          			alert("Bitte Besteller auswählen");
				document.tonerbestellung.besteller_tonerbestellung.focus();
				return false;
			}
			if(document.tonerbestellung.kommission_tonerbestellung.value == "' . $select . '") {
          			alert("Bitte Kommission auswählen");
				document.tonerbestellung.kommission_tonerbestellung.focus();
				return false;
			}

			count = 0;
			for (i=0;i<document.tonerbestellung.anz_tonerbestellung.length-1;i++) {
				count = count + document.tonerbestellung.anz_tonerbestellung[i].value;
			}
		}
		//-->
		</script>';

	$head .= "</head>";
	echo $head;

	echo "<a name=\"top\"></a><font size=\"5\"><span style=\"background-color: #FFFF00\"><b>&nbsp;&nbsp;&nbsp;&nbsp;Tonerbestellung&nbsp;&nbsp;&nbsp;&nbsp;</span></b></font>&nbsp;&nbsp;&nbsp;$switchlink</p>";

// ---------------------------------------------------------------------------------------------------------------------------------------------------
// Telefonisch bestellen?
// ---------------------------------------------------------------------------------------------------------------------------------------------------

	if ($telefonbest) {
		echo "<br><br>";
		echo "<font size=\"5\"><span style=\"background-color: #FF0000\"><b>Toner bitte im Moment telefonisch bestellen !!</b></span><br></font><br>";
		$bestelltext = "<b>Das ausgefüllte Formular wird nicht per Mail an Hemacor verschickt.</span><br><br>";
		$bestelltext .= "Das Mail aus der Mailbox Fehlermeldung Unterordner # Tonerbestellung ausdrucken, telefonisch bestellen, und das ausgedruckte Mail ablegen.</b>";
		$subject_tonerbestellung = "Tonerbestellung TELEFONISCH Stadt Rielsein";
	}
	else {
		$bestelltext = "<b>Das ausgefüllte Formular wird per Mail an Hemacor ($mailtosmtp_tonerbestellung) verschickt.<br>";
		$bestelltext .= "(Mail an Mailbox TT Tonerbestellung, von dort Weiterleitung per Regel an $finalrecipient.)<br><br>";
		$bestelltext .= "Das Mail aus der Mailbox Fehlermeldung Unterordner # Tonerbestellung ausdrucken und ablegen.</b>";
	}


// ---------------------------------------------------------------------------------------------------------------------------------------------------
// PHP Code Start
// ---------------------------------------------------------------------------------------------------------------------------------------------------

	if ($mode!="send") {

// ---------------------------------------------------------------------------------------------------------------------------------------------------
// Es wurde noch nicht ABSCHICKEN angeklickt, also Formular anzeigen
// ---------------------------------------------------------------------------------------------------------------------------------------------------

// ---------------------------------------------------------------------------------------------------------------------------------------------------
// Dropdown kommission erzeugen
// ---------------------------------------------------------------------------------------------------------------------------------------------------
		$fp = fopen($kommissionfile,"r");
		$n = -1;
		while($record = fgets($fp,80)){
			$n++;
			$kommissionliste[$n] = $record;
		}
		fclose($fp);
		$kommissiondrop = "<select size=\"1\" name=\"kommission_tonerbestellung\">";
		$kommissiondrop .= "<option value=\"$select\">$select</option>";
		for ($i=0;$i<=count($kommissionliste)-1;$i++){
			$kommissiondrop .= "<option value=\"$kommissionliste[$i]\">$kommissionliste[$i]</option>";
		}
		$kommissiondrop .= "</kommission_tonerbestellung>";



// ---------------------------------------------------------------------------------------------------------------------------------------------------
// Dropdown besteller erzeugen
// ---------------------------------------------------------------------------------------------------------------------------------------------------
		$line=-1;
		$fp = fopen($bestellerfile,"r");
		while($zeile = fgetcsv($fp,100,";")){
			$line++;
			$bestname_tonerbestellung[$line] = $zeile[0];
			$bestmail_tonerbestellung[$line] = $zeile[1];
			$bestphone_tonerbestellung[$line] = $zeile[2];
		}
		fclose($fp);

		$bestellerdrop = "<select size=\"1\" name=\"besteller_tonerbestellung\">";
		$bestellerdrop .= "<option value=\"$select\">$select</option>";
		for ($i=0;$i<=count($bestname_tonerbestellung)-1;$i++){
			$bestellerdrop .= "<option value=\"$i\">$bestname_tonerbestellung[$i]</option>";
		}
		$bestellerdrop .= "</besteller_tonerbestellung>";


// ---------------------------------------------------------------------------------------------------------------------------------------------------
// Dropdown dringlichkeit erzeugen
// ---------------------------------------------------------------------------------------------------------------------------------------------------
		$dringlichkeitdrop = "<select size=\"1\" name=\"dringlichkeit\">";
		$dringlichkeitdrop .= "<option value=\"Innert 2-3 Tagen\">Innert 2-3 Tagen</option>";
		$dringlichkeitdrop .= "<option value=\"DRINGEND\">DRINGEND</option>";
		$dringlichkeitdrop .= "</dringlichkeit>";



// ---------------------------------------------------------------------------------------------------------------------------------------------------
// Formular anzeigen
// ---------------------------------------------------------------------------------------------------------------------------------------------------

		echo "Formular ausfüllen und anschliessend auf ABSCHICKEN klicken.</p>";
		echo "<hr color=\"#000000\">";
		echo $bestelltext;

		echo "<FORM NAME=tonerbestellung action=$PHP_SELF?mode=send method=post onSubmit=\"return CheckFields()\">";
		echo "<hr color=\"#000000\">";
		echo "<table border=\"0\" cellpadding=\"5\" cellspacing=\"0\">";
		echo "<tr><td><p align=\"right\">Besteller$obligmarke</td>";
		echo "<td>$bestellerdrop</td></tr>";
		echo "<tr><td><p align=\"right\">Kommission$obligmarke</td>";
		echo "<td>$kommissiondrop</td></tr>";
		echo "<tr><td><p align=\"right\">Gewünschter Liefertermin$obligmarke</td>";
		echo "<td>$dringlichkeitdrop</td></tr>";
		echo "<tr><td valign=\"top\"><p align=\"right\">Bemerkungen</td>";
		echo "<td><textarea rows=\"5\" name=\"bemerkungen_tonerbestellung\" cols=\"60\"></textarea></td>";
		echo "</table>";

		$line = 0;
		$fp = fopen($tonertypesfile,"r");

		echo "<table border=\"0\" cellpadding=\"2\" width=\"800\">";
		echo "<tr><td width=\"27\"><font size=\"2\"><b><i>Anz</i></b></font></td><td width=\"40\"><font size=\"2\"><b><i>Mindestmenge</i></b></font></td><td width=\"180\"><font size=\"2\"><b><i>Druckertyp</i></b></font></td><td width=\"100\"><font size=\"2\"><b><i>Farbe</i></b></font></td><td width=\"200\"><font size=\"2\"><b><i>Bezeichnung</b></i></font></td></tr>";
		while($zeile = fgetcsv($fp,1000,";")){
			$line++;
			if ($line>1) {
				$type_tonerbestellung[$line] = $zeile[0];
				$farbe_tonerbestellung[$line] = $zeile[1];
				if ($farbe_tonerbestellung[$line]=="") $farbe_tonerbestellung[$line] = "---";
				$bezeichnung_tonerbestellung[$line] = $zeile[2];
				$mindestmenge[$line] = $zeile[4];
				$bezeichnung_lieferant[$line] = $zeile[3];

				$inputfield = "<input type=\"text\" name=\"anz_tonerbestellung[$line]\" size=\"2\" maxlength=\"2\">";
				echo "<tr><td width=\"27\"><font size=\"2\">$inputfield</font></td><td width=\"40\"><font size=\"2\">$mindestmenge[$line]</font></td><td width=\"180\"><font size=\"2\">$type_tonerbestellung[$line]</font></td><td width=\"100\"><font size=\"2\">$farbe_tonerbestellung[$line]</font></td><td width=\"200\"><font size=\"2\">$bezeichnung_lieferant[$line]</font></tr>";
			}
		}
		echo "</table><br>";


		echo "<hr color=\"#000000\"><br>";
		echo "<input type=\"submit\" value=\"ABSCHICKEN\" name=\"submit\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
        	echo "<input type=\"reset\" value=\"LÖSCHEN\" name=\"Reset\"></td></tr>";

		session_register("bestname_tonerbestellung","bestmail_tonerbestellung","bestphone_tonerbestellung","anz_tonerbestellung","type_tonerbestellung","farbe_tonerbestellung","bezeichnung_tonerbestellung","bezeichnung_lieferant");

	}


	else {

// ---------------------------------------------------------------------------------------------------------------------------------------------------
// Es wurde ABSCHICKEN angeklickt, also Pflichtfelder prüfen
// ---------------------------------------------------------------------------------------------------------------------------------------------------



// ---------------------------------------------------------------------------------------------------------------------------------------------------
// Pflichtfelder OK, Formular verschicken und Bestätigung anzeigen.
// ---------------------------------------------------------------------------------------------------------------------------------------------------

		echo "Die Bestellung wurde abgeschickt.<br><br>Eine Kopie davon ist an <b>$mailtosmtpcc_tonerbestellung</b> geschickt worden.<br>";
		echo "Dort wird das Mail per Regel in den Ordner # Tonerbestellungen verschoben</p>";
		$bemerkungen_tonerbestellung = str_replace("\n","<br>",$bemerkungen_tonerbestellung);


// ---------------------------------------------------------------------------------------------------------------------------------------------------
// Das Mail aufbereiten
// ---------------------------------------------------------------------------------------------------------------------------------------------------

		$header_tonerbestellung = "From:$bestname_tonerbestellung[$besteller_tonerbestellung]<$bestmail_tonerbestellung[$besteller_tonerbestellung]>\n";
		$header_tonerbestellung .= "Reply-To:$bestmail_tonerbestellung[$besteller_tonerbestellung]\n";
		$header_tonerbestellung .= "Content-type: text/html";
		$datum = getdate();
		$datumstring = "$datum[mday].$datum[mon].$datum[year]";

		$mailbody_tonerbestellung = '
			<html>
			<body bgcolor="#D3E5FD" text="#000000"></p>
			<font face="Arial">
			<font size="5"><span style="background-color: #FFFF00"><b>    Tonerbestellung Stadt Rielsein    </span></b></p></font>';

		if ($telefonbest) {
			$mailbody_tonerbestellung .= "<br><font size=\"5\"><span style=\"background-color: #FF0000\"><b>Telefonisch bestellen unter 043 495 36 36</span></font><br><br>";
		}

		$mailbody_tonerbestellung .= '
			<hr color=\"#000000\">
			<table border="0" cellpadding="5">
			<tr><td valign="top"><p align="right"><b>Lieferadresse</b></td>
			<td>Stadtverwaltung rielsein<br>Informatik<br>Hauptstrasse 22<br>8953 rielsein<br></td></tr>
			<tr><td valign="top"><p align="right"><b>Bestelldatum</b></td>
			<td>' . $datumstring . '</td></tr>
			<tr><td valign="top"><p align="right"><b>Gewünschter Liefertermin</b></td><td>' . $dringlichkeit . '</td></tr>
			<tr><td valign="top"><p align="right"><b>Kontaktperson</b></td>';
		$mailbody_tonerbestellung .= "<td>$bestname_tonerbestellung[$besteller_tonerbestellung]<br>$bestmail_tonerbestellung[$besteller_tonerbestellung]<br>$bestphone_tonerbestellung[$besteller_tonerbestellung]<br></td></tr>";
		if ($kommission_tonerbestellung!=$select_kommission) $mailbody_tonerbestellung .= '<tr><td valign="top"><p align="right"><b>Kommission</b></td><td> ' . $kommission_tonerbestellung . ' <br><b><i>(Bitte auf Lieferschein und Rechnung aufführen)</i></b></td></tr>';
		if ($bemerkungen_tonerbestellung!="") $mailbody_tonerbestellung .= '<tr><td valign="top"><p align="right"><b>Bemerkungen</b></td><td> ' . $bemerkungen_tonerbestellung . '<br></td></tr>';

		$mailbody_tonerbestellung .= '
			</table>

			<br><b>Bitte liefern Sie uns nur noch Original-Tonermodule!</b>

			<br><hr color=\"#000000\"></body></html>';

			$mailbody_tonerbestellung .= "<table border=\"0\" cellpadding=\"2\" width=\"500\">";
			$mailbody_tonerbestellung .= "<tr><td width=\"27\"><font size=\"2\"><b><i>Anz</i></b></font></td><td width=\"180\"><font size=\"2\"><b><i>Druckertyp</i></b></font></td><td width=\"100\"><font size=\"2\"><b><i>Farbe</i></b></font></td><td width=\"200\"><font size=\"2\"><b><i>Bezeichnung</b></i></font></td></tr>";
			for ($i=2;$i<=count($type_tonerbestellung)+1;$i++){
				if ($anz_tonerbestellung[$i]>0) $mailbody_tonerbestellung .= "<tr><td width=\"27\" align=\"right\"><font size=\"2\">$anz_tonerbestellung[$i]</font></td><td width=\"180\"><font size=\"2\">$type_tonerbestellung[$i]</font></td><td width=\"100\"><font size=\"2\">$farbe_tonerbestellung[$i]</font></td><td width=\"200\"><font size=\"2\">$bezeichnung_lieferant[$i]</font></td></tr>";
			}
			$mailbody_tonerbestellung .= "</table>";




// ---------------------------------------------------------------------------------------------------------------------------------------------------
// Mail verschicken
// ---------------------------------------------------------------------------------------------------------------------------------------------------
		mail($mailtosmtp_tonerbestellung,$subject_tonerbestellung,$mailbody_tonerbestellung,$header_tonerbestellung);

		$subject2_tonerbestellung = "$subject_tonerbestellung - Kopie";
		mail($mailtosmtpcc_tonerbestellung,$subject2_tonerbestellung,$mailbody_tonerbestellung,$header_tonerbestellung);

		session_destroy();

	}

?>
 
Zuletzt bearbeitet von einem Moderator:
Erstmal hallo im Forum!

Bitte setzte den Code in den zugehörigen BB-Code für PHP, da er so schwer zu lesen ist.

Außerdem verlangst du einen Workaround, d.h. das hier müsste in das Jobforum verschoben werden.
 
Danke für die schnelle Antwort und Sorry.
WIe setzte ich den Code in BB-Code um? Danke Vorab für die Info.
Gruss Roland
 
Hallo!

Ich bin mir ziemlich sicher dass Dein alter Hoster register_globals=on eingestellt hatte und der neue Hoster register_globals=off eingestellt hat.
Oder anders ausgedrückt: Dein alter Hoster hat auf die Sicherheit geschi.... ;)

Bei register_globals=off funktionieren Variablen wie z.B. $name nicht mehr sondern müssen nun z.B. als $_GET['name'] übergeben werden.
Hängt natürlich auch von der Methode der Übermittlung ab (GET, POST, SESSION.....).
Auch funtioniert $PHP_SELF nicht mehr, nun heisst es $_SERVER['PHP_SELF'].

Siehe auch: Verwendung von Register Globals

Gruss Dr Dau
 
Hallo Dr. Dau,
da es ein interner Server ist bin ich auf die php.ini gekommen. die register_globals waren auf off. habe sie on geschalten, den server neu gestartet aber das ergebnis ist leider immer noch das gleiche. die eingaben die aus dem bestellformular angewählt werden, werden teilweise nicht mehr übergeben. Die gesamten Eingaben der Tonerbestellung werden einfach nicht weiter gereicht. Der Besteller und die Abteilung aber schon.

Grüsse Roland

## EDIT ##

Es ist vollbracht! Danke an Euch Beide für die Tips. der $_Post an der richtigen Stelle hat es gebracht. Wenn ich die Variable $Anz_Tonerbestellung mit dem $_Post übergebe wird der Wert übermittelt und es läuft wieder.

Danke
Gruss Roland
 
Zurück