PHP wird nicht richtig ausgeführt

freundeder4ringe

Grünschnabel
Hallo,

ich bin erst am Anfang meiner PHP-Karriere, und habe mal ein bißchen mit Formularen rumexperimentiert, und das klappt schon nicht.
Es ist eigentlich ein recht symples PHP aber es funktioniert nicht, seit doch bitte so nett, und werft mal ein Auge drauf.

Dankeschön

PHP:
<?php

if (isset($_POST['Submit'])) {
    echo 'Name: ' . ((isset($_POST['name'])) ? htmlspecialchars($_POST['name']) : 'Keine Email hinterlegt');
	echo '<br /Straße: ' . ((isset($_POST['straße'])) ? htmlspecialchars($_POST['straße']) : 'Keine Straße hinterlegt');
	echo '<br /Ort: ' . ((isset($_POST['ort'])) ? htmlspecialchars($_POST['ort']) : 'Kein Ort hinterlegt');
	echo '<br /Telefon: ' . ((isset($_POST['telefon'])) ? htmlspecialchars($_POST['telefon']) : 'Keine Telefonnummer hinterlegt');
	echo '<br /Auswahl: ' . ((isset($_POST['select'])) ? htmlspecialchars($_POST['select']) : 'Keine Auswahl getroffen');
	echo '<br /Fahrzeug: ' . ((isset($_POST['fahrzeug'])) ? htmlspecialchars($_POST['fahrzeug']) : 'Kein Fahrzeug angegeben');
	echo '<br /Infotext: ' . ((isset($_POST['text'])) ? htmlspecialchars($_POST['text']) : 'Kein Text eingegeben');
	
	}
	?>

<form action="<?php echo htmlspecialchars($_SERVER['../termine.php']); ?>" name="form1" method="post" >
 
Sämtliche Tags für Zeilenumbrüche sind nicht geschlossen.

Was funktioniert denn nicht?

PHP:
<?php echo htmlspecialchars($_SERVER['../termine.php']); ?>

$_SERVER ist eine vordefinierte Variable und darunter gibt es kein '../termine.php'. Was versuchst du da zu erreichen?
 
Eigentlich sollte es heißen

PHP:
<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>

Danke für den Tip mit dem schließen.
Ich wollte mir die Formularangaben auf der selben Seite angeben lassen. Aber so wie es ist, zeigt er mir nur den ersten an, und die restlichen nicht. Und ich weiss nicht warum.
 
Zuletzt bearbeitet:
Da $_SERVER wie bereits erwähnt eine vordefinierte Variable ist, brauchst du diese nicht durch htmlspecialchars zu "schützen".

Achtest du auf Groß- und Kleinschreibung der Variablen?

Nützlich wäre auch, das gesamte Script zu sehen, also inkl. Formular.

Ich vermute es liegt weiterhin an "<br /Fahrzeug...". Das muss eher so aussehen: "<br />Fahrzeug...".
 
Du hattest Recht, ich habe zwar die Endungen gemacht, aber das Leerzeichen nicht weggemacht.

Dankeschön

Das ist der gesamte Code:

Code:
<?php

if (isset($_POST['Submit'])) {
    echo 'Name: ' . ((isset($_POST['name'])) ? htmlspecialchars($_POST['name']) : 'Keine Email hinterlegt');
	echo '<br/>Straße: ' . ((isset($_POST['straße'])) ? htmlspecialchars($_POST['straße']) : 'Keine Straße hinterlegt');
	echo '<br/>Ort: ' . ((isset($_POST['ort'])) ? htmlspecialchars($_POST['ort']) : 'Kein Ort hinterlegt');
	echo '<br/>Telefon: ' . ((isset($_POST['telefon'])) ? htmlspecialchars($_POST['telefon']) : 'Keine Telefonnummer hinterlegt');
	echo '<br/>Auswahl: ' . ((isset($_POST['select'])) ? htmlspecialchars($_POST['select']) : 'Keine Auswahl getroffen');
	echo '<br/>Fahrzeug: ' . ((isset($_POST['fahrzeug'])) ? htmlspecialchars($_POST['fahrzeug']) : 'Kein Fahrzeug angegeben');
	echo '<br/>Infotext: ' . ((isset($_POST['text'])) ? htmlspecialchars($_POST['text']) : 'Kein Text eingegeben');
	
	}
	?>

<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" name="form1" method="post" >

  <p><b><span style="font-family: Verdana,Tahoma,Arial,Helvetica,Sans-serif; font-size: 40pt; color: rgb(128,128,128);">Terminvereinbarung/-wunsch</span></b></p>
  <p>&nbsp;</p>
  <p>
    <label>Name
    <input type="name" name="name">
    </label>
    <br>
    <label>Straße
    <input type="straße" name="straße">
    </label>
    <br>
    <label>Ort 
    <input type="ort" name="ort"  >
    </label>
    <br>
    <label>Telefon
    <input type="telefon" name="telefon" >
    </label>
    <br>
  </p>
  <p>
    <label>Art des Termins 
    <select> 
      <option selected>Reparatur</option>
      <option>Service</option>
      <option>Tuev/Au</option>
      <option>Sonstiges</option>
       
    </select>
    </label>
    <br>
    <label>Fahrzeug
    <input type="fahrzeug" name="fahrzeug" >
    </label>
  </p>
  <p>
    <label>Weitere Info zum Terminwunsch 
    <textarea name="textarea" cols="70" rows="3"></textarea>
    </label>
  </p>
  <p>Rueckrufzeitpunkt: 
    <label>
    <input type="radio" name="zeitpunkt" value="Vormittag" >
    Vormittag</label> 
    <label>
    <input type="radio" name="zeitpunkt" value="Nachmittag" >
    Nachmittag</label>
  </p>
  <p>
    <label>
    <input type="submit" name="Submit" value="Senden">
    </label> 
   </p>
  <p>&nbsp;</p>
</form>
<p>&nbsp;</p>
</body>
</html>

Er zeigt mir jetzt zwar alles an, bis auf select und infotext.
 
Zuletzt bearbeitet:
PHP:
<?php

if (isset($_POST['Submit'])) {
    echo 'Name: ' . ((isset($_POST['name'])) ? htmlspecialchars($_POST['name']) : 'Keine Email hinterlegt');
	echo '<br/>Straße: ' . ((isset($_POST['straße'])) ? htmlspecialchars($_POST['straße']) : 'Keine Straße hinterlegt');
	echo '<br/>Ort: ' . ((isset($_POST['ort'])) ? htmlspecialchars($_POST['ort']) : 'Kein Ort hinterlegt');
	echo '<br/>Telefon: ' . ((isset($_POST['telefon'])) ? htmlspecialchars($_POST['telefon']) : 'Keine Telefonnummer hinterlegt');
	echo '<br/>Auswahl: ' . ((isset($_POST['typ'])) ? htmlspecialchars($_POST['typ']) : 'Keine Auswahl getroffen');
	echo '<br/>Fahrzeug: ' . ((isset($_POST['fahrzeug'])) ? htmlspecialchars($_POST['fahrzeug']) : 'Kein Fahrzeug angegeben');
	echo '<br/>Infotext: ' . ((isset($_POST['textarea'])) ? htmlspecialchars($_POST['textarea']) : 'Kein Text eingegeben');
	
	}
	?>

<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" name="form1" method="post" >

  <p><b><span style="font-family: Verdana,Tahoma,Arial,Helvetica,Sans-serif; font-size: 40pt; color: rgb(128,128,128);">Terminvereinbarung/-wunsch</span></b></p>
  <p>&nbsp;</p>
  <p>
    <label>Name
    <input type="name" name="name">
    </label>
    <br>
    <label>Straße
    <input type="straße" name="straße">
    </label>
    <br>
    <label>Ort 
    <input type="ort" name="ort"  >
    </label>
    <br>
    <label>Telefon
    <input type="telefon" name="telefon" >
    </label>
    <br>
  </p>
  <p>
    <label>Art des Termins 
    <select name="typ"> 
      <option selected>Reparatur</option>
      <option>Service</option>
      <option>Tuev/Au</option>
      <option>Sonstiges</option>
       
    </select>
    </label>
    <br>
    <label>Fahrzeug
    <input type="fahrzeug" name="fahrzeug" >
    </label>
  </p>
  <p>
    <label>Weitere Info zum Terminwunsch 
    <textarea name="textarea" cols="70" rows="3"></textarea>
    </label>
  </p>
  <p>Rueckrufzeitpunkt: 
    <label>
    <input type="radio" name="zeitpunkt" value="Vormittag" >
    Vormittag</label> 
    <label>
    <input type="radio" name="zeitpunkt" value="Nachmittag" >
    Nachmittag</label>
  </p>
  <p>
    <label>
    <input type="submit" name="Submit" value="Senden">
    </label> 
   </p>
  <p>&nbsp;</p>
</form>
<p>&nbsp;</p>
</body>
</html>

Du musst auch dem <select> einen Namen zuordnen und bei der Textarea hast du es zwar getan, aber bei PHP auf die Variable $_POST['text'] zugegriffen, die natürlich $_POST['textarea'] lauten muss.
 
Zurück