HTTP_POST_VARS fehler?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • HTTP_POST_VARS fehler?

    hallo

    ich wollte mir ein kleines nachrichten-system machen.

    das ganze sieht so aus:

    comment.php
    - Hier gibt benutzer e-mail, betreff und nachricht an.

    bei type submit auf sendmail.php

    das sollte eigentlich auch laufen, aber ich krieg immer den fehler:
    Parse error: parse error, unexpected T_VARIABLE in /[...]/sendmail.php on line 10

    hier source
    PHP-Code:
    $empfang 'meine email adresse';
    $subject $HTTP_POST_VARS["betreff"];
    $message $HTTP_POST_VARS["message"];
    $absender $HTTP_POST_VARS["absender"];

    mail($empfang$subject$message,
    'From: '$absender); 
    weiter wollte ich noch fragen wie ich prüfen kann, ob im e-mail feld eine gültige adresse angegeben wurde? und wo muss ich das testen? also schon vor dem schicken oder erst nachher?

    ich nehme an so:
    PHP-Code:
    if($betreff == "" || $message == "" || $absender="" || $absender !=[*@*.*])
    {
    mail([...]
    echo(
    "gesendet");
    }
    else
    {
    echo(
    "bitte alle felder ausfüllen");

    danke für eure hilfe
    Ich hab nicht genug geld um mir ne coole sig zu kaufen, darum hab ich mir diese gekauft...

  • #2
    Zitat aus dem Man
    Code:
    mail ( string to, string subject, string message [, string additional_headers [, string additional_parameters]] )
    Also 'From: ' und $absender wird ned funzen. Der Absender muss in die Additional Header rein. Schau mal die Userbeispiele bei php.net zum Thema mail() an.
    also schon vor dem schicken oder erst nachher?
    Kommt drauf an was du unter schicken verstehst. Du kann die mail ja schlecht prüfen bevor der User dir seine Emailadresse durch das Form bekannt gegeben hat --> nachher
    Wenn du aber nach dem Schicken der email meinst dann --> vorher
    Das geht ziemlich gut mit RegExp:
    PHP-Code:
    if(!preg_match("/^[a-zA-Z0-9_.-]{2,}@[a-z0-9-]{3,}.[a-z]{2,4}|museum$/"$email$array)){
        die(
    'Die Email Adresse scheint falsch zu sein');

    Dieser RegExp prüft aber nur ob die Adresse formal korrekt ist und ist keine Garantie, dass die Adresse auf dem Server wirklich existiert.
    Wenn du auch das noch prüfen willst dann setzt dich mit
    fsockopen()
    fgets()
    fputs()
    auseinander.
    Du musst aus der Useremail den Server ermitteln und mittels fsockopen() eine Verbindung auf Port 25 (SMTP) herstellen.
    Dann versuchst du eine Email für die Adresse zuzustellen und wertest du Serverantwort aus.
    Habe den relevanten Teil (Zustellungsversuch) mal hier:
    PHP-Code:
    ...
    fputs($fp"HELO my_domain.tld\r\n" );
    fgets($fp512);
    fputs($fp"MAIL FROM: <webmaster@my_domain.tld>\r\n" );
    fgets($fp512);
    fputs($fp"RCPT TO: <$email>\r\n");
    fgets($fp512);
    $out fgets($fp512);
    if(
    ereg("^250"$out)){
        
    $ret = array(true,$out,);
    }else
    {
        die(
    'Email Adresse scheint nicht korrekt zu sein');
    }
    fputs ($fp"QUIT\r\n");
    fclose($fp);
    ... 
    $fp ist die Rückgabe der Fkt fsockopen().
    Also viel Spass beim zusammenschustern und bei konkreten Fragen immer gerne


    Gruss

    tobi
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar

    Lädt...
    X