WinFuture-Forum.de: Seitenaufruf über Include - Wie Neues Fesnter öffnen? - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
  • 2 Seiten +
  • 1
  • 2

Seitenaufruf über Include - Wie Neues Fesnter öffnen?

#16 Mitglied ist offline   Graumagier 

  • Gruppe: aktive Mitglieder
  • Beiträge: 8.747
  • Beigetreten: 01. März 04
  • Reputation: 1
  • Geschlecht:Männlich
  • Wohnort:Graz, Österreich

geschrieben 07. November 2006 - 14:59

Bib sagte:

Also wenn ich das so mit der if-Abfrage mache, dann kommt auf dem Bildschirm die Fehlermeldung "Fehler!" oder wie? Das wäre ja spitze, dann könnte ich bei jedem Feld eine eigene Fehlermeldung ausgeben lassen, je nachdem, was gerade passend ist.

Ja, es kommt "Fehler!", aber das Skript beendet sich. Wenn du mehrere Daten nacheinander prüfst wirst du nicht mehrere Fehlermeldungen sehen, sondern nur jeweils die erste. Du könntest aber zunächst die Meldungen ausgeben (mit echo() statt exit()) und abschließend das Skript tatsächlich beenden, wenn es einen Fehler gab, z.B. mit

$plz = $_POST["Plz"];
$email = $_POST["Email"];

$result_plz = preg_match("^\d{5}$", $plz);
$result_email = preg_match("^[a-zA-Z]([.]?([[:alnum:]_-]+)*)?@([[:alnum:]\-_]+\.)+[a-zA-Z]{2,4}$", $email);

if(!$result_plz) {

  exit("Fehler, falsche PLZ!");

}

if(!$result_email) {

  exit("Fehler, falsche E-Mail-Adresse");

}

if(!$result_plz||!$result_email) {

  exit("Skript beendet, fehlerhafte Eingaben!");

}


Geht auch eleganter, tut aber seinen Zweck.

Bib sagte:

Die Prüfung soll erst nach Betätigung des "senden"-Knopfes erfolgen, daran wird der Fehler wohl liegen.

Deswegen gehört der Teil auch in den oberen Teil des Codes. Zudem würde ich den gesamten oberen Teil des Skripts in eine if-Funktion mit der Bedingung isset($_POST["abgeschickt"]) schreiben, damit das Skript wirklich nur abläuft, wenn abgeschickt wurde.

Weiters kannst du die ganzen "id"-Teile (ganz oben und beim action-Tag des Formulars) AFAICS löschen, die brauchst du eigentlich nicht wirklich.
"If you make something idiot proof, someone will invent a better idiot." - Marvin

For Emails always use OpenPGP. My KeyID: 0xA1E011A4
0

Anzeige



#17 Mitglied ist offline   Bib 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.074
  • Beigetreten: 06. Mai 04
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Bayern

geschrieben 07. November 2006 - 15:18

Ich kapiers nich... ;D

Jetzt kommt bei jeder Eingabe "Fehler Falsche PLZ" (egal ob 5-Stellig oder nicht)

<?php
$id=$_GET['id']; //liest die id aus der url



/* und jetzt alle Variablen aus dem $_POST auslesen */
$Anrede=$_POST['Anrede'];
$Firma=$_POST['Firma'];
$Vorname=$_POST['Vorname'];
$Nachname=$_POST['Nachname'];
$Strasse=$_POST['Strasse'];
$PLZ=$_POST['PLZ'];


$Ort=$_POST['Ort'];
$Land=$_POST['Land'];
$text=$_POST['text'];
$emailadresse=$_POST['absender'];
$Betreff=$_POST['betreff'];
$Antwort=$_POST['Antwort-ueber'];



if(isset($_POST["abgeschickt"])) {

$result_plz = preg_match("^\d{5}$",$PLZ);
$result_email = preg_match("^[a-zA-Z]([.]?([[:alnum:]_-]+)*)?@([[:alnum:]\-_]+\.)+[a-zA-Z]{2,4}$",$emailadresse);

if(!$result_plz) {

  exit("Fehler, falsche PLZ!");

}

if(!$result_email) {

  exit("Fehler, falsche E-Mail-Adresse");

}

if(!$result_plz||!$result_email) {

  exit("Skript beendet, fehlerhafte Eingaben!");

}
}


$mail_subject="Infoanforderung Homepage über ";
$mail_txt="Infoanforderung von
Firma: $Firma
Anrede: $Anrede
Vorname, Nachname: $Vorname $Nachname
Anschrift: $Strasse
PLZ, Ort: $PLZ $Ort
e-mail: $emailadresse
Betreff: $betreff
Sonstige Mitteilungen: $text

Kontaktaufnahme soll erfolgen über: $Antwort

";
$mail_to="[email protected]";
if ($_POST['abgeschickt']=='gesendet'){
if (mail($mail_to,$mail_subject,$mail_txt, "From: ".$emailadresse)){
   echo "<h2>Ihre Nachricht wurde erfolgreich versendet</h2>";
   }
else echo "<h2>Ihre Nachricht wurde NICHT versendet</h2>";

}


?>

Dieser Beitrag wurde von Bib bearbeitet: 07. November 2006 - 15:23

0

#18 Mitglied ist offline   Daniel Voigt 

  • Gruppe: Mitglieder
  • Beiträge: 19
  • Beigetreten: 17. Juli 04
  • Reputation: 0

geschrieben 07. November 2006 - 15:22

Zitat

Weiters kannst du die ganzen "id"-Teile (ganz oben und beim action-Tag des Formulars) AFAICS löschen, die brauchst du eigentlich nicht wirklich.

Doch die brauch er! Das Formular darf nicht sich selbst laden, sondern muss wieder über die index.php geladen werden, da er die Seite mit Menü wieder geladen haben möchte.
Und darum muss er sich die "Seiten" id wieder aus der url holen, sonst ist das Menü weg bzw. ist es dann nicht gewährleistet, dass nach einem abschicken des Formulars und vorhandenem Fehler die schon eigegebenen Werte noch vorhanden sind.

Bei erkennen des Fehlers kannst du dann über dem Formular (oder auch neben jedem Eingabefeld) den Fehler anzeigen lassen und die schon gesendeten (richtigen) Werte in die Eingabefelder eintragen lassen.

<td align=right>Ihre Strasse:</td>
<td><input name=Strasse value="<?php echo $_POST['Strasse'];?>" size=20></td>

0

#19 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.701
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 07. November 2006 - 15:29

Was sein könnte, dass PHP mit dem \d Regex nicht klar kommt.

Versuch mal den hier: [0-9]{5} für PLZ.
0

#20 Mitglied ist offline   Bib 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.074
  • Beigetreten: 06. Mai 04
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Bayern

geschrieben 07. November 2006 - 15:31

Glaub nicht, daß es daran liegt. Ich hab jetzt mal echo statt exit gemacht und jetzt kommen alle 3 Fehlermeldungen, egal ob ich in die Felder was eingebe oder nicht.
0

#21 Mitglied ist offline   Graumagier 

  • Gruppe: aktive Mitglieder
  • Beiträge: 8.747
  • Beigetreten: 01. März 04
  • Reputation: 1
  • Geschlecht:Männlich
  • Wohnort:Graz, Österreich

geschrieben 07. November 2006 - 15:43

Daniel Voight sagte:

Doch die brauch er! Das Formular darf nicht sich selbst laden, sondern muss wieder über die index.php geladen werden, da er die Seite mit Menü wieder geladen haben möchte.
Und darum muss er sich die "Seiten" id wieder aus der url holen, sonst ist das Menü weg bzw. ist es dann nicht gewährleistet, dass nach einem abschicken des Formulars und vorhandenem Fehler die schon eigegebenen Werte noch vorhanden sind.

Hast Recht, mein Fehler.
"If you make something idiot proof, someone will invent a better idiot." - Marvin

For Emails always use OpenPGP. My KeyID: 0xA1E011A4
0

Thema verteilen:


  • 2 Seiten +
  • 1
  • 2

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0