php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 25.03.2009, 11:15  
Neuer Benutzer
 
Registriert seit: 25.03.2009
Beiträge: 5
simon1101 befindet sich auf einem aufstrebenden Ast
Standard Formular läuft lokal, online nicht

Hallo,

ich habe ein Problem mit einem Formular, wenn ich es mit meinem lokalen Server teste, funktioniert es einwandfrei, stelle ich es online, wird es nicht ausgeführt???

Ich poste hier mal den Code, bin auch nach langem Suchen keinen Schritt weiter. Vielleicht sehe ich vor lauter Bäumen den Fehler mal wieder nicht

Zitat:
<?php


// E-Mail Adresse des Empfängers (Im Normalfall Ihre eigene) einfach zwischen den beiden "" einfügen.
$adresse = "hallo@simonwebdesign.de";

// Soll als Absenderadresse Ihre eigene oder die des Kontaktaufnehmenden benutzt werden?
// Bei manchen Providern ist es zwingend notwendig, dass die eigene benutzt wird
// 0 = eigene 1 = Besucher
$absender = "1";

// Hier kann definiert werden, nach wievielen Zeichen ein automatischer Zeilenumbruch eingefügt werden soll,
// wenn sie $umbruch = "no" eingeben, wird kein automatischer Zeilenumbruch eingefügt.
$umbruch = "70";

// Bei manchen Webhoster ist es notwendig, dass noch ein zusätzlicher Parameter übergeben wird, der Ihre E-Mail-Adresse
// enthält.
// Bei den meisten Hostern ist dies nicht notwendig, dann müssen Sie zwischen die beiden "" nichts einfügen
// aber z.B. bei Hosteurope ist die Angabe zwingend und dann müssen sie hier eine Ihrem Webpack zugehörige und
// eingerichtete E-Mail-Adresse eintragen, z.B. in dieser Form: $add = "info@ihre_webpack_domain.tld"

// NOCHMAL: Setzen Sie hier nur was ein, wenn Sie wissen das es notwendig ist!!!

$add = "";

// Ab hier sollten Sie nur noch etwas ändern, wenn sie wissen was sie tun,
// bzw. wenn sie noch mehr am Design ändern wollen.

//hier wird die Länge der verschiedenen Eingaben ermittelt
$lengthm = strlen($_POST["send"]["mail"]);
$lengtha = strlen($_POST["send"]["autor"]);
$lengthb = strlen($_POST["send"]["betreff"]);
$lengthn = strlen($_POST["send"]["nachricht"]);

// der Zähler wird auf null gesetzt
$i = "0";

// Je nachdem welche Adresse als Absender benutzt werden soll, wird die Variable beschrieben:
if ($absender == "0") {
$from = $adresse ; }
else { $from = $_POST["send"]["mail"] ; }

//Nun überprüfen wir die Eingaben auf alle möglichen Fehler (Es muss überall was eingegeben werden,
// die Einträge dürfen eine bestimmte Länge nicht überschreiten und die E-Mail-Adresse muss ein @ enthalten)
// Ausserdem darf im Namensfeld kein @ Zeichen enthalten sein und in der Adresse nicht mehr als eins.
// Das ist notwendig, damit im vierten Parameter keine CC oder BCC Adressen übergeben werden können
// Und zu guter Letzt werden die Sonderzeichen für die HTML-Ausgabe codiert und die Backslashes aus der Mail entfernt
if(isset($_POST["send"]) && is_array($_POST["send"])) {
if(empty($_POST["send"]["autor"])) {
$fautor = "Bitte geben Sie Ihren Namen ein!<br>";
} else { $fautor = "Name ok!<br>"; $i++; }
if(empty($_POST["send"]["betreff"])) {
$fbetreff = "Bitte geben Sie einen Betreff ein!<br>";
} else { $fbetreff = "Betreff ok!<br>"; $i++; }
if(empty($_POST["send"]["mail"])) {
$fmail = "Bitte geben Sie Ihre Email-Adresse ein!<br>";
} else { $fmail = "Adresse ok!<br>"; $i++; }
if(empty($_POST["send"]["nachricht"])) {
$fnachricht = "Bitte geben Sie eine Nachricht ein!<br>";
} else { $fnachricht = "Nachricht ok!<br>"; $i++; }
if ($lengthm > "70") {
$flmail = "Ihre eingegebene Email-Adresse ist zu lang!<br>"; $fmail = ""; }
else { $i++; }
if ($lengtha > "30") {
$flautor = "Ihr eingegebener Name ist zu lang!<br>"; $fautor = ""; }
else { $i++; }
if ($lengthb > "150") {
$flbetreff = "Ihr eingegebener Betreff ist zu lang!<br>"; $fbetreff = ""; }
else { $i++; }
if ($lengthn > "60000") {
$flnachricht = "Ihre eingegebene Nachricht darf nicht mehr<br> als 60000 Zeichen haben! Sie hat: ".$lengthn."<br>"; $fnachricht = ""; }
else { $i++; }
if (!strpos($_POST["send"]["mail"], "@") == "false" or substr_count($_POST["send"]["mail"], "@") > 1) {
$fgmail = "Ihre angegebene Email Adresse ist nicht g&uuml;ltig!<br>"; $fmail = ""; }
else { $i++; }
if (substr_count($_POST["send"]["autor"], "@") >= 1) {
$fgautor = "Aus Sicherheitsgr&uuml;nden darf das Namensfeld kein @ Zeichen enthalten!<br>"; $fautor = "";
} else { $i++; }
$str = ":\/,\"";
if (strcspn($_POST["send"]["mail"], $str) < $lengthm) {
$fgmail = "Ihre angegebene Email Adresse ist nicht g&uuml;ltig!<br>"; $fmail = "" ;
} else { $i++ ; }
if (get_magic_quotes_gpc() == "1") {
$_POST["send"]["autor"] = stripslashes($_POST["send"]["autor"]);
$_POST["send"]["betreff"] = stripslashes($_POST["send"]["betreff"]);
$_POST["send"]["phone"] = stripslashes($_POST["send"]["phone"]);
$_POST["send"]["mail"] = stripslashes($_POST["send"]["mail"]);
$_POST["send"]["nachricht"] = stripslashes($_POST["send"]["nachricht"]);
}
$sautor = htmlspecialchars($_POST["send"]["autor"]);
$sbetreff = htmlspecialchars($_POST["send"]["betreff"]);
$sphone = htmlspecialchars($_POST["send"]["phone"]);
$smail = htmlspecialchars($_POST["send"]["mail"]);
$snachricht = htmlspecialchars($_POST["send"]["nachricht"]);
}

//Wenn alles korrekt eingegeben wurde, wird die Mail nun erst formatiert und dann verschickt
if(isset($_POST["send"]) && is_array($_POST["send"])) {
if ($i == "11") {
$autor = $_POST["send"]["autor"];
if ($umbruch == "no") {
$texto = $_POST["send"]["nachricht"] ;
}
else { $texto = wordwrap( $_POST["send"]["nachricht"], $umbruch ); }
$_POST["text"] = $_POST["send"]["autor"]." mit der Mail Adresse: ".$_POST["send"]["mail"]." und der Telefonnummer ".$_POST["send"]["phone"]." hat ihnen folgende Nachricht gesendet: \n \n $texto";
$fautor = "<h2>Ihre Mail wurde versendet!</h2>";
$fbetreff = "";
$fmail = "";
$fphone = "";
$fnachricht = "";
// Und ab dafür... je nachdem mit oder ohne additional_parameters
if(empty($add)) {
$addp = "";
if (@mail($adresse, $_POST['send']['betreff'], $_POST['text'], "From: \"$autor\" <$from>")) {
$fautor = "<h2 style='font-size:18px;'>Ihre Mail wurde versendet!</h2>";
unset($sautor);
unset($sbetreff);
unset($sphone);
unset($smail);
unset($snachricht);
} else {
$fautor = "<h2 style='font-size:18px;'>Fehler! Mail konnte nicht gesendet werden</h2>"; }
} else {
if (@mail($adresse, $_POST['send']['betreff'], $_POST['text'], "From: \"$autor\" <$from>", "-f $add")) {
$fautor = "<h2 style='font-size:18px;'>Ihre Mail wurde versendet!</h2>";
unset($sautor);
unset($sbetreff);
unset($sphone);
unset($smail);
unset($snachricht);
}
else {
$fautor = "<h2 style='font-size:18px;'>Fehler! Mail konnte nicht gesendet werden</h2>"; }
}
}
}

// Hier kommt nun das eigentliche Formular in HTML + CSS
?>
<div id="kontakt_bg">
<form style="margin:0px auto; width:475px; text-align:left;" action="<?php echo $PHP_SELF;?>" method="post" target="_self">

<div class="formular_1"><label for="autor">Ihr Name:</label></div>
<div><input name='send[autor]' type='text' size='50' value="<?php echo $sautor ; ?>"></div>

<div class="formular_1"><label for="mail">Email Adresse:</label></div>
<div><input name='send[mail]' type='text' size='50' value="<?php echo $smail ; ?>"></div>

<div class="formular_1"><label for="phone">Telefonnummer:<span class="gruen">*</span></label></div>
<div><input name='send[phone]' type='text' size='50' value="<?php echo $sphone ; ?>"></div>

<div class="formular_1"><label for="betreff">Betreff:</label></div>
<div><input name='send[betreff]' type='text' size='50' value="<?php echo $sbetreff ; ?>"></div>

<div><label for="nachricht">Ihre Nachricht:</label></div>
<div><textarea name='send[nachricht]' id="nachricht" rows='10' cols='52'><?php echo $snachricht ;?></textarea></div>
<div class="formular_1"><input type='submit' id='senden' value='absenden'></div>
<div id="star">* (optional)</div>

<div id="rueckmeldung"><?php echo $fautor ; echo $fbetreff ; echo $fmail ; echo $fnachricht ; echo $flautor ; echo $flbetreff ; echo $flnachricht ; echo $flmail ; echo $fgmail ; echo $fgautor ;?>
</div>

</form>
</div>
Ich hoffe jemand weiß was da los ist
simon1101 ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 25.03.2009, 11:31  
Erfahrener Benutzer
 
Benutzerbild von Ramona86
 
Registriert seit: 11.07.2008
Beiträge: 121
PHP-Kenntnisse:
Anfänger
Ramona86 wird schon bald berühmt werdenRamona86 wird schon bald berühmt werden
Standard

Hallo simon1101,

ersteinmal willkommen im Forum.

- läuft PHP überhaupt auf deinem Server bzw. was ist das fürn Server?
- bitte ergänze Mal am Anfang deines PHP-Skriptes
PHP-Code:
error_reporting(E_ALL); 
und sag bescheid, wenn du irgendwelche Fehler erhälst.

Gruß
Ramona
__________________
Am Ende wird alles gut!
Wenn es nicht gut ist, ist es noch nicht das Ende.
Ramona86 ist offline  
Alt 25.03.2009, 11:40  
Neuer Benutzer
 
Registriert seit: 25.03.2009
Beiträge: 5
simon1101 befindet sich auf einem aufstrebenden Ast
Standard Folgende Fehlermeldungen habe ich erhalten

Hallo, danke für die schnelle Antwort.

ich habe folgende Fehlermeldung erhalten:

Zitat:
Notice: Undefined index: send in /home/www/p1880/html/kontakt_1.inc.php on line 101

Notice: Undefined index: send in /home/www/p1880/html/kontakt_1.inc.php on line 102

Notice: Undefined index: send in /home/www/p1880/html/kontakt_1.inc.php on line 103

Notice: Undefined index: send in /home/www/p1880/html/kontakt_1.inc.php on line 104

Notice: Undefined index: send in /home/www/p1880/html/kontakt_1.inc.php on line 112
Ihr Name:
Email Adresse:
Telefonnummer:*
Betreff:
Ihre Nachricht:
<br /> <b>Notice</b>: Undefined variable: snachricht in <b>/home/www/p1880/html/kontakt_1.inc.php</b> on line <b>227</b><br />
* (optional)

Notice: Undefined variable: fautor in /home/www/p1880/html/kontakt_1.inc.php on line 231

Notice: Undefined variable: fbetreff in /home/www/p1880/html/kontakt_1.inc.php on line 231

Notice: Undefined variable: fmail in /home/www/p1880/html/kontakt_1.inc.php on line 231

Notice: Undefined variable: fnachricht in /home/www/p1880/html/kontakt_1.inc.php on line 231

Notice: Undefined variable: flautor in /home/www/p1880/html/kontakt_1.inc.php on line 231

Notice: Undefined variable: flbetreff in /home/www/p1880/html/kontakt_1.inc.php on line 231

Notice: Undefined variable: flnachricht in /home/www/p1880/html/kontakt_1.inc.php on line 231

Notice: Undefined variable: flmail in /home/www/p1880/html/kontakt_1.inc.php on line 231

Notice: Undefined variable: fgmail in /home/www/p1880/html/kontakt_1.inc.php on line 231

Notice: Undefined variable: fgautor in /home/www/p1880/html/kontakt_1.inc.php on line 231
Werde aber nicht schlau daraus???
simon1101 ist offline  
Alt 25.03.2009, 11:44  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Undefined index bedeutet, dass Du auf ein Element in einem Feld (lesend) zugreifen willst, das es nicht gibt.
PHP-Code:
$a = array('x'=>1);

echo 
$a['x']; // Das Element mit dem Index x gibt es.

echo $a['y']; // $a enthält kein Element mit dem Index y => Notice: Undefined index y 
Undefined variable bedeute, dass Du auf eine Variable (lesend) zugreifen willst, die es nicht gibt.
PHP-Code:
$x 123;

echo 
$x
echo 
$y// undefined variable y 
David ist offline  
Alt 25.03.2009, 11:49  
Neuer Benutzer
 
Registriert seit: 25.03.2009
Beiträge: 5
simon1101 befindet sich auf einem aufstrebenden Ast
Standard

Hallo,

ja, das weiß ich, aber ich habe die Variablen und Felder ja alle angelegt und lokal funktioniert das ja auch??
simon1101 ist offline  
Alt 25.03.2009, 11:54  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Zitat:
$lengthm = strlen($_POST["send"]["mail"]);
$lengtha = strlen($_POST["send"]["autor"]);
$lengthb = strlen($_POST["send"]["betreff"]);
$lengthn = strlen($_POST["send"]["nachricht"]);
Sind das zufällig die Zeilen 101 bis 104 in Deinem Skript?
David ist offline  
Alt 25.03.2009, 12:01  
Neuer Benutzer
 
Registriert seit: 25.03.2009
Beiträge: 5
simon1101 befindet sich auf einem aufstrebenden Ast
Standard

ja, dies sind die entsprechenden Zeilen.
simon1101 ist offline  
Alt 25.03.2009, 12:08  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Na dann mach doch mal testhalber
PHP-Code:
if ( !isset($_POST["send"]) ) {
  echo 
'_POST["send"] existiert nicht. ';
}
if ( !isset(
$_POST["send"]["mail"]) )  {
  echo 
'_POST["send"]["mail"] existiert nicht. ';
}
if ( !isset(
$_POST["send"]["autor"]) )  {
  echo 
'_POST["send"]["autor"] existiert nicht. ';
}
if ( !isset(
$_POST["send"]["betreff"]) )  {
  echo 
'_POST["send"]["betreff"] existiert nicht. ';
}
if ( !isset(
$_POST["send"]["nachricht"]) )  {
  echo 
'_POST["send"]["nachricht"] existiert nicht. ';
}
$lengthm strlen($_POST["send"]["mail"]);
$lengtha strlen($_POST["send"]["autor"]);
$lengthb strlen($_POST["send"]["betreff"]);
$lengthn strlen($_POST["send"]["nachricht"]); 
daraus.
David ist offline  
Alt 25.03.2009, 12:14  
Neuer Benutzer
 
Registriert seit: 25.03.2009
Beiträge: 5
simon1101 befindet sich auf einem aufstrebenden Ast
Standard

Dies ist das Ergebniss:

Zitat:
_POST["send"] existiert nicht.
_POST["send"]["mail"] existiert nicht.
_POST["send"]["autor"] existiert nicht.
_POST["send"]["betreff"] existiert nicht.
_POST["send"]["nachricht"] existiert nicht.
verstehe ich aber immer noch nicht???
simon1101 ist offline  
Alt 25.03.2009, 12:16  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Bekommst Du die Meldung, wenn Du das Skript aufrufst ohne das Formular abgeschickt zu haben? Dann gibt es diese Werte in _POST nicht, woher auch?
David ist offline  
 


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
PHP: Formular Generator Zergling-new Tutorials 16 06.07.2010 03:14
Wie würdet ihr das Formular submitten? pras Datenbanken 5 05.03.2009 21:33
Problem mit Formular, Daten an datenbank senden Aurec PHP Tipps 2008 11 20.11.2008 18:17
Wert aus Textfeld in neues Formular übernehmen (kein Submit) PsychoEagle HTML, Usability und Barrierefreiheit 9 02.01.2007 14:51
spielplanerstellung läuft nur lokal matthros PHP Tipps 2006 23 09.05.2006 18:51
Formular wird nicht verarbeitet Netdeus Server, Hosting und Workstations 4 11.04.2006 12:04
[Erledigt] Formular in Formular HTML, Usability und Barrierefreiheit 4 19.10.2005 12:18
formular online auswerten PHP Tipps 2005-2 16 29.09.2005 00:40
PHP läuft online nicht richtig! PHP-Fortgeschrittene 4 17.08.2005 01:02
[Erledigt] PHP Formular ~~wichtig~~ PHP Tipps 2005 27 29.05.2005 19:38
Datenbank wird online nicht ausgelesen PHP Tipps 2005 7 27.05.2005 13:20
Im Formular user abfragen? Datenbanken 3 06.01.2005 10:51
[Erledigt] Daten in einem Formular ausgeben und ändern PHP Tipps 2004-2 7 07.12.2004 17:22
[Erledigt] Daten in neuem Formular anzeigen PHP Tipps 2004 6 21.07.2004 10:44

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
notice: undefined index: send in, php kontaktformular lokal testen, php formular läuft lokal aber nicht auf server, php formular läuft auf hosteurope nicht, strlen($_post[\send\][\mail\]), $lengthm = strlen($_post[\send\][\mail\]);, forumlar versenden lokal geht online nicht, undefined index: sent in, php sendmail übergibt mailadresse nicht

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:31 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