Formular: Server (strato) liest die Variablen nicht aus.

LarsSchuett

Grünschnabel
Hallo
Erstmal vielen Dank an das Forum, Hierdurch habe ich es als relativer neuling hinbekommen ein Formular zu erstellen (wenn auch kein Hochglanz, aber es reicht für diese Zwecke)

Das Problem:
Auf dem Server von evanzo funktioniert alles. Aber nun habe ich die Dateien auf Server von strato getan (php5 vorhanden) und:
- Das Formular funktioniert. Email kommt an aber keine der Variablen wird ausgelesen. Auch nicht bei der Rückmeldung.

Frage: Muss/kann ich was am Skript verändern oder mal bei Strato nachfragen?!

Hier mal das Formular:

HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Unbenanntes Dokument</title>
<style type="text/css">
<!--
body {
	background-color: #000000;
	margin-left: 10px;
}
.Stil1 {color: #FFFFFF}
-->
</style></head>

<body>

<form action = "ud01.php"  method = "post" >
	    <p class="Stil1">I<span class="Stil1">ch bestelle
        <input name = "stueckzahl" size="5">
	    DVD`s.        </span>	    </p>
	    <p class="Stil1">
	      <label>
	      <input type="checkbox" name="mit_manschette" value="mit_manschette" />
	      mit Geschenkmanschette</label>
	    </p>
  <p class="Stil1">
    
    <select name="anrede">
      <option value="Herr" selected> Herr
        <option value="Frau"> Frau
        </select>
    <br>
    <input name = "name">
    Name<br>
    <input name = "vorname">
    Vorname<br>
    <input name = "strasse">
    Strasse<br>
    <input name = "hausnummer">
    Hausnummer<br>
    <input name = "plz">
    Postleitzahl<br>
    <input name = "ort">
    Ort<br>
    <input name = "mailadresse">
    Mailadresse<br>
    <input name = "tel"> 
    Telefonnummer
	    <p class="Stil1">
          <select name="zahlung">
            <option value="vorkassse" selected> Vorkasse
            <option value="Nachname"> Nachmane
            <option value="Rechnung"> Rechnung
          </select>
        <p class="Stil1">
    <input type = "submit" value="Senden">
    <input type = "reset">
      </form>
</body>
</html>

PHP:
<html><title>DVD Bestellung</title><style type="text/css">
<!--
body,td,th {
	color: #FFFFFF;
}
body {
	background-color: #000000;
}
-->
</style>
<body>

<?php
 


$headers  .= "From:$mailadresse";
$nachricht= "Bestelldaten
Stueckzahl      $stueckzahl
                $mit_manschette
Name            $name
Vorname         $vorname
Strasse         $strasse $hausnummer
Postleitzahl    $plz
Stadt           $ort
Zahlungsart     $zahlung
Telefonnummer   $tel";

  
  // email an den administrator schicken
mail('larsschuett@aol.com', 'Bestellung DVD', $nachricht, $headers);

echo "Vielen Dank $anrede $name. <br>
Sie erhalten in K&uuml;rze eine Email mit dem endg&uuml;ltigen Angebot inklusive der Versandtkosten."


?>
<form action="">
<input type="button" value="Fenster zu" onClick="self.close()">
</form>
</body>
</html>

Besten Dank schon mal!
 
ok, ich verstehe jetzt, dass das wohl an dem global_off liegt. Verstehe daher grundsätzlich auch, dass ich dem php-skript nun Variablen geben muss mit denen die Herkunft definiert ist..

Sicher ist das auch die bessere Lösung als einfach globals einzuschalten.
Ich weiß nur nicht, wie ich das konkret umsetzen kann/muss.

In welchem der beiden Skripte muss ich wo, was verändern? Im formular oder nur im php?!

Bin sehr Dankbar für konkrete Hilfe, weil ich jetzt Zeitdruck habe.
(und ich war ja auch schon so lange ich konnte bemüht hier keine Ressourcen unnötig abzuschöpfen :-)
 
PHP:
<?php
/* erste Möglichkeit */

// Bestellung
$stueckzahl     = $_POST['stueckzahl'];
$mit_manschette = $_POST['mit_manschette'];
$zahlung        = $_POST['zahlung'];

// Anschrift
$name        = $_POST['name'];
$vorname     = $_POST['vorname'];
$mailadresse = $_POST['mailadresse'];
$strasse     = $_POST['strasse'];
$hausnummer  = $_POST['hausnummer'];
$plz         = $_POST['plz'];
$ort         = $_POST['ort'];
$tel         = $_POST['tel'];

/* zweite Möglichkeit */

foreach ($_POST as $index => &$value) {
    $$index = $value;
}

/* anschließend, wie gewohnt verwenden, oder Variablen durch $_POST[name] erstzen (dritte Möglichkeit) */

$headers  .= "From:$mailadresse";
$nachricht= "Bestelldaten
Stueckzahl      $stueckzahl
                $mit_manschette
Name            $name
Vorname         $vorname
Strasse         $strasse $hausnummer
Postleitzahl    $plz
Stadt           $ort
Zahlungsart     $zahlung
Telefonnummer   $tel";

Such dir eine Möglichkeit aus ;)

Statt die Werte an einzelne Variablen zuzuweisen, wird eine der globalen Variablen mit den entsprechenden Werten gefüllt. Wenn du ein Formular über POST sendest, liegen die Daten im $_POST Array vor, und so weiter.
 
hallo
Ich bin noch nicht durchgestiegen, wie ich das einbauen muss.

Betrifft das nur die .php ode auch das formular.html?
Vielleicht kannst Du Deinen vorgeschlagenen Code kurz in meinen oben einfügen, so dass ich im ganzen sehe, wie es zusammen passt?!

Das wäre nett :)
 
Zurück