Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Błąd odczytu zmiennej, walidacja 'from'
BombaPHP
post 9.12.2008, 13:48:49
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 9.12.2008

Ostrzeżenie: (0%)
-----


Witam wszystkich
Jestem początkującym zawodnikiem jeśli chodzi o PHP i zmuszony jestem poprosić o pomoc gdyż
mimo, że problem dla Was banalny to dla mnie jest trochę zagadkowy
Poniżej mój formularz i skrypt php do kontaktu mailowego

Otóż problem wygląda następująco:
1)Brak w wiadomościach odebranych treści $message Screen problemu
2)Prośba w pomocy napisaniu walidacji dla zmiennej predefiniowanej pola from $_POST["from"]; (aby mail zwrotny
zawierał odpowiednie znaki)

SKRYPT
Kod
<html>
                             <head><title>Wiadomość wysłana</title></head>
                             <body>
                             <?php
                             $from = $_POST["from"];
                             $subcject = $_POST["subject"];
                             $message = "From: ".$from."\r\n";
                             $mailsent = mail('m6jmejl@xx.xx', $subject, $message, $headers);
                             if ($mailsent) {
                             echo "gratulację wiadomość wysłana";
                             echo "<b>odbiorca</b> $to";
                             echo "<b>nadawca</b> $from";
                             echo "<b>temat</b> $subject";
                             echo "<b>tresc</b> $to";
                             echo $message;  //nie wyświetla w odbiorze maila tej zmiennej
                             }
                             else {
                             echo "wiadomość wysłana";
                             }
                             ?>
                             </body>
                             </html>


FORMULARZ
Kod
<html>
                             <head>
                             <title>Wyslij wiadomosc-test</title>
                             </head>
                             <body>
                             <form name="theform" method="post" action="wyslijpoczte.php">
                             <table>
                             <tr>
                              <td>Nadawca: </td>
                              <td><input type="text" name="from" size="50"></td>
                             </tr>
                             <tr>
                              <td>Temat: </td>
                              <td><input type="text" name="subject" size="50"></td>
                             </tr>
                             <tr>
                             <td valign="top">Wiadomość: </td>
                             <td>
                             <textarea cols="60" rows="10" name="$message">
                             Tu wpisz treść swojej wiadomości
                             </textarea>
                             <td>
                             </tr>
                             <td></td>
                             <td>
                             <input type="submit" value="Wyślij">
                             <input type="reset" value="Wyczyść">
                             </td>
                             </tr>
                             </table>
                             </form>
                             </body>
                             </html>




Pozdrawiam i mam nadzieję, że ktoś znajdzie chwilę i pomoże
Go to the top of the page
+Quote Post
em-ba
post 9.12.2008, 14:00:38
Post #2





Grupa: Zarejestrowani
Postów: 202
Pomógł: 3
Dołączył: 6.01.2008
Skąd: Mazowieckie

Ostrzeżenie: (0%)
-----


moze spróbuj dać przy wyswietlaniu zmiennej $message jakie ciapki winksmiley.jpg

cos takiego
echo "$message"
czy
echo '.$message.'
echo "'.$message.'"

pokombinuj wpierw z tym.....


a ogółem to coś Ci sie wyświetla (jakas inf., błąd) czy nic... ?

Ten post edytował em-ba 9.12.2008, 14:15:25
Go to the top of the page
+Quote Post
HellRider
post 9.12.2008, 14:17:34
Post #3





Grupa: Zarejestrowani
Postów: 57
Pomógł: 7
Dołączył: 12.09.2008
Skąd: localhost

Ostrzeżenie: (0%)
-----


Cytat
<textarea cols="60" rows="10" name="$message">


Powinno być
Cytat
<textarea cols="60" rows="10" name="message">


Do tego w PHP:

  1. <?php
  2. $message = $_POST["message"];
  3. $headers = "From: ".$from."r\n";
  4. ?>


Ten post edytował HellRider 9.12.2008, 14:17:52
Go to the top of the page
+Quote Post
Chrom
post 9.12.2008, 14:26:32
Post #4





Grupa: Zarejestrowani
Postów: 240
Pomógł: 17
Dołączył: 28.12.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


chyba raczej tak

  1. <?php
  2. $message = $_POST["message"];
  3. $message = "From: ".$message."r\n";
  4. ?>
Go to the top of the page
+Quote Post
HellRider
post 9.12.2008, 14:34:36
Post #5





Grupa: Zarejestrowani
Postów: 57
Pomógł: 7
Dołączył: 12.09.2008
Skąd: localhost

Ostrzeżenie: (0%)
-----


Napisałem dobrze, $message i $headers zawierają osobne dane dla użytej funkcji mail()

$_POST["message"] przenosi treść z FORM
"From: ".$message."\r\n" jest typową składnią Mail Headers

Ten post edytował HellRider 9.12.2008, 14:38:57
Go to the top of the page
+Quote Post
BombaPHP
post 11.12.2008, 01:42:53
Post #6





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 9.12.2008

Ostrzeżenie: (0%)
-----


HellRider, wielkie dzięki za pomoc - faktycznie teraz już śmiga, musiałem nie doczytać tego manuala funkcji mail+ta zmienna w formularzu która powinna być nazwą. Super wyłapałeś te wszystkie błędy.


...teraz zacznę próby z walidacją jakby co to dalej będę się zwracał o pomoc yahoo.gif



----------------------------
EDIT







Czy znalazł by ktoś chwilę dla napisanie walidacji sprawdzającej pole z mailem nadawcy - pole from powyższego skryptu

Byłbym bardzo wdzięczny rolleyes.gif
Pozdrawiam

Ten post edytował BombaPHP 11.12.2008, 01:42:34
Go to the top of the page
+Quote Post
ucho
post 11.12.2008, 09:05:35
Post #7





Grupa: Zarejestrowani
Postów: 300
Pomógł: 32
Dołączył: 31.07.2006

Ostrzeżenie: (0%)
-----


Szczerze - nie waliduj, sprawdz tylko czy jest "@". Formalne warunki co do adresu email to "coś@coś" - a ludzie sprawdzają czy jest dość ".", ograniczają login tylko do liter i cyfr itp. - co tylko problemy powoduje. Pewnie w ciągu paru lat możemy się spodziewać adresów "login@gmail", ciekaw jestem na ilu stronach przez formularz to przejdzie smile.gif
Go to the top of the page
+Quote Post
BombaPHP
post 11.12.2008, 11:56:36
Post #8





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 9.12.2008

Ostrzeżenie: (0%)
-----


W sumie faktycznie zależy mi aby był znaczek @ - czyli taka podstawa

Prosiłbym o pomoc bo chyba coś pokręciłem w poniższym kodzie sadsmiley02.gif

Kod
function  walidacja($from) {
   $test = "@";
   if(preg_match($test, $from)
   {
   return true;
   }
   else
   {
   return false;
   echo "Wprowadzony adres e-mail jest nieprawidłowy";
   echo "Spróbuj ponownie"."<a href='poczta.php'>wyślij</a>";
   }



Pozdrawiam
Go to the top of the page
+Quote Post
Ociu
post 11.12.2008, 11:58:34
Post #9





Grupa: Moderatorzy
Postów: 1 566
Pomógł: 37
Dołączył: 14.05.2003
Skąd: Kraków




Zacznij używać odpowiedniego bbCode i dodaj tag do tematu.
strstr" title="Zobacz w manualu PHP" target="_manual
Go to the top of the page
+Quote Post
piotrooo89
post 11.12.2008, 14:54:01
Post #10


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




jeśli walidacja w php Ci nie "pyknie" to możesz użyć js: http://www.easyjavascript.begin.pl/?q=node/12


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 27.04.2024 - 22:43