Problem ze skryptem php - totalny żółtodziub

0

Witam - Zwracam się z problemem - zupełnie się na tym nie znam
Mianowicie skrypt który mam na stronie nie wysyła @ ( małpy) w treści ani żadnym innym polu
Utrudnia to kontakt z osobami które piszą

<?php // Define some constants define( "RECIPIENT_NAME", "xx" ); define( "RECIPIENT_EMAIL", "xx" ); // Read the form values $success = false; $userName = isset( $_POST['username'] ) ? preg_replace( "/[^\.\-\' a-zA-Z0-9]/", "", $_POST['username'] ) : ""; $senderEmail = isset( $_POST['email'] ) ? preg_replace( "/[^\.\-\' a-zA-Z0-9]/", "", $_POST['email'] ) : ""; $senderPhone = isset( $_POST['phone'] ) ? preg_replace( "/[^\.\-\' a-zA-Z0-9]/", "", $_POST['phone'] ) : ""; $senderZip = isset( $_POST['subject'] ) ? preg_replace( "/[^\.\-\' a-zA-Z0-9]/", "", $_POST['subject'] ) : ""; $message = isset( $_POST['message'] ) ? preg_replace( "/(From:|To:|BCC:|CC:|Message:|Content-Type:)/", "", $_POST['message'] ) : ""; // If all values exist, send the email if ( $userName && $senderEmail && $senderPhone && $senderZip && $message) { $recipient = RECIPIENT_NAME . " <" . RECIPIENT_EMAIL . ">"; $headers = "From: " . $username . " <" . $senderEmail . ">"; $msgBody = " Phone: " . $senderPhone . " Zip: " . $senderZip . " Message: " . $message . ""; $success = mail( $recipient, $headers, $msgBody ); //Set Location After Successsfull Submission header('Location: index.html?message=Successfull'); } else{ //Set Location After Unsuccesssfull Submission header('Location: index.html?message=Failed'); } ?>

Wielka prośba o pomoc

2

Zasadniczo: w tym kodzie usuwane są wszystkie znaki, które nie są cyframi i literami alfabetu łacińskiego poprzez ten preg_replace.

W tym kawałku:

$senderEmail = isset( $_POST['email'] ) ? preg_replace( "/[^.-\' a-zA-Z0-9]/", "", $_POST['email'] ) : "";

oczywiście chciałbyś, aby @ też była akceptowana - podobnie jak kropka i będzie to działające (acz bardzo bardzo naiwne i prymitywne) sprawdzanie poprawności emaila.
Musisz więc zmienić "/[^.-\' a-zA-Z0-9]/". Popróbuj sobie tutaj. Mógłbym Ci dać gotowca, ale chociaż trochę pokombinuj jak to jest być programistą - mieć kod, naprawić go i poczuć tę niesamowitą satysfakcję z poprawienia wyrażenia regularnego ;) Powodzenia

Ps. Swoją drogą ten regex wygląda mi kiepsko, ale ekspertem nie jestem.

1

@Pipes: Serdecznie dziękuję - nie sądziłem że brakuje jednego znaku
Dopisałem , sprawdziłem - działa !

Spokojnej majówki

1 użytkowników online, w tym zalogowanych: 0, gości: 1