# Formular:  <form action="Variable" ......>



## solala123 (27. Oktober 2013)

Hallo,
ich habe ein Formular das u.a. auch die Eingabe der Postleitzahl hat.
Nun möchte ich mit eingabe der Plz. auch eine ander Webseite aufrufen.
z.B. Eingabe 91126 soll die Seite 91126.php aufrufen
       Eingabe 91154 soll die Seite 91154.php aufrufen

ich habe mir das so vorgestellt <form action="Variable von Plz" .......>
Ist das so machbar und wie sollte es aussehen? oder gibt es andere Lösungen?

mein Formular sieht so aus:


```
<form action="Ausgabe.php" method="post" name="finden" >


<fieldset><legend><span class="Stil1">Suchkriterien</span></legend>

<table width="100%" border="0" cellpadding="2" cellspacing="0"   bgcolor="#2F2F2F"><tr><td colspan="3" ><table width="100%" border="0" cellpadding="2" cellspacing="0" bgcolor="#EBC09A">
  <tr>
    <th colspan="5" scope="col"><img src="images/leiste-schatten-oben-braun.gif" width="100%" height="24" /></th>
  </tr>
  <tr>
    <td width="1%">&nbsp;</td>
    <td width="25%"><span class="Stil3">Plz. mind. 3 Stellen</span></td>
    <td width="26%"><span class="Stil3">Ort</span></td>
    <td colspan="2">&nbsp;</td>
  </tr>
  
  
  <tr>
    <td>&nbsp;</td>
    <td>
    <input name="plz" type="text" size="6" maxlength="6" />     </td>
    
    <td colspan="3">
    <input name="ort" type="text" size="40" maxlength="38" />    </td>
  </tr>
  
  
  <tr>
    <td><span class="Stil2"></span></td>
    <td width="25%"><span class="Stil3">Art der K&uuml;che</span></td>
    <td width="25%"><span class="Stil3">Garten</span></td>
    <td width="25%"><span class="Stil3">Behinderten gerecht</span></td>
    <td width="25%"><span class="Stil3">&Uuml;bernachtung m&ouml;glich</span></td>
  </tr>
  
  
  
<tr>
    <td>&nbsp;</td>
    <td>
        <select name="kueche" id="kueche"  size="1" maxlength="30" >
        <option> </option>
        <option>fränkisch</option>
        <option>deutsch</option>
        <option>italienisch</option>
        </select>    </td>
    <td>
        <select name="garten" id="garten"  size="1" maxlength="5" >
        <option> </option>
        <option>ja</option>
        <option>nein</option>
        </select>    </td>
    <td>
        <select name="behindert" id="behindert"  size="1" maxlength="5" >
        <option> </option>
        <option>ja</option>
        <option>nein</option>
        </select>    </td>
    <td>
        <select name="nacht" id="nacht"  size="1" maxlength="5" >
        <option> </option>
        <option>ja</option>
        <option>nein</option>
        </select>   </td>
</tr>
<tr>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
         <td colspan="2">&nbsp;</td>
</tr>
<tr>
         <td>&nbsp;</td>
         <td>&nbsp;</td>
         <td>&nbsp;</td>
         <td colspan="2">&nbsp;</td>
</tr>
<tr>
        <td colspan="5" >&nbsp;
        <input type="submit" name="submit" value="suchen" />
        <input type="reset" value="Löschen" onClick="return confirm('Wirklich Eingaben verwerfen?')" /></td>
 </tr>
 <tr>
        <td colspan="5">
        <img src="images/leiste-schatten-unten-braun.gif" width="100%" height="24" />    </td>
</tr>
</table></td>
</tr>
</table>
</fieldset>


           
</form>
```

Herzlichen Dank
mfg
Rainer


----------



## ComFreek (27. Oktober 2013)

Hallo,

sprich den Nutzer auf eine Seite x weiterleiten, wobei x von der Nutzereingabe auf der ersten Seite abhängt?

Zwei Möglichkeiten:

- JavaScript nutzen. Einfach einen Eventlistener zu einem Button o.Ä. hinzufügen, die Eingabe überprüfen (entsprechende Whitelist beispielsweise) und dann mittels window.location.href zur neuen URL weiterleiten lassen.

- Serverseitige Sprache. Der Eingabetext wird an ein fixes Skript übergeben (dessen URI sich nicht ändert) und dieses Skript leitet dann je nach Eingabe auf eine andere Seite weiter.


----------



## solala123 (27. Oktober 2013)

Hallo ComFreek,
Danke,

habe mal nach  Eventlistener den google bemüht, was habwegs vernünftiges habe ich nicht gefunden, aber ich weiß jetzt, dass es viele verschiedene Formen von Events gibt aber welcher zu mir passt, das weiß ich noch nicht. Es scheint für einen Unwissenden recht schwer zu sein.
hast du irgendwo ein Beispiel?

Ich könnte das alles in "SPS-S7" programmieren aber leider nützt mir das hier wenig  

Auch dein 2 Beispiel verstehe ich was Du meinst, aber in der Umsetztung scheitert das Vorhaben
ein Schubs in die richtige Richtung wäre toll, wo ich dann wieder weiter suchen und (vielleicht) finden kann

Gruß
Rainer


----------



## ComFreek (27. Oktober 2013)

Zum ersten

Ganze simples Beispiel:

```
var button = document.getElementById("deine-button-id-der-gedrückt-wird");
var input = document.getElementById("deine-input-id-wo-die-plz-reinkommt");

function validatePostalCode(str) {
  // ...
}

button.addEventListener("click", function () {
  if (validatePostalCode(input.value)) {
    window.location.href = input.value + ".php";
  }
});
```
validate() soll die PLZ auf Gültigkeit überprüfen.

Zum zweiten
Deine <form> soll an das Skript forward-postalcode.php senden.


```
<?php

function validate($postalCode) {
  // validate
  return true;
}

if (isset($_POST['postalCode'])) {
  $postalCode = $_POST['postalCode'];

  if (validate($postalCode)) {
    header('Location: ' . $postalCode . '.php');
    exit;
  }
}
```


----------



## solala123 (27. Oktober 2013)

Hallo,
vielen Dank für Deine Hilfe,
werde sie mir in den nächsten Tagen ansehen.
Schönes verbleibendes WE
Gruß
Rainer


----------



## solala123 (28. Oktober 2013)

Hallo 
habe noch zum Verständnis ein paar Fragen:
zum zweiten:
wenn diese Funktion aufgerufen wird, dann soll die eingegebene Postleitzahl überprüft werden ob kein blödsinn darinnen steht.
wenn es eine Postleitzahl ist, wird    true    ausgegeben und es kann mit if weiter gemacht werden, 

```
function validate($postalCode) {
  // validate
  return true;
}

if
```
Was ich nicht daran verstehe, wo oder wie wird die Variable $postalCode deklariert?



In $_Post steht ja die eingegebene Plz drinnen mit isset wir geprüft ob sie nicht null ist,
danach wird die Plz in die Variable $postalCode übertragen. 

```
if (isset($_POST['plz'])) {
  $postalCode = $_POST['plz'];     // hier steht meine Plz drinnen
```




hier soll die Plz nochmals überprüft werden
und dann die Datei Plz.php aufgerufen werden.

```
if (validate($postalCode)) {
    header('Location:' . $postalCode . '.php');
    exit;
echo $postalCode;   // habe ich zur Überprüfung eingesetzt
  }
```

Was muss ich als Location einsetzen? denn es wird die Datei mit der Plz.php nicht aufgerufen
in  echo $postalCode; steht die Plz richtig drinnen.

Und wenn nichts oder $ oder % mit in der Plz stehen wird das alles auch in echo $postalCode; angezeigt.
sollte, wenn in der Eingabe Plz was falsches steht nicht in der ersten Zeile mit    false abgebrochen werden ?

Gruß
Rainer


----------



## ComFreek (28. Oktober 2013)

validate() soll TRUE zurückgeben, wenn $postalCode eine gültige PLZ in deinem Sinne ist. Ansonsten FALSE.

$postalCode wird als Parameter der Funtkion übergeben.

isset() prüft übrigens auch, ob der Eintrag im Array überhaupt existiert.

Mit header('Location:') wird der Browser angefordert, auf die angegebene Seite weiterzuleiten.
Nach exit; wird natürlich nichts mehr ausgeführt, denn damit wird das PHP-Skript sofort abgebrochen.

Ganz am Ende kannst du noch dies hinzufügen:

```
exit('Wrong postal code.');
```
Sprich wenn exit; nicht ausgeführt wurde (keine oder ungültige PLZ), dann wird dieses exit; ausgeführt und 'Wrong postal code' wird ausgegeben.


----------



## solala123 (28. Oktober 2013)

Hallo,
jetzt glaube ich zu Wissen, wo der Fehler liegt,
es soll nicht ein Browser geöffnet werden, sondern eine andere Seite meiner Homepage.

Gruß
Rainer


----------



## ComFreek (28. Oktober 2013)

Mit beiden meiner Codes wird einfach nur weitergeleitet. Es wird kein 'Browser' geöffnet (was das auch heißt, du meinst vllt. Tab).


----------



## solala123 (28. Oktober 2013)

Hallo
TAB --> \t
erzeugt doch ein Leerzeichen ?

Was ich möchte ist folgendes:
ich habe in meiner Hompage Datei verschiedene Seiten die als Postleitzahl benannt sind 
z.B. 91126.php
       91154.php

wenn jetzt in meinem Formular jemand die Plz 91126 eingibt, sollte die Seite 91126.php geöffnet werden.

Danke
mfg
Rainer


----------



## tombe (28. Oktober 2013)

```
if (isset($_POST["plz"]) && file_exists($_POST["plz"] .".php")) {
    header("Location: " .$_POST["plz"] .".php");
} else {
    echo "Falsche oder keine Eingabe!";
}
```

Wenn jetzt die Variable $_POST["plz"] den Wert 12345 liefert, dann wechselst du so von der aktuellen Seite auf die die Seite "12345.php" sofern es eine Datei mit diesem Namen gibt.

Einzige Voraussetzung die Weiterleitung muss ganz oben auf der Seite stehen und es darf vorher NICHTS anderes im Browser ausgegeben werden.


----------



## solala123 (29. Oktober 2013)

Hallo Thomas,
Danke für die Antwort, kann es aber erst am Wochenende testen, bin wieder unterwegs.
mfg
Rainer


----------



## solala123 (1. November 2013)

Hallo Thomas,
die Seite mit der PLZ wird nicht aufgerufen,

nach abschicken des Formulars, wird das php Skript durchlaufen,



```
<?php
 echo hallo;
 function validate($postalCode) {
 // validate
 return true;
}

if (isset($_POST['plz'])) {
  $postalCode = $_POST['plz'];     // hier steht meine Plz drinnen  
  echo $plz;
  
  
if (isset($_POST["plz"]) && file_exists($_POST["plz"] .".php")) { echo haha; //  haha wird mir angezeigt
    header("Location: " .$_POST["plz"] .".php");
}

 else {
    echo "Falsche oder keine Eingabe!";
}    
  
  
} 


?>
```

der Befehl echo haha; wird ausgeführt und angezeigt.

so sieht der ganze Kopf aus:


```
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1" />
<meta name="robots" content="INDEX,FOLLOW" />
<meta name="keywords"
content="homepage,dokument,webpage,page,web,netz,homepage dokument webpage page web netz" />
<meta name="description"
content="homepage, dokument, webpage, page, web, netz" />
<title>ResBar</title>



<link rel="stylesheet" href="CSS/format.css" type="text/css" />
<link rel="stylesheet" href="CSS/menue.css" type="text/css" />

<style type="text/css">
body,td,th {
	color: #FFFFFF;
}
.Stil1 {color: #00FF00}
.Stil2 {color: #333333}
.Stil3 {color: #0000FF}
</style>
<link href="CSS/Tabelle.css" rel="stylesheet" type="text/css">
<style type="text/css">
<!--
a:active {
	color: #0000FF;
}
-->
</style></head>
<body>



 <?php
 echo hallo;
 function validate($postalCode) {
 // validate
 return true;
}

if (isset($_POST['plz'])) {
  $postalCode = $_POST['plz'];     // hier steht meine Plz drinnen  
  echo $plz;
  
  
if (isset($_POST["plz"]) && file_exists($_POST["plz"] .".php")) { echo haha;
    header("Location: " .$_POST["plz"] .".php");
}

 else {
    echo "Falsche oder keine Eingabe!";
}    
  
  
} 


?>
```

Ist es möglich, dass man den header Befehl in der Form nicht verwenden kann, weil ja die IF Funktion schon bearbeitet wird?
Im PHP manual steht immer nur der header alleine als Befehl ( meine Vermutung)


Ist es nicht möglich <form action .............hier die Variable plz einzusetzen ?

Gruß
Rainer


----------



## ComFreek (1. November 2013)

> Ist es möglich, dass man den header Befehl in der Form nicht verwenden kann, weil ja die IF Funktion schon bearbeitet wird?
> Im PHP manual steht immer nur der header alleine als Befehl ( meine Vermutung)


Nein, das trifft nicht zu. Es steht zur Einfachheit der Beispiele immer nur alleine.

Wenn du header() nutzen möchtest, dann kannst du davor keine Ausgabe machen (außer wenn du Output Buffering nutzt, aber nun gut). Du solltest lieber deine Website umstrukturieren oder den PHP-Code notgedrungenerweise an den Anfang der PHP-Datei schieben und ins IF dann [phpf]exit[/phpf] reinschreiben. Aber eine sehr unsaubere Lösung wäre das dann.

Außerdem würde ich dir empfehlen, error_reporting und display_errors beide mal anzuschalten. Damit hättest du den Fehler mit der Ausgabe vor header() schon längst entdeckt gehabt.


----------



## solala123 (4. November 2013)

hallo,
kann man anstelle des header() Befehls auch was anderes verwenden, dass mir eine neue Seite aus meinem Odrner aufgemacht wird? 

Das von Tombe funktioniert ja bis auf die Weiterleitung.

mfg
Rainer


----------



## tombe (4. November 2013)

Hallo Rainer,

das Beispiel von mir funktioniert sogar inklusive der Weiterleitung, du musst es nur so machen wie ich es oben geschrieben habe!



> Einzige Voraussetzung die Weiterleitung muss ganz oben auf der Seite stehen und es darf vorher NICHTS anderes im Browser ausgegeben werden.



Im neuen Beispiel wird die Fehlermeldung nur angezeigt wenn eine falsche Posteitzahl eingegeben wurde sprich die erforderliche Datei nicht vorhanden ist.


```
<?php
if (isset($_POST['plz']) && file_exists($_POST['plz'] .".php")) {
	header("Location:" .$_POST['plz'] .".php");
} else if (isset($_POST['plz']) && !file_exists($_POST['plz'] .".php")) {
	echo "Falsche oder fehlende Eingabe!";
}
?>
<form name="form1" action="unbenannt.php" method="post">
	<input type="text" name="plz" value="" size="20"/>
	<input type="submit" name="sub" value="Abschicken" />
</form>
```


----------



## solala123 (4. November 2013)

Hallo Thomas,
bei mir funktioniert es nicht, er versucht immer die Seite von action --> unbenannt.php zu öffnen

hier mal mein Code


```
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1" />
<meta name="robots" content="INDEX,FOLLOW" />
<meta name="keywords"
content="homepage,dokument,webpage,page,web,netz,homepage dokument webpage page web netz" />
<meta name="description"
content="homepage, dokument, webpage, page, web, netz" />
<title>ResBar</title>



<link rel="stylesheet" href="CSS/format.css" type="text/css" />
<link rel="stylesheet" href="CSS/menue.css" type="text/css" />
<link href="CSS/Tabelle.css" rel="stylesheet" type="text/css">

</head>
<body>

<?php
if (isset($_POST['plz']) && file_exists($_POST['plz'] .".php")) {
    header("Location:" .$_POST['plz'] .".php");
} else if (isset($_POST['plz']) && !file_exists($_POST['plz'] .".php")) {
    echo "Falsche oder fehlende Eingabe!";
}
?>
```




```
<form name="form1" action="unbenannt.php" method="post">
    <input name="plz" type="text" size="6" maxlength="6"  value="" />     </td>
        <input type="submit" name="sub" value="suchen"  />
```

Gruß
Rainer


----------



## tombe (4. November 2013)

Also wenn ich es so schreibe, macht es das was es soll.


```
<?php
if (isset($_POST['plz']) && file_exists($_POST['plz'] .".php")) {
    header("Location:" .$_POST['plz'] .".php");
} else if (isset($_POST['plz']) && !file_exists($_POST['plz'] .".php")) {
    echo "Falsche oder fehlende Eingabe!";
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1" />
<meta name="robots" content="INDEX,FOLLOW" />
<meta name="keywords"
content="homepage,dokument,webpage,page,web,netz,homepage dokument webpage page web netz" />
<meta name="description"
content="homepage, dokument, webpage, page, web, netz" />
<title>ResBar</title>

<link rel="stylesheet" href="CSS/format.css" type="text/css" />
<link rel="stylesheet" href="CSS/menue.css" type="text/css" />
<link href="CSS/Tabelle.css" rel="stylesheet" type="text/css">

</head>
<form name="form1" action="unbenannt.php" method="post">
	<input name="plz" type="text" size="6" maxlength="6"  value="" />
    <input type="submit" name="sub" value="suchen"  />
</form>
<body>
```

Das zuerst mal die Datei "unbenannt.php" aufgerufen wird, ist auch richtig. Sie ist schließlich beim action-Attribut eingetragen. Wenn du es 200% richtig machen willst, dann kannst du noch nach der head-Anweisung ein *exit;* schreiben. Sollte aber auch so klappen.


----------



## solala123 (4. November 2013)

Hallo,
habe es von dir kopiert und bei mir geht es wieder nicht
so jetzt schick ich dir die ganze Seite mal




```
<?php
if (isset($_POST['plz']) && file_exists($_POST['plz'] .".php")) {
    header("Location:" .$_POST['plz'] .".php");
} else if (isset($_POST['plz']) && !file_exists($_POST['plz'] .".php")) {
    echo "Falsche oder fehlende Eingabe!";
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1" />
<meta name="robots" content="INDEX,FOLLOW" />
<meta name="keywords"
content="homepage,dokument,webpage,page,web,netz,homepage dokument webpage page web netz" />
<meta name="description"
content="homepage, dokument, webpage, page, web, netz" />
<title>ResBar</title>

<link rel="stylesheet" href="CSS/format.css" type="text/css" />
<link rel="stylesheet" href="CSS/menue.css" type="text/css" />
<link href="CSS/Tabelle.css" rel="stylesheet" type="text/css">

</head>
<form name="form1" action="unbenannt.php" method="post">
    <input name="plz" type="text" size="6" maxlength="6"  value="" />
    <input type="submit" name="sub" value="suchen"  />
</form>
<?php 
exit();
?>
<body>




<!--  Ändern der Tabellenfarbe jeder 2 Zeile -->
<script type="text/javascript">
function altRows(id){
	if(document.getElementsByTagName){  
		
		var table = document.getElementById(id);  
		var rows = table.getElementsByTagName("tr"); 
		 
		for(i = 0; i < rows.length; i++){          
			if(i % 2 == 0){
				rows[i].className = "evenrowcolor";
			}else{
				rows[i].className = "oddrowcolor";
			}      
		}
	}
}
window.onload=function(){
	altRows('alternatecolor');
}
</script>







<table  align="center" id="breite" cellspacing="0" cellpadding="0" border="0"  >
<tr>


<!--ende aussentab-->
<td align="center" width="100%"   >

<!--schatten um die seite oben -->
<table width="100%" align="center"       border="0" cellpadding="0" cellspacing="0">
<tr>
 <td id="s1"><img src="images/1.jpg" width="22" height="22" border="0" alt="" /></td>
 <td id="s2"><img src="images/2.jpg" width="22" height="22" border="0" alt="" /></td>
 <td id="s3"><img src="images/3.jpg" width="22" height="22" border="0" alt="" /></td>
</tr>
<tr>
 <td id="s4"><img src="images/4.jpg" width="22" height="22" border="0" alt="" /></td>
 <td  >
<!--ende schatten um die seite oben -->
<!--kopf-->
<table   width="100%"     border="0" cellpadding="0" cellspacing="0"  >
<tr>
<td    id="top1"    ><span   id="name">Restaurants und Bars</span></td>
</tr>
<tr>
<td      id="top2" >


<table height="100%"   width="100%"     border="0" cellpadding="0" cellspacing="0">
<tr>
<td id="logo" width="66%">
 </td>
<td  width="34%"  id="nav" >
<!-- menü rechts oben 1-->
<div id="menu2">
<b style="font-size:20px; color:#996633; background-color:#EBC09A; padding-left:6px; padding-right:6px; background-image:url(images/leiste-schatten-unten-braun.gif); border:solid 1px black; background-repeat:repeat-x; background-position:  50% 100%; padding-bottom:3px">»</b>&nbsp;
<span style="font-size: 16px;font-family: arial,tahoma,verdana,helvetica, sans-serif;color:#e6e6e6;">Navigation. First.</span>
<ul  >
<li><a href="*.*"  >Link 1</a></li>
<li><a href="*.*"  >Link 2</a></li>
<li><a href="*.*"  >Link 3</a></li>
<li><a href="*.*"  >Link 4</a></li>
<li><a href="*.*"  >Link 5</a></li>
<li><a href="*.*"  >Link 6</a></li>
</ul>
</div>
<!-- ende menü rechts oben 1-->

<!-- menü rechts oben 2-->
<div id="menu2b">
<b style="font-size:20px; color:#996633; background-color:#EBC09A; padding-left:6px; padding-right:6px; background-image:url(images/leiste-schatten-unten-braun.gif); border:solid 1px black; background-repeat:repeat-x; background-position:  50% 100%; padding-bottom:3px">»</b>&nbsp;
<span style="font-size: 16px;font-family: arial,tahoma,verdana,helvetica, sans-serif;color:#e6e6e6">Navigation. Second.</span>
<ul  >
<li><a href="*.*"  >Partner 1</a></li>
<li><a href="*.*"  >Partner 2</a></li>
<li><a href="*.*"  >Partner 3</a></li>
<li><a href="*.*"  >Sponsor 1</a></li>
<li><a href="*.*"  >Sponsor 2</a></li>
<li><a href="*.*"  >Weitere Links</a></li>
</ul>
</div>
<!-- ende menü rechts oben 2-->
</td>
</tr>
</table>

</td>
</tr><tr>
<td    id="top3"    ><table width="100%" align="center"    id="menu1"  border="0" cellpadding="0" cellspacing="0"    >
<tr>
<td align="center" width="20%"  ><a href="index.php"  >Home</a></td>
<td  class="trenn"><img src="images/pixelspace.gif" width="1" height="1" border="0" alt="" /></td><td  class="trenn2"><img src="images/pixelspace.gif" width="1" height="1" border="0" alt="" /></td>
<td width="20%" align="center"><a href="index.php">Service</a></td>
<td class="trenn"><img src="images/pixelspace.gif" width="1" height="1" border="0" alt="" /></td> <td  class="trenn2"><img src="images/pixelspace.gif" width="1" height="1" border="0" alt="" /></td>
<td width="20%" align="center"><a href="Ausgabe.php">Ausgabe</a></td>
<td  class="trenn"><img src="images/pixelspace.gif" width="1" height="1" border="0" alt="" /></td><td  class="trenn2"><img src="images/pixelspace.gif" width="1" height="1" border="0" alt="" /></td>
<td width="20%" align="center"><a href="Eingabe.php">Eingabe</a></td>
<td  class="trenn"><img src="images/pixelspace.gif" width="1" height="1" border="0" alt="" /></td><td  class="trenn2"><img src="images/pixelspace.gif" width="1" height="1" border="0" alt="" /></td>
<td width="20%" align="center"><a href="index.php"  >Impressum</a></td>

</tr>
</table>
<!-- ende menü oben--></td>
</tr>
</table>



<!--ende oben-->


<!--  inhalt-->

<table align="center"  width="100%"     border="0" cellpadding="0" cellspacing="0"  >

<tr>



<td valign="top"  id="textbox">


<h2>Hier k&ouml;nnen Sie die Suche Starten nach Ihren W&uuml;nschen</h2>
<p>&nbsp;</p>
<!--Anfang Testseite -->





<form name="form1" action="unbenannt.php" method="post">


<fieldset><legend><span class="Stil1">Suchkriterien</span></legend>

<table width="100%" border="0" cellpadding="2" cellspacing="0"   bgcolor="#2F2F2F"><tr><td colspan="3" ><table width="100%" border="0" cellpadding="2" cellspacing="0" bgcolor="#EBC09A">
  <tr>
    <th colspan="5" scope="col"><img src="images/leiste-schatten-oben-braun.gif" width="100%" height="24" /></th>
  </tr>
  <tr>
    <td width="1%">&nbsp;</td>
    <td width="25%"><span class="Stil3">Plz. mind. 3 Stellen</span></td>
    <td width="26%"><span class="Stil3">Ort</span></td>
    <td colspan="2">&nbsp;</td>
  </tr>
  
  
  <tr>
    <td>&nbsp;</td>
    <td>
    <input name="plz" type="text" size="6" maxlength="6"  value="" />     </td>
    
    <td colspan="3">
    <input name="ort" type="text" size="40" maxlength="38" />    </td>
  </tr>
  
  
  <tr>
    <td><span class="Stil2"></span></td>
    <td width="25%"><span class="Stil3">Art der K&uuml;che</span></td>
    <td width="25%"><span class="Stil3">Garten</span></td>
    <td width="25%"><span class="Stil3">Behinderten gerecht</span></td>
    <td width="25%"><span class="Stil3">&Uuml;bernachtung m&ouml;glich</span></td>
  </tr>
  
  
  
<tr>
    <td>&nbsp;</td>
    <td>
        <select name="kueche" id="kueche"  size="1" maxlength="30" >
        <option> </option>
        <option>fränkisch</option>
        <option>deutsch</option>
        <option>italienisch</option>
        </select>    </td>
    <td>
        <select name="garten" id="garten"  size="1" maxlength="5" >
        <option> </option>
        <option>ja</option>
        <option>nein</option>
        </select>    </td>
    <td>
        <select name="behindert" id="behindert"  size="1" maxlength="5" >
        <option> </option>
        <option>ja</option>
        <option>nein</option>
        </select>    </td>
    <td>
        <select name="nacht" id="nacht"  size="1" maxlength="5" >
        <option> </option>
        <option>ja</option>
        <option>nein</option>
        </select>   </td>
</tr>
<tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td colspan="2">&nbsp;</td>
</tr>
<tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td colspan="2">&nbsp;</td>
</tr>
<tr>
    <td colspan="5" >&nbsp;
        <input type="submit" name="sub" value="suchen"  />
        <input type="reset" value="Löschen" onClick="return confirm('Wirklich Eingaben verwerfen?')" /></td>
 </tr>
 <tr>
    <td colspan="5">
        <img src="images/leiste-schatten-unten-braun.gif" width="100%" height="24" />    </td>
</tr>
</table></td>
</tr>
</table>
</fieldset>


           
</form>
<br />
<br /><br />















<fieldset><legend><span class="Stil1">Gefunden</span></legend>

<p>
  <?php
require_once ('konfiguration-ResBar.php');

$garten      = $_POST['garten'];
$kueche      = $_POST['kueche'];
$plz         = $_POST['plz'];
$ort         = $_POST['ort'];
$behindert   = $_POST['behindert'];
$nacht       = $_POST['nacht']; 


if (isset($_POST["submit"]))
 {      //  if Klammer auf und ganz am Schluß Klammer zu
 
 
 
 
$query  =   sprintf(
"SELECT * FROM ResBar WHERE garten='%s'  OR kueche='%s'   OR plz='%s'    OR ort='%s'   OR behindert='%s'   OR nacht='%s'  ",
            mysqli_real_escape_string($db_link, $garten),
			mysqli_real_escape_string($db_link, $kueche),
            mysqli_real_escape_string($db_link, $plz),
            mysqli_real_escape_string($db_link, $ort),
            mysqli_real_escape_string($db_link, $behindert),
			mysqli_real_escape_string($db_link, $nacht)
            );   
 
$db_erg = mysqli_query( $db_link, $query );
if ( ! $db_erg )
{
die('Ungültige Abfrage: ' . mysqli_error());
}


 }// Klammer von submit
 
 
 echo "<table width='100%' class='altrowstable' id='alternatecolor' >
  <tbody>
  
  
  
   
      <td background='images/leiste-schatten-ausgabetabelle.gif' width='5%' >  Bild                 </td>
      <td background='images/leiste-schatten-ausgabetabelle.gif'>  Lokalname                        </td>
      <td background='images/leiste-schatten-ausgabetabelle.gif'>  Küche                            </td>
	  <td background='images/leiste-schatten-ausgabetabelle.gif'>  Garten                           </td>
	  <td background='images/leiste-schatten-ausgabetabelle.gif'>  Ruhetage                         </td> 
	  <td background='images/leiste-schatten-ausgabetabelle.gif'>  Über- <br>nachtung               </td> 
	  <td background='images/leiste-schatten-ausgabetabelle.gif'>  Behinderten- <br>freundlich      </td> 
	  <td background='images/leiste-schatten-ausgabetabelle.gif'>  Telefon                          </td> 
	  <td background='images/leiste-schatten-ausgabetabelle.gif'>  Postleitzahl                     </td> 
	  <td background='images/leiste-schatten-ausgabetabelle.gif'>  Ort                              </td> 
	  <td background='images/leiste-schatten-ausgabetabelle.gif'>  Straße                           </td> 
	  <td background='images/leiste-schatten-ausgabetabelle.gif'>  Homepage                         </td> 	  
   
";

 
 
 
 

while ($zeile = mysqli_fetch_array( $db_erg, MYSQL_ASSOC))
{
		echo "<tr>";
		echo "<td>". $zeile['bild'] .           "</td>";
		echo "<td>". $zeile['restaurantname'] . "</td>";
		echo "<td>". $zeile['kueche'] .         "</td>";
		echo "<td>". $zeile['garten'] .         "</td>";
		echo "<td>". $zeile['montag']  .' '.  $zeile['dienstag'] .' '.  $zeile['mittwoch'] . ' '.  $zeile['donnerstag'] . ' '.  $zeile['freitag']     .' '               . $zeile['samstag'] . ' '.  $zeile['sonntag'] . "</td>";
		echo "<td>". $zeile['nacht'] .          "</td>";
		echo "<td>". $zeile['behindert'] .      "</td>";
		echo "<td>". $zeile['telefon'] .        "</td>";
		echo "<td>". $zeile['plz'] .            "</td>"; 
		echo "<td>". $zeile['ort'] .            "</td>";    
		echo "<td>". $zeile['strasse'] .        "</td>";  

        // Escaping für Kontextwechsel nach HTML
        $e = function ($s) { return htmlspecialchars($s, ENT_QUOTES, 'UTF-8'); }; 
        //homepage Anzeige als Link
        echo '<td><a href="' . $zeile['homepage'] . '">' . $zeile['homepage'] . '</a></td>';  		 
	
		echo "</tr>";
}


 
mysqli_free_result( $db_erg ); 


echo "</tbody></table>";

?>
  
  
 

  
  
  
  
  
<!--  
 <a  class="mitte">
<img   src="Bilder/Hans.jpg" width="50" height="50" align="middle" style=""  /> <br />
<span  class="mitte_mitte">       
<img    src="Bilder/Hans.jpg"  alt="" style="z-index:20" /></span></a>
<br />
-->


</fieldset>






<!-- Ende Testseite --></td></tr>
<tr>
  <td valign="top"  id="textbox4">
</td></tr>
<tr>
  <td valign="top"  id="textbox3">
</td></tr>
<tr>
  <td valign="top"  id="textbox2">
</td></tr>
</table>


<!-- ende inhalt-->

<!-- fuss-->

<table width="100%"     border="0" cellpadding="0" cellspacing="0" >
<tr>
<td  id="fuss"  ><a href="http://resbar.de/">ResBar.de</a><br />



</td>
</tr>
</table>



</td>
<!-- schatten um die seite unten -->
 <td id="s6"><img src="images/6.jpg" width="22" height="22" border="0" alt="" /></td>
</tr>
<tr>
 <td id="s7"><img src="images/7.jpg" width="22" height="22" border="0" alt="" /></td>
 <td id="s8"><img src="images/8.jpg" width="202" height="22" border="0" alt="" /></td>
 <td id="s9"><img src="images/9.jpg" width="22" height="22" border="0" alt="" /></td>
</tr>
</table>
<!--ende schatten um die seite unten -->

</td>
</tr>
</table> 

</body></html>
```


----------



## ComFreek (4. November 2013)

Hast du die Leerzeilen hier in der Codebox auch in deiner PHP-Datei?
Wenn ja, entferne es. '<?php' muss als erstes stehen.

Du solltest übrigens Warnunge ausgegeben bekommen.

```
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
```
Füg mal das hinzu, also:

```
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
if (isset($_POST['plz']) && file_exists($_POST['plz'] .".php")) {
    header("Location:" .$_POST['plz'] .".php");
} else if (isset($_POST['plz']) && !file_exists($_POST['plz'] .".php")) {
    echo "Falsche oder fehlende Eingabe!";
}
?>
```
Nun probiere nochmal Leerzeilen vor dem ersten PHP-Tag einzufügen und danach das Formular abzuschicken.


----------



## tombe (5. November 2013)

Mir ist gestern mein Rechner abgeschmiert und jetzt habe ich nur das Handy.
Was mir aber noch aufgefallen ist, du hast zwei form-Tags. Nicht  das dadurch auch noch ein Durcheinander ensteht.


----------



## solala123 (5. November 2013)

Hallo Thomas,
das  <?php stand schon an erster Stelle,
habe nochmals Dein Programm kopiert und es kommen keine Fehlermeldungen auch nicht, wenn ich Leerzeilen vorher einfüge.

Es erscheint immer nur die Meldung, dass er "unbenannt.php" nicht findet.

Wo siehst Du denn 2 Form-Tags ? 

und die sollten auch mom. keine Rolle spielen, da ja nach exit() Schluß ist.


----------



## tombe (5. November 2013)

In deinem letzten Beispiel steht sowohl in Zeile 27 als auch in Zeile 176 steht ein form-Tag und in beiden gibt es ein Textfeld mit dem Namen "plz".

Ich behaupte mal das bei dir dadurch die Probleme entstehen!

Nimm doch einfach mal mein Beispiel aus Beitrag 16 oder 18 ohne den ganzen HTML Code und teste damit. So bald du dort eine Postleitzahl eingibst von der die entsprechende Seite vorhanden ist, wirst du sehen das du zu dieser Seite geleitet wirst.


----------



## solala123 (5. November 2013)

Hallo Thomas,
ich glaube mein PC kennt den header Befehl nicht 
es geht wieder nicht, wieder nur die Meldung "unbenannt.php" nicht gefunden. Hab auch mal "unbenannt.php" umgenannt, es wird tatzächlich diese Seite bearbeitet. Auch falsche Eingaben werden ignoriert es kommt die Ausgabe auch nicht.
das ist jetzt die komplette Seite,


```
<?php
if (isset($_POST['plz']) && file_exists($_POST['plz'] .".php")) {
    header("Location:" .$_POST['plz'] .".php");
} else if (isset($_POST['plz']) && !file_exists($_POST['plz'] .".php")) {
    echo "Falsche oder fehlende Eingabe!";
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1" />
<meta name="robots" content="INDEX,FOLLOW" />
<meta name="keywords"
content="homepage,dokument,webpage,page,web,netz,homepage dokument webpage page web netz" />
<meta name="description"
content="homepage, dokument, webpage, page, web, netz" />
<title>ResBar</title>

<link rel="stylesheet" href="CSS/format.css" type="text/css" />
<link rel="stylesheet" href="CSS/menue.css" type="text/css" />
<link href="CSS/Tabelle.css" rel="stylesheet" type="text/css">

</head>
<form name="form1" action="unbenannt.php" method="post">
    <input name="plz" type="text" size="6" maxlength="6"  value="" />
    <input type="submit" name="sub" value="suchen"  />
</form>
<body>
```


----------



## ComFreek (5. November 2013)

Wie ist die URI zu deinem Skript? Also wie rufst du es am Anfang auf?

Das muss mit unbenannt.php übereinstimmen!


----------



## solala123 (5. November 2013)

hallo
ich rufe das Skript "Test.php" von einem willkürlichen Link von einer anderen Seite auf zum testen.

Wie meinst Du das, es muß mit unbenannt.php übereinstimmen?
die Seite unbenannt.php gibt es nicht


----------



## solala123 (5. November 2013)

Hallo ComFreek,
Danke für die Hilfe, ich habe jetzt eine Seite mit unbenannt erstellt und schon funktioniert es.
Danke auch an Thomas, hoffentlich hast du deinen PC bald wieder im Griff
Gruß
Rainer


----------



## ComFreek (5. November 2013)

Du möchtest die Formulardaten an unbenannt.php senden. Da ein nicht existierendes Skript anzugeben ist natürlich ein Logikfehler.

So wie dein Skript Test.php aktuell (Post #17) geschrieben ist, musst du das Formular auch auf Test.php selbst senden lassen.


----------



## solala123 (5. November 2013)

Hallo,
ich möchte die Formulardaten an die Seite von der Plz. senden, ist das denn auch so möglich?


----------



## solala123 (6. November 2013)

hallo,
mal zu meinem Verständnis:
1.  wenn ich Variable deklariert habe (hier z.B. die plz , dann steht ja im Arbeitsspeicher die plz z.B. 91166
2.  wenn ich die plz wieder haben möchte, dann hole ich sie mir mit z.B. echo  <?php echo "$plz";?> wieder zur Anzeige 

3. wenn ich jetzt aber die Seite aufgerufen habe mittels "header" Befehl, sind die Variablen im Arbeitsspeicher weg!   ist das so oder mache ich was falsch

4. wenn der Arbeitsspeicher mit den Variablen leer ist, dann kann ich die Ausgabe der Datenbank ja gar nicht auf den Seiten ausgeben, die duch die plz und header aufgerufen wurden!

5. gibt es eine andere Möglichkeit, mottels Eingabe der plz eine andere Seite zu öffnen und darin die Ausgabe der Datenbank anzuzeigen?

Danke
mfg
Rainer


----------



## ComFreek (6. November 2013)

Ich weiß nicht, ob du wirklich den Lebenszyklus von PHP verstanden hast.
Dein Browser fragt nach einer URI bei einem Server an (grob gesagt). Der Server entdeckt, dass es sich um eine *.php-Datei handelt, deswegen wird der PHP-Interpreter aufgerufen. Dieser verarbeitet das Skript und beendet sich dann selbst. Der Server schickt die Ausgabe von PHP weiter an den Klienten (dein Browser).

Alles, was du nicht persistent (sprich: nicht in Datei, Datenbank, $_SESSION oder z.B. memcached) gespeichert hast, ist nach dem Ausführen des Skriptes verloren.

Dein aktuelles Anliegen verstehe ich leider nicht.


> 5. gibt es eine andere Möglichkeit, mottels Eingabe der plz eine andere Seite zu öffnen und darin die Ausgabe der Datenbank anzuzeigen?


Ein Formular, welches zu einem Skript X.php geschickt wird (action="X.php"). X.php liest die übergebenen Daten aus (entweder $_GET $_POST), fragt die DB ab und sendet die Ergebnisse an den Browser (echo).


----------



## solala123 (6. November 2013)

Hallo,
also, ich habe ein Formular erstellt, das auch die Eingabe der Plostleitzahl $plz enthält.
alle Daten des Formulars werden an eine Datenbank geschickt. Das funktioniert auch alles.

Nun möchte ich die Daten wieder aus dem Formular holen, auch das ist kein Problem, wenn ich die Daten an die Seite übergebe, die im <form action=....... stehen.

Ich möchte aber die Ausgabe der Datenbank auf verschiedenen Seiten aufrufen. Die Seiten, die aufgerufen werden, sollen durch die plz bestimmt werden.
z.B. wenn in der plz = 91166 steht, dann möchte ich die Seite 91166.php aufrufen und auf dieser Seite die Daten der Datenbank anzeigen.
wenn in der plz = 91126 steht, dann möchte ich die Seite 91126.php aufrufen und auf dieser Seite die Daten der Datenbank anzeigen.

Jetzt kann ich zwar die Seiten aufrufen aber es sind keine Daten der Datenbank mehr vorhanden.


----------



## ComFreek (6. November 2013)

Achso, ich verstehe.

Wieso willst du für jede PLZ eine eigene PHP-Datei? Oder will du nur, dass dir URL so ausschaut (und du es intern mit mod_rewrite auf ein anderes PHP-Skript weiterleiten lässt)?


----------



## solala123 (6. November 2013)

vielleicht denke ich auch zu komliziert,
Mein Grundgedanke ist folgender,
da ich für die verschiedenen Postleitzahlen, sprich Städte eigene Bilder zu den Datenbankergebnissen anzeigen möchte und auch spezielle Infos, bin ich mit einer eigenen Seite am Besten dran. (so glaube  ich es zumindest)

Wenn ich auf der Seite bleibe und nicht auf Plz Seite springe, müsste ich die Bilder austauschen auf der Seite.
Vielleicht hast Du da eine Idee dazu?


----------



## tombe (6. November 2013)

Erstelle doch einfach eine Seite die immer mit dem Parameter "plz" aufgerufen wird. Anhand dieses Wertes werden dann die Bilder usw. aus der Datenbank geholt und angezeigt.

So hast du nicht unzählige "starre" Seiten für je eine Postleitzahl die du anlegen und manuell pflegen musst. Du gibst die Werte einfach in eine eigene Tabelle ein und holst sie dir von dort.


----------



## solala123 (7. November 2013)

Hallo Thomas,
die Idee, die Bilder auch in der Datenbank zu speichern ist auch ganz gut, bin immer davon ausgegengen, dass ich die Bilder auf dem Server speichere. Werd ich mir mal genauer ansehen, hab aber die nächsten Wochen wenig Zeit bin wieder auf Tour.
Danke
Gruß
Rainer


----------



## tombe (7. November 2013)

STOP: nicht die Bilder in der Datenbank speichern, sondern nur den Pfad wo die Bilder auf dem Server liegen!

Es ist zwar möglich Bilder wirklich in einem Feld direkt in die Datenbank zu schreiben und wieder auszulesen (habe ich aber noch nie gemacht). Dann musst du aber auch die gleichen Bilder X-Mal speichern. So gibst du nur den gleichen Pfad an!

Wünsche dir eine gute Reise, komm gesund wieder!


----------



## solala123 (9. November 2013)

Hallo Thomas,
Danke das DU so besorgt um mich bist, aber das hast du mir schon gelernt  
schones WE
Gruß
Rainer


----------



## solala123 (19. November 2013)

Hallo,
habe die Bilder (nur den Pfad wo die Bilder auf dem Server liegen!) in einer zweiten Tabelle gespeichert und so funktioniert es auch wunderbar. 
Danke an alle,
Gruß
Rainer


----------

