php.de

Zurück   php.de > Lösungen durch Skripte > Scriptbörse

Scriptbörse PHP Lösungen für nen schmalen Taler

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 23.04.2010, 23:19  
Nabonid
Gast
 
Beiträge: n/a
Standard Kontaktformular für eigene Bedürfnisse umändern

Hallo,

Es geht um dieses Tutorial WebDesign - Tips und Tricks: universeller Formmailer
bzw. das Script was dort zur Verfügung gestellt wird das sieht so aus:

PHP-Code:
<?php
define 
('MAILTO'"mail@example.org"); // Empfänger hier eintragen
define ('MAILFROM'"Kontaktformular"); // ggfls. Absender hier eintragen
define ('CHARSET'"ISO-8859-15"); // Zeichenkodierung ggfls. anpassen
$Pflichtfelder = array('Nachricht'); // ggfls. weitere Pflichtfelder angeben


$AddHeader 'Content-Type: text/plain; charset='.CHARSET;
if(
MAILFROM$AddHeader .= chr(13).chr(10).'From: '.MAILFROM;

if(
$Formular_abgeschickt = !empty($_POST)) {
  
$Formular_leer trueset_magic_quotes_runtime(0);
  
$_POST array_map('Formular_Daten'$_POST);
}
function 
Formular_Daten($val) {
  global 
$Formular_leer;
  if(
is_array($val)) return array_map('Formular_Daten'$val);
  if(
get_magic_quotes_gpc()) $val stripslashes($val);
  if(
$val trim($val)) $Formular_leer false;
  return 
$val;
}

function 
Formular_Pflichtfelder() {
  global 
$Pflichtfelder;
  
$Fehler '';
  foreach (
$Pflichtfelder as $Feld) {
    
$key str_replace(' ','_',$Feld);
    if(!(isset(
$_POST[$key]) && trim($_POST[$key]))) {
      if(
$Fehler$Fehler .= '<br />';
      
$Fehler .= 'Pflichtfeld "' $Feld '" nicht ausgefüllt.';
    }
  }
  return 
$Fehler;
}

function 
Formular_neu($log='.htPOSTdata.txt') {
  if(
file_exists($log) && is_readable($log)
   && 
file_get_contents($log) == print_r($_POST,true))
  return 
false;
  if(
$handle=@fopen($log'w')) {
    
fwrite($handleprint_r($_POST,true)); fclose($handle);
  }
  return 
true;
}

function 
Formular_Check() {
  global 
$Formular_leer;
  if(
$Formular_leer$Fehler 'Keine Daten eingetragen.';
  elseif(!
$Fehler Formular_Pflichtfelder()) {
    if(!
Formular_neu()) $Fehler 'Nachricht war bereits verschickt.';
  }
  return 
$Fehler;
}

function 
Formular_Eingabe($Feldname$def='') {
  if(!empty(
$_POST[$Feldname])) echo htmlspecialchars($_POST[$Feldname]);
  else echo 
$def;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
  <title>Kontaktformular</title>
  <meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET?>" />
</head>
<body>
<h1>Kontakt</h1>

<?php
if($Formular_abgeschickt) {
  if(
$Formular_Fehler Formular_Check())
    echo 
'<p class="Meldung" id="Fehler">',$Formular_Fehler,'</p>';
  elseif(@
mail(MAILTO"Nachricht"print_r($_POST,true), $AddHeader))
    echo 
'<p class="Meldung" id="OK">Nachricht verschickt.</p>';
  else echo 
'<p class="Meldung" id="Fehler">Server-Fehler !</p>';
}
?>

<form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="post"
 enctype="multipart/form-data" accept-charset="<?php echo CHARSET?>">
  <fieldset><legend>Kontaktformular</legend>
    <p>
      <label for="Name">Ihr Name:</label>
      <input name="Name" id="Name" size="66"
       value="<?php Formular_Eingabe('Name'); ?>" />
    </p>
    <p>
      <label for="Nachricht">Nachricht:</label>
      <textarea name="Nachricht" id="Nachricht" rows="5" cols="50"><?php
       Formular_Eingabe
('Nachricht'); ?></textarea>
    </p>
    <p><input type="submit" value="abschicken" /></p>
  </fieldset>
</form>

</body>
</html>

Wie gesagt bin ich Laie, deswegen bin ich hier und habe dazu paar Fragen:
1. Woher soll den bitte der Empfänger wissen von wem es abgeschickt wurde - es ist nirgends ein Feld wo der Absender seine Mail einzutragen hat.

2. Würde ich gerne das Script um wie bereits geschrieben das Feld "e-mail" und noch das feld "betreff" erweitern - wie müsste ich das machen, kann mir jemand den veränderten Code bitte posten.

ich gehe davon aus dass ich vorher im html teil einfach zwei felder ergänzen müsste z.B so:

Code:
    <p>
      <label for="Name">E-mail</label>
      <input name="email" id="email" size="66"
       value="<?php Formular_Eingabe('email'); ?>" />
    </p>

    <p>
      <label for="betreff">Betreff</label>
      <input name="Betreff" id="Betreff" size="66"
       value="<?php Formular_Eingabe('betreff'); ?>" />
    </p>
Soweit richtig?

Und nun hab ich aber kein Plan wie ich das in dem php Teil machen müsste. kann mir bitte jemand helfen?

Wie würde das fertige ergänzende Script aussehen ?

Und dann würde ich gerne wissen ob das Kontaktformular ein Injection Schutz hat?

thx für hilfe.
mfg
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 23.04.2010, 23:37  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.994
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
kann mir jemand den veränderten Code bitte posten.
Bitte beachten: Forenrichtlinien
Zitat:
Sei sozial
Wir haben kein Interesse daran, Deine Skripte zu reparieren, da das sehr viel Zeit und Mühe kosten kann. Akzeptiere also, dass sich unsere Motivation eventuell von Deiner unterscheidet und wir daher nur Hilfe zur Selbsthilfe geben. Stell Deine Frage bitte auch nur in einem Forum, Du stößt uns (und sicherlich auch der anderen Community) sonst vor den Kopf. Wir investieren ungern Zeit in die Lösung Deines Problems, während es vielleicht längst an anderer Stelle gelöst wurde.

[MOD: verschoben]
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online   Mit Zitat antworten
Alt 24.04.2010, 00:37  
Nabonid
Gast
 
Beiträge: n/a
Standard

hmm okay und mit was für einer antwort dürfte ich sonst rechnen?
  Mit Zitat antworten
Alt 24.04.2010, 01:42  
Erfahrener Benutzer
 
Registriert seit: 20.01.2010
Beiträge: 108
PHP-Kenntnisse:
Fortgeschritten
feeela befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Nabonid Beitrag anzeigen
hmm okay und mit was für einer antwort dürfte ich sonst rechnen?
Lerne Grundlagen.

ODER

Überweise [SUMME_IN_EURO] auf Konto [XXX] und du hast den Kram in 1h durch jemanden erledigt, der sich damit auskennt. Bitte stelle hier bei Bedarf eine entsprechende Anfrage.

Zu:
Zitat:
Zitat von Nabonid Beitrag anzeigen
Code:
    <p>
      <label for="Name">E-mail</label>
      <input name="email" id="email" size="66"
       value="<?php Formular_Eingabe('email'); ?>" />
    </p>

    <p>
      <label for="betreff">Betreff</label>
      <input name="Betreff" id="Betreff" size="66"
       value="<?php Formular_Eingabe('betreff'); ?>" />
    </p>
Soweit richtig?
Ja. Das ist schon ein guter Anfang. Die for-Attribute der Label sollten allerdings den IDs der zugehörigen Input-Elemente entsprechen. Wenn du dir den von dir verlinkten Artikel noch mal durchliest und das Skript studierst, hast du die Antwort wahrscheinlich selbst ganz schnell gefunden.
__________________
Je grösser der Dachschaden, desto schöner der Ausblick zum Himmel. - Karlheinz Deschner

Geändert von feeela (24.04.2010 um 01:47 Uhr).
feeela ist offline   Mit Zitat antworten
Alt 24.04.2010, 07:30  
Nabonid
Gast
 
Beiträge: n/a
Standard

wenigstens die fragen kann man ja beantworten, ist ja ein anfängerforum.

mfg
  Mit Zitat antworten
Alt 24.04.2010, 08:46  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.994
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
ist ja ein anfängerforum
Nein, ist es nicht. Wir sind ein Entwicklerforum, mit einem Bereich für Einsteiger und Foren für fortgeschrittene Nutzer sowie einige sprachspezifische Subforen.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online   Mit Zitat antworten
Alt 24.04.2010, 12:34  
Nabonid
Gast
 
Beiträge: n/a
Standard

und jetzt erklär du mir mal was der unterschied zwischen einem anfänger und einsteiger ist? ich glaub den unterschied kennst du nicht.
  Mit Zitat antworten
Alt 25.04.2010, 00:05  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.994
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
Wir sind ein Entwicklerforum
Da liegt die Betonung.

"ist ja ein anfängerforum" wird immer als Synonym für "der Kunde ist König" und "der Anfänger hat den Idiotenbonus" verwendet. Nö. Wir wollen die Programmierung in der Sprache PHP fördern, nicht die Verbreitung von PHP-Produkten. Wenn DU etwas willst, musst Du etwas investieren, ob das nun Geld, eigene Zeit, Motivation oder wenigstens Interesse ist. Ich sehe nichts davon in Deinen Beiträgen.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--

Geändert von nikosch (25.04.2010 um 00:11 Uhr).
nikosch ist gerade online   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Gutes Tutorial für spartanisches Kontaktformular Nabonid PHP Tipps 2010 4 03.04.2010 23:20
Brauche Hilfe bei meinem Kontaktformular! akcsyndrom PHP Tipps 2009 36 12.01.2010 11:39
Kontaktformular mit captcha fehler talkuvit Scriptbörse 7 07.12.2009 23:07
Kontaktformular ä ö ü funktioniert nicht simonspring PHP Tipps 2009 6 05.09.2009 17:07
Kontaktformular über SMTP? flashman3 PHP Tipps 2009 3 12.02.2009 18:38
Kontaktformular mit PHP kim160266 PHP Tipps 2009 2 08.01.2009 10:13
Kontaktformular mit Spamschutz und include Navigation? chicco4u PHP Tipps 2008 1 11.08.2008 09:52
IE6 Kontaktformular, Probleme mit Variablen Meijestic PHP Tipps 2008 3 07.07.2008 19:29
Kontaktformular plus 3 Attachments funzt net catmoon PHP Tipps 2008 2 25.06.2008 10:15
[Erledigt] Kontaktformular - bitte helft mir celine70 PHP Tipps 2008 3 19.05.2008 11:28
Kontaktformular umändern / modifizieren PHP Tipps 2006 5 16.02.2006 14:03
Sehr simples Kontaktformular - Prinzip imported_Ben Beitragsarchiv 2 02.08.2005 22:41
Problem mit Kontaktformular? PHP Tipps 2004-2 6 13.12.2004 18:48
Kontaktformular - Nachricht wurde verschickt PHP Tipps 2004 4 22.10.2004 09:18

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
synonym kontaktformular, kontaktformular synonym, kontaktformular define absender, kontaktformular eigene felder, kontaktformular eigene, kontaktformular charset php, function formular_pflichtfelder() { global $pflichtfelder; $fehler = \'\'; foreach ($pflichtfelder as $feld) { $key = str_replace(\' \',\'_\',$feld); if(!(isset($_post[$key]) && trim($_post[$key])!==\'\')) { if($fehler) $fehler .= \'<br />\'; $fehler .= \, <?php formular_eingabe(\'nachricht\'); ?>, eigene kontakformular, kontaktformular mit eigenen feld php, posten

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:04 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum