• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

2 seiten zusammenfügen

Status
Für weitere Antworten geschlossen.

digga

Mitglied
Hallo!!
Ich habe ein Kontaktformular, welches über 2 verschiedene Seiten geht... Einmal die Seite, mit den Daten, die man eintragen kann und die Seite, die überprüft...
Jetzt möchte ich gerne wissen, ob und wenn ja wie man die beiden Seite zusammenfügen muss, dass dann unter dem Button "Abschicken" die Meldung steht??

Die beiden Seiten:
kontakt.php(als txt): Kontaktformular
auswerten.php(als txt): Kontaktformular
 
Du fügst beide Dateien in die Formular Datei und setzt bei dem Form-Tag den Parameter action auf PHP_SELF.

Also so:
PHP:
<?php
include "datei1.ext";
include "datei2.ext";
?>

<form name="formular" method="post" action="<?php $_SERVER['PHP_SELF']; ?>"<
 <!--Hier das Formular-->
</form>
So kann mans machen.


MfG, matibaski
 
Ahaaa... Hättest vorher besser erklären sollen..
Wenn auf der einen Datei die Formulare sind, und auf der anderen die Abprüfungen mit PHP, dann macht man das so:
HTML:
<form action="datei2.php"></form>
Also action="deinedatei/auf/der/weitergeleitet/werden/soll/nach/submit/klick.php"


MfG, matibaski
 
Mhh... das ist ja alles schön und gut, jedoch möchte ich, dass auf der selben seite, auf der ich die inputs mache auch die überprüfung stattfindet!! wie mache ich das?
 
So:
PHP:
<?php
if(!isset($_POST['formular'])) // Prüfen ob was mit dem Formular geschickt wurde
{
 // Wenn nicht, Formular ausgeben
 echo'
 <form name="formular" action="'.$_SERVER['PHP_SELF'].'" method="post"> // Anhand von name="formular" prüfen wir eben das oben. Und $_SERVER['PHP_SELF'] sagts ja schon, wenn wir übersetzten. Also PHP macht das auswerten alleine, ohne weitersenden

 // Hier die Inputs.

 </form>
}
else // Wenn doch was ausgefüllt wurde
{
 // Auswerten.
 // Ich rate dir an, einige Abprüfungen zu machen, ob alles ausgefüllt worden ist, was nötig ist, usw....
 // Ein Spamschutz ist auch immer gut :D
}
?>
MfG, matibaski
 
In der ersten Datei steht das Formular, nennen wir sie datei1.html, in der zweiten Datei die Auswertung des Formulars, also datei2.php.

Im <form>-Tag des Formulars in der Datei1.html gibt es das action-Attribut, welches angibt wohin die Daten gesendet werden sollen, das machst du nun so:

Code:
<form action="./datei2.php" method="post">
...
In der Datei2.php könnte dann z.B. folgendes stehen:

PHP:
<?php

if (!isset($_POST['submit'])) {

  die('Fehler, SubmitButton wurde nicht geklickt!');

}
else {

  echo "AUSWERTUNG";

}

?>
Du darfst aber nicht vergessen dem Submit-Button im Formular entsprechenden Namen zuzuweisen, da die Auswertung sonst immer abgebrochen werden würde.
Also:

Code:
...
<input type="submit" name="submit" value="Klick">
EDIT: Oh, anders, dann hier:
PHP:
<html>
<head>
...
<body>
<?php

$fehler = 0;

if (isset($_POST['submit'])) {

  if (!isset($_POST['testfeld']) || $_POST['testfeld'] == "") {

    echo "Die müssen das Feld 'Testfeld' ausfüllen!";
    $fehler = 1;
    $testfeld_error = "<span style="color:red;">*</span>";    

  }

}

if ($fehler == 0) {

  echo "ALLES OKAY, hier können die Werte weiterverarbeitet werden!<br>";
  echo "Nicht vergessen die Usereingaben mit htmlspecialchars zu entschärfen!<br>";

}
else {

?>

<form action="<?=htmlspecialchars($_SERVER['PHP_SELF'])?>" method="post">
...
<input type="text" name="testfeld"> <?=$testfeld_error?>
<input type="submit" name="submit" value="KLICK">
</form>

<?php

}

?>
</body>
</html>
@ matibaski
matibaski schrieb:
Und $_SERVER['PHP_SELF'] sagts ja schon, wenn wir übersetzten. Also PHP macht das auswerten alleine


Blödsinn, das heißt nicht PHP_SELF, weil es beim Formular 'alles alleine macht', sondern
weil es den aktuellen Pfad und die Datei angibt, also als Sendeadresse des Formulars die aktuelle
Datei zurückgibt.
Es ist gleichbedeutend mit:

// datei.php
action="./datei.php"


 
Zuletzt bearbeitet:
Status
Für weitere Antworten geschlossen.
Zurück
Oben