php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 15-08-2009, 09:18
marielou
 Registrierter Benutzer
Links : Onlinestatus : marielou ist offline
Registriert seit: Aug 2009
Beiträge: 10
marielou befindet sich auf einem aufstrebenden Ast
Standard Formmailer mit Pflichtfelder

Hi, ich habe auf unserer Homepage einen Formmailer eingebaut. Nun möchte ich zusätzlich noch festlegen, welche Felder zwingend ausgefüllt werden sollen.
Momentan könnte z. B. jeder Besucher das Formular ausfüllen und absenden, ohne seinen Namen dabei anzugeben.
Hier sollte aber dann eine Meldung "Bitte e-Mail eingeben" erscheinen.

Hier der Formmailer:


PHP-Code:
<?php
### Konfiguration ###

# Bitte passen Sie die folgenden Werte an, bevor Sie das Script benutzen!

# An welche Adresse sollen die Mails gesendet werden?
$strEmpfaenger 'test@tester.de';

# Welchen Betreff sollen die Mails erhalten?
$strSubject    'eMail von www.homepage.de';

# Zu welcher Seite soll als "Danke-Seite" weitergeleitet werden?
# Wichtig: Sie muessen hier eine gueltige HTTP-Adresse angeben!
$strReturnhtml 'http://www.homepage.de/danke-email.php';

# Welche(s) Zeichen soll(en) zwischen dem Feldnamen und dem angegebenen Wert stehen?
$strDelimiter  ":\t";

### Ende Konfiguration ###

if($_POST)
{
  
$strFrom       $_POST["email"];

 while(list(
$strName,$value) = each($_POST))
 {
  if(
is_array($value))
  {
   foreach(
$value as $value_array)
   {
    
$strMailtext .= $strName.$strDelimiter.$value_array."\n";
   }
  }
  else
  {
   
$strMailtext .= $strName.$strDelimiter.$value."\n";
  }
 }

 if(
get_magic_quotes_gpc())
 {
  
$strMailtext stripslashes($strMailtext);
 }

  
// filter
  
$email trim($_POST["email"]);
  
$betreff trim($_POST["betreff"]);
  
// validate
  
$errors = array();
  if (empty(
$email)) {
    
$errors[] = "Bitte E-Mail eingeben.";
  }
  if (empty(
$betreff)) {
    
$errors[] = "Bitte Betreff eingeben.";
  }
  
$hasErrors = !empty($errors);
  if (!
$hasErrors) {
   
mail($strEmpfaenger$strSubject$strMailtext"From: ".$strFrom)
  or die(
"Die Mail konnte nicht versendet werden.");
 
header("Location: $strReturnhtml");
 exit;
  }
if (
$formSent && $hasErrors) {
  echo 
"Fehler beim Versenden des Formulars:<ul><li>"implode("</li><li>"$errors), "</li></ul>";
}
}

?>


HTML-Code:
<html>
<head>


<form action="<?php print $_SERVER['PHP_SELF']; ?>" method="post">

    <p>Dein Name:<br>
    <input type="text" name="name" size="35" maxlength="100" style="background-color: #FBFCFD; border-left: 1px dashed #84c225; border-right: 1px dashed #84c225; border-top: 1px dashed #84c225; border-bottom: 1px dashed #84c225;"></p>

    <p>Deine eMail-Adresse:<br>
    <input type="text" name="email" size="35" style="background-color: #FBFCFD; border-left: 1px dashed #84c225; border-right: 1px dashed #84c225; border-top: 1px dashed #84c225; border-bottom: 1px dashed #84c225;"></p>

    <p>Betreff:<br>
    <input type="text" name="betreff" size="35" style="background-color: #FBFCFD; border-left: 1px dashed #84c225; border-right: 1px dashed #84c225; border-top: 1px dashed #84c225; border-bottom: 1px dashed #84c225;"></p></p>

    <p>Deine Nachricht:<br>
    <textarea name="nachricht" cols="38" rows="8" style="background-color: #FBFCFD; border-left: 1px dashed #84c225; border-right: 1px dashed #84c225; border-top: 1px dashed #84c225; border-bottom: 1px dashed #84c225;"></textarea></p>


    <p>

    <input type="submit" value="absenden"> <input type="reset" value="tipp ex">

    <br><br>


    </form>


</body>
</html>


...aber das Formular bringt keine Fehlermeldung!

Muß ich vielleicht vom oberen Code noch was entfernen? Paßt irgendwas nicht zusammen?

Vielen Dank im voraus für Hilfe
Grüße, Marie
Mit Zitat antworten
  #2 (permalink)  
Alt 15-08-2009, 13:09
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Hallo Marie,

wo wird denn deine Variable $formSent initialisiert? Ich vermute nie und dadurch ist
PHP-Code:
if ($formSent && $hasErrors) { 
immer falsch.

Gruß,

Anja
Mit Zitat antworten
  #3 (permalink)  
Alt 15-08-2009, 13:21
marielou
 Registrierter Benutzer
Links : Onlinestatus : marielou ist offline
Registriert seit: Aug 2009
Beiträge: 10
marielou befindet sich auf einem aufstrebenden Ast
Standard

hm, sorry dass ich mich bisschen blöd anstelle, versteh aber nicht was du meinst! kannst du das umschreiben?
was meinst du mit initialisiert? an welcher stelle fehlt was oder muß ich was ändern?

mille grazie!!
Mit Zitat antworten
  #4 (permalink)  
Alt 15-08-2009, 13:24
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Ich kann die Stelle nicht finden, wo
PHP-Code:
$formSent irgendwas
steht. Dadurch gibt es diese Variable nicht und sie führt dazu, dass die Bedingung nie wahr wird.
Mit Zitat antworten
  #5 (permalink)  
Alt 15-08-2009, 13:38
marielou
 Registrierter Benutzer
Links : Onlinestatus : marielou ist offline
Registriert seit: Aug 2009
Beiträge: 10
marielou befindet sich auf einem aufstrebenden Ast
Standard

versteh schon, was ihr meint. aber ich hab doch oben stehen

PHP-Code:
if (empty($email)) {
    
$errors[] = "Bitte E-Mail eingeben.";
  }
  if (empty(
$betreff)) {
    
$errors[] = "Bitte Betreff eingeben.";
  } 
da steht (für mich als anfänger ) doch, dass wenn das feld email ist leer --> dann fehlermeldung "Bitte E-Mail eingeben"

oder?

ist da nicht irgendwas doppelt-gemobelt?

wann gibt das script denn "Fehler beim Versenden des Formulars" und wann "Bitte E-Mail eingeben" aus?
Mit Zitat antworten
  #6 (permalink)  
Alt 15-08-2009, 13:45
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von marielou Beitrag anzeigen
da steht (für mich als anfänger ) doch, dass wenn das feld email ist leer --> dann fehlermeldung "Bitte E-Mail eingeben"
Ja, dann steht in der Variable $errors vermutlich sogar irgendwas drin.

Aber ausgegeben wird sie nirgends, weil hier
PHP-Code:
if ($formSent && $hasErrors) { 
die Bedingung nicht erfüllt wird, wenn es $formSent nicht gibt.

Nimm doch $formSent da mal raus, und prüfe nur $hasErrors.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #7 (permalink)  
Alt 15-08-2009, 13:48
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Es ist schwierig, einem Anfänger Dinge zu erklären, für die Grundlagenwissen erforderlich ist. Du nimmst ein fertiges Script, änderst es ab, ohne prinzipiell zu verstehen, was du da machst und gehst dann in ein Forum, um es dort wieder reparieren zu lassen. Das funktioniert so nicht. Die Leute hier sind prinzipiell Hilfsbereit, lassen sich aber ungern unentgeltlich als Programmierer missbrauchen, wenn sie für die selbe Arbeit sonst nen Haufen Geld verdienen würden.

Du könntest dich entweder an den Ersteller des Skripts wenden oder dir ein neues suchen. Ich habe dir bereits die wahrscheinlichste Ursache des Problems genannt und beschrieben. Aus meiner Sicht ist jetzt ein bisschen Eigeninitiative deinerseits angesagt.

Gruß,

Anja
Mit Zitat antworten
  #8 (permalink)  
Alt 15-08-2009, 14:10
marielou
 Registrierter Benutzer
Links : Onlinestatus : marielou ist offline
Registriert seit: Aug 2009
Beiträge: 10
marielou befindet sich auf einem aufstrebenden Ast
Standard

ok, vielen dank! durch das rausnehmen von
PHP-Code:
$formSent && 
klappts!

möcht aber gerne noch verstehen, wozu dieser teil im script notwendig ist:

PHP-Code:
if (!$hasErrors) {
   
mail($strEmpfaenger$strSubject$strMailtext"From: ".$strFrom)
  or die(
"Die Mail konnte nicht versendet werden.");
 
header("Location: $strReturnhtml");
 exit;
  } 
Die Fehlermeldungen lauten ja immer:

Fehler beim Versenden des Formulars:
  • Bitte E-Mail eingeben.
  • Bitte Betreff eingeben.





Mit Zitat antworten
  #9 (permalink)  
Alt 15-08-2009, 14:16
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Die Meldung "Die Mail konnte nicht versendet werden." kommt nur, wenn auf dem Server was schief geht. Dass du die nie bekommst, ist das gute Anzeichen dafür, dass dein Server funktioniert.
Mit Zitat antworten
  #10 (permalink)  
Alt 15-08-2009, 14:18
marielou
 Registrierter Benutzer
Links : Onlinestatus : marielou ist offline
Registriert seit: Aug 2009
Beiträge: 10
marielou befindet sich auf einem aufstrebenden Ast
Standard

ok, verstehe! alles geklärt - vielen dank!
Mit Zitat antworten
  #11 (permalink)  
Alt 15-08-2009, 18:21
marielou
 Registrierter Benutzer
Links : Onlinestatus : marielou ist offline
Registriert seit: Aug 2009
Beiträge: 10
marielou befindet sich auf einem aufstrebenden Ast
Standard

eine frage hätt ich jetzt doch noch!

ich habe auf der homepage auch ein ziemlich langes formular, welches einige arbeit zum ausfüllen macht. wenn der benutzer jetzt ein pflichtfeld vergißt und die aufforderung (z. b. email eintragen) kommt, sind gleichzeitig auch alle anderen bereits eingetragenen daten weg.
ich denke dass dies einige verärgern könnte!

kann man das auch anders einstellen?
Mit Zitat antworten
  #12 (permalink)  
Alt 15-08-2009, 18:37
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

Ja, indem man einen value-Wert vorgibt. Einfach gesagt so:
PHP-Code:
<input type="text" name="bla" value="<?php echo $_POST['bla'];?>" />
Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #13 (permalink)  
Alt 15-08-2009, 18:42
marielou
 Registrierter Benutzer
Links : Onlinestatus : marielou ist offline
Registriert seit: Aug 2009
Beiträge: 10
marielou befindet sich auf einem aufstrebenden Ast
Standard

danke! funktioniert!
Mit Zitat antworten
  #14 (permalink)  
Alt 15-08-2009, 19:09
marielou
 Registrierter Benutzer
Links : Onlinestatus : marielou ist offline
Registriert seit: Aug 2009
Beiträge: 10
marielou befindet sich auf einem aufstrebenden Ast
Standard

noch ne frage!

so versteh ich das

HTML-Code:
<td>Körperl. Mängel:</td>
       <td><input name="KoerperlMaengel" type="text" value="<?php echo $_POST['KoerperlMaengel'];?>" style="background-color: #FBFCFD; border-left: 1px dashed #84c225; border-right: 1px dashed #84c225; border-top: 1px dashed #84c225; border-bottom: 1px dashed #84c225;"></td>
aber wie mach ich das in diesen fällen? radio?

HTML-Code:
<tr>
       <td>Sehhilfe:</td>
       <td>Ja <input name="Sehhilfe" type="radio" value="Ja"> Nein <input name="Sehhilfe" type="radio" value="Nein"></td>
</tr>
HTML-Code:
<tr>
    <td>Klasse<select name="AnmeldeKlasse">
    <option>auswählen
      <option>A
    <option>B
    <option>C
     
</select></td>
</tr>
HTML-Code:
<tr>
       <td>Anrede:*</td>
       <td colspan="3"><select name="Anrede" size="1">
       <option>Herr
       <option>Frau</select></td>
</tr>
HTML-Code:
 <p>Deine Nachricht:<br>
    <textarea name="Nachricht"  cols="38" rows="8" style="background-color: #FBFCFD; border-left: 1px dashed #84c225; border-right: 1px dashed #84c225; border-top: 1px dashed #84c225; border-bottom: 1px dashed #84c225;"></textarea></p>

Geändert von marielou (15-08-2009 um 19:22 Uhr)
Mit Zitat antworten
  #15 (permalink)  
Alt 15-08-2009, 19:21
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von marielou Beitrag anzeigen
aber wie mach ich das in diesen fällen? radio?
Zeig mal langsam bitte etwas Eigeninitiative - sowas kann man doch mal selber nachlesen gehen!

SELFHTML: HTML/XHTML / Formulare / Auswahllisten, Radio-Buttons und Checkboxen
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Anmeldung->Pflichtfelder! kindra2004 PHP Developer Forum 12 24-09-2006 00:11
prüfen auf Pflichtfelder meierhans HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS 2 15-11-2005 13:29
PHP Pflichtfelder definieren Diana K PHP Developer Forum 11 10-02-2005 14:40
Pflichtfelder definieren? cookiestar PHP Developer Forum 15 29-09-2004 12:47
pflichtfelder formular pr0stAta PHP Developer Forum 4 24-08-2004 15:32

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:53 Uhr.