Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Błąd w wysyłaniu maila ze strony, konfiguracja pliku
Forum PHP.pl > Forum > Przedszkole
guzioo
Witam
Kolejny problem z jakim się spotkałem to konfiguracja pliku przy formularzu do wysyłania maila ze strony www.
Mam bardzo prosty skrypt, gdy wrzucam go na serwer i wypełniam wszystkie pola, przy wysyłaniu pojawia mi się błąd:
"Blad - nie wypelniles wszystkich pol formularza !"

Nie wiem co powiniem jeszcze zminieć :/ Prosze o pomoc!

Plik forum PHP

Kod
\
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=iso-8859-2">
<META NAME="Description" CONTENT="Opis dokumentu">
<META NAME="Author" CONTENT="Autor dokumentu">
<TITLE>Tytu³</TITLE>
</HEAD>
<BODY>
<form ACTION="slij.formularz.php" method="post">
<div align="center">
  <center>
  <table border="0" width="339" height="129">
    <tr>
      <td width="132" height="26">Twoje imie:</td>
      <td width="191" height="27"><input TYPE="text" name=imie></td>
    </tr>
    <tr>
      <td width="132" height="28">Twój email:</td>
      <td width="191" height="27"><input TYPE="text" name=email></td>
    </tr>
    <tr>
      <td width="132" height="28">Wpis:</td>
      <td width="191" height="28"><textarea name=tresc cols=30 rows=10></TEXTAREA></td>
    </tr>
    <tr>
      <td width="132" height="26"></td>
      <td width="191" height="27"><input TYPE="submit" value=SLIJ></td>
    </tr>
  </table>
  </center>
</div>
</FORM>
</BODY>
</HTML>


I plik slij.formularz.php

Kod
<?
function slijForm()
{
$moj_email="kamilg**@*******.fm";
$title="Jakistam tytul majla";
$wiadomosc=("User $imie ($email) napisal: $wpis");

mail("$moj_email","$title","$wiadomosc");
echo("<center>Wiadomosc zostala wyslana !</center>");
}
function error()
{
echo("Blad - nie wypelniles wszystkich pol formularza !");
}
if (($imie=="") || ($email=="") || ($wpis==""))
{
error();
}
else
{
slijForm();
}
?>


Z góry dziękuję za pomoc. Pozdrawiam
mortus
Na serwerze jest wyłączone register globals i powinieneś korzystać z tablicy $_POST. Zastąp to
  1. if (($imie=="") || ($email=="") || ($wpis==""))
tym
  1. if (($_POST['imie']=="") || ($_POST['email']=="") || ($_POST['wpis']==""))
Powinno pomóc.
guzioo
Rzeczywiście pomoglo - mail dochodzi!
Tylko teraz pojawił się inny problem :/
Mimo, że w wiadomości wpisuje w polu wiadomosc tekst, to przychodzi mail takiej treści:

"User () napisal: "


Czyli nie jest napisane od kogo, z jakiego maila ani tresc wiadomosci
mortus
Bo w funkcjach też musisz zmienić $imie na $_POST['imie'], $email na $_POST['email'] i $tresc na $_POST['tresc']. Albo zrób tak:
  1. <?php
  2. $imie = $_POST['imie'];
  3. $email = $_POST['email'];
  4. $tresc = $_POST['tresc'];
  5. function slijForm() {
  6. $moj_email = "kamilg**@*******.fm";
  7. $title = "Jakistam tytul majla";
  8. $wiadomosc = ("User $imie ($email) napisal: $wpis");
  9.  
  10. mail("$moj_email", "$title", "$wiadomosc");
  11. echo("<center>Wiadomosc zostala wyslana !</center>");
  12. }
  13. function error() {
  14. echo("Blad - nie wypelniles wszystkich pol formularza !");
  15. }
  16. if (($imie == "") || ($email == "") || ($wpis == "")) {
  17. error();
  18. } else {
  19. slijForm();
  20. }
  21. ?>
guzioo
teraz moj plik wyglada tak
Kod
<?php
$imie = $_POST['imie'];
$email = $_POST['email'];
$tresc = $_POST['tresc'];
function slijForm() {
    $moj_email = "kamilguz@poczta.fm";
    $title = "Jakistam tytul majla";
    $wiadomosc = ("User $imie ($email) napisal: $tresc");
    
    mail("$moj_email", "$title", "$wiadomosc");
    echo("<center>Wiadomosc zostala wyslana !</center>");
}
function error() {
    echo("Blad - nie wypelniles wszystkich pol formularza !");
}
if (($_POST['imie']=="") || ($_POST['email']=="") || ($_POST['tresc']=="")) {
    error();
} else {
    slijForm();
}
?>


Lecz nadal przychodzą puste maile
mortus
W formularzu nie masz pola tresc, tylko wpis. Zmien wpis na tresc i ma być. Poza tym wszystko wygląda dobrze i powinno działać.
guzioo
Zmienilem jednak dalej pusty mail:
tak wygladaja pliki teraz:

Kod
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=iso-8859-2">
<META NAME="Description" CONTENT="Opis dokumentu">
<META NAME="Author" CONTENT="Autor dokumentu">
<TITLE>Tytu³</TITLE>
</HEAD>
<BODY>
<form ACTION="slij.formularz.php" method="post">
<div align="center">
  <center>
  <table border="0" width="339" height="129">
    <tr>
      <td width="132" height="26">Twoje imie:</td>
      <td width="191" height="27"><input TYPE="text" name=imie></td>
    </tr>
    <tr>
      <td width="132" height="28">Twój email:</td>
      <td width="191" height="27"><input TYPE="text" name=email></td>
    </tr>
    <tr>
      <td width="132" height="28">Wpis:</td>
      <td width="191" height="28"><textarea name=tresc cols=30 rows=10></TEXTAREA></td>
    </tr>
    <tr>
      <td width="132" height="26"></td>
      <td width="191" height="27"><input TYPE="submit" value=SLIJ></td>
    </tr>
  </table>
  </center>
</div>
</FORM>
</BODY>
</HTML>



I drugi

Kod
<?php
$imie = $_POST['imie'];
$email = $_POST['email'];
$tresc = $_POST['tresc'];
function slijForm() {
    $moj_email = "kamilguz@poczta.fm";
    $title = "Jakistam tytul majla";
    $wiadomosc = ("User $imie ($email) napisal: $tresc");
    
    mail("$moj_email", "$title", "$wiadomosc");
    echo("<center>Wiadomosc zostala wyslana !</center>");
}
function error() {
    echo("Blad - nie wypelniles wszystkich pol formularza !");
}
if (($_POST['imie']=="") || ($_POST['email']=="") || ($_POST['tresc']=="")) {
    error();
} else {
    slijForm();
}
?>
deLL
Mam ten sam problem, z $HTTP_POST_VARS też nie działa...
guzioo
W koncu udalo mi sie znalezc odpowiedz smile.gif
Poszukalem troche w google i trafilem na stronke akurat z tym samym skryptem http://www.webhelp.pl/forum/viewtopic.php?p=773387

Zmodyfikowalem troche jednak dla swoich potrzeb i wyszlo biggrin.gif exclamation.gif!

Tak teraz to wyglada:
Kod
<?

function slijForm()
{
$moj_email="kamilguz@poczta.fm";
$title="Wiadomosc z www";
$wiadomosc="Imie:\n".$_POST['imie']."\n\nMail:\n".$_POST['email']."\n\nTresc:\n".$_POST['wpis'];

mail("$moj_email","$title","$wiadomosc");
echo("<center>Wiadomosc zostala wyslana !</center>");
}
function error()
{
echo("Blad - nie wypelniles wszystkich pol formularza !");
}
if (($_POST['imie']=="") || ($_POST['email']=="") || ($_POST['wpis']==""))
{
error();
}
else
{
slijForm();
}
?>


mortus wielkie dzieki za wszystkie wskazowki! Dzieki nim juz jakies podstawy PHP zzostaly w glowie. Pozdrawiam exclamation.gif

A czy da sie zrobic, ze po komunikacie - wyslano badz nie, byl przycisk pod komunikatem --- powrot (kierowal by na strone glowna) albo jeszcze zeby to robil po jakims czasie (np 3 sec)?
P.S.
Chociaz nie wiem dla czego linia $wiadomosc powinna tak wygladac :/
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.