Antworten auf deine Fragen:
Neues Thema erstellen

[PhP] Kontaktformular Fehler "=each"

Poki29

Ps-ler ;-)

Hallo,

bei meinem Kontaktformular tritt folgender Fehler auf:

Code:
[B]Warning[/B]:  Variable passed to each() is not an array or object in [B]/is/htdocs/wp1190657_3JFTC7TB1B/www/kontakt.php[/B]  on line [B]69
[/B]
Ich vermute dass der Fehler mit der Php-Version oder ähnlichem zusammen hängt, da es bei einem anderen Hoster bereits lief
Mein momentaner Hoster ist : Host Europe, wo ich das WebPack M 2.0 verwende.

Hier mal ein Auszug aus dem Problemcode:

Code:
 <?php
if(isset($_POST['abschicken'])){
    while(list($feld,$wert)=each($HTTP_POST_VARS)){
        $wert=preg_replace("/(content-type:|bcc:|cc:|to:|from:)/im", "",$wert);
           $$feld=$wert;
        if($feld!="abschicken"){
            $mailnachricht.=ucfirst($feld).": $wert\n";
        }
    }
    $mailnachricht.="\nDatum/Zeit: ". date("d.m.Y H:i:s");
    empty($nachname) ? $err[] = "<p>- Es wurde kein Nachname angegeben.</p>" : false;
    empty($vorname) ? $err[] = "<p>- Es wurde kein Vorname angegeben.</p>" : false; 
    empty($email) ? $err[] = "<p>- Es wurde keine E-Mail angegeben.</p>" : false; 
    empty($text) ? $err[] = "<p>- Textfeld ist leer.</p>" : false;
    empty($spam) ? $err[] = "<p>- Spamfeld ist leer, bitte lösen Sie die Rechnung.</p>" : false; 
    if(!empty($err)) {
        echo "<p>Folgende Fehler sind aufgetreten:</p>";
        foreach($err as $fehler){
            echo $fehler;
        } ?>

Es folgt das html Formular und ein Bereich wo der text abgeschickt wird.

Über Hilfe würde ich mich seh freuen.
 

AW:
PHP:
 Kontaktformular Fehler "=each"[/b]

Laut [url=http://www.php.net/manual/de/reserved.variables.post.php]PHP.net[/url] ist $HTTP_POST_VARS veraltet. Vielleicht liegts ja daran, dass beim neuen Hoster ein Fehler angezeigt wird, der beim alten Hoster nicht angezeigt wurde..

gruß
 

lgorse

Noch nicht viel geschrieben

AW:
PHP:
 Kontaktformular Fehler "=each"[/b]

Hi,

versuch mal, die Fehler anders im Array zu speichern.

statt
[CODE]
empty($nachname) ? $err[] = "<p>- Es wurde kein Nachname angegeben.</p>" : false;
    empty($vorname) ? $err[] = "<p>- Es wurde kein Vorname angegeben.</p>" : false; 
    empty($email) ? $err[] = "<p>- Es wurde keine E-Mail angegeben.</p>" : false; 
    empty($text) ? $err[] = "<p>- Textfeld ist leer.</p>" : false;
    empty($spam) ? $err[] = "<p>- Spamfeld ist leer, bitte lösen Sie die Rechnung.</p>" : false; 
[/CODE]

schreibst du
[CODE]
$i = 0;

if(empty($nachname) {
  $err[$i] = "<p>- Es wurde kein Nachname angegeben.</p>";
  $i++
}

if(empty($vorname)) {
  $err[$i] = "<p>- Es wurde kein Vorname angegeben.</p>";
  $i++
}

if(empty($email)) {
  $err[$i] = "<p>- Es wurde keine E-Mail angegeben.</p>";
  $i++
}

if(empty($text)) {
  $err[$i] = "<p>- Textfeld ist leer.</p>";
  $i++
}

if(empty($spam)) {
  $err[$i] = "<p>- ESpamfeld ist leer, bitte lösen Sie die Rechnung.</p>";
  $i++
}
[/CODE]

vllt. gehts so.

lgorse
 

Duddle

Posting-Frequenz: 14µHz

AW:
PHP:
 Kontaktformular Fehler "=each"[/b]

Ersetz "$HTTP_POST_VARS" durch "$_POST" und es sollte wieder funktionieren. Im Rest des Scripts sehe ich keinen Fehler.


Duddle
 

Poki29

Ps-ler ;-)

AW:
PHP:
 Kontaktformular Fehler "=each"[/b]

[code]  $mailbetreff="Kontaktformular ".$_SERVER['HTTP_HOST'];     
        if(mail("test@gmx.de", $mailbetreff, $mailnachricht, "From: $email")){
            echo "<p>Ihre Nachhricht wurde übermittelt!</p>";
        } else {
            echo "<p>Fehler!</p>";
        }[/code]

Hier müsste auch noch ein Fehler sein, denn er kommt immer in den Fehlerzweig.
 

Duddle

Posting-Frequenz: 14µHz

AW:
PHP:
 Kontaktformular Fehler "=each"[/b]

Dann lass dir die [URL="http://de.php.net/manual/en/function.error-reporting.php"]Fehler anzeigen[/URL] und google entsprechende Meldungen. Im Quelltext ist nichts verdächtig.


Duddle
 

Duddle

Posting-Frequenz: 14µHz

AW:
PHP:
 Kontaktformular Fehler "=each"[/b]

Die Funktion mail() gibt FALSE zurück, falls es einen Fehler beim Versenden gab. 
Da du immer im else-Zweig landest, muss es also einen Fehler beim Versenden gegeben haben. 
Da es einen Fehler beim Versenden gegeben hat, solltest du dir die erkannten Fehler anzeigen lassen. 
Um die erkannten Fehler anzeigen zu lassen, musst du PHP sagen, dass es die erkannten Fehler anzeigen soll. 
Um PHP zu sagen, dass er die erkannten Fehler anzeigen soll, musst du entweder eine Konfigurationsdatei ändern, oder die oben genannte Funktion benutzen.


Duddle
 

Spin_1987

~~Student|spin_yyeah~~

AW:
PHP:
 Kontaktformular Fehler "=each"[/b]

Moin er geht immer in de Fehler zweig, solange du dein Code nicht auf einem Server ausprobierst.

Ich hoffe du machst es nicht local , denn du kannst dir über php nicht selbst eine Mail schicken, außer mit diversen Frameworks oder auch phpmailer.

Dann musst du in der .ini von apache rumspielen, nen Port ändern und irgendwann kannst du dir lokal was zu senden.

Doch wenn du Webspace hast und dann dein Code mal laufen lässt , bekommst du auch header und params.

Sonst geht er immer in else.

Hoffe dass du daran schon vorher gedacht hast, sonst ignorier meine antort :P
 

saila

Moderatorle

AW:
PHP:
 Kontaktformular Fehler "=each"[/b]

@Spin_1987

man kann local eine Mail senden. Auf Windows als auch oder insbesondere auf linux-Systemen. 

Ich gebe dir allerdings insofern recht, das ich es ebenfalls bezweifle, das der Fragesteller dies eingerichtet hat.
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.616
Beiträge
1.538.358
Mitglieder
67.536
Neuestes Mitglied
QuestionMark
Oben