Autor Zpráva
Camo
Profil
Zdravým!
Skúšam funkciu mail(), ale mám s tým nenormálne problémy.
Mám formulár:
<form id="mail" action="mail.php5" method="post" enctype="text/plain">
adresa:<input name="adresa" type="text" value="vladimir.camaj@gmail.com" size="30"  />
predmet:<input name="predmet" type="text" value="camo.tym.sk" size="30"  />
správa:<textarea name="sprava" align="middle" cols="60" rows="7"  /></textarea>
<input type="submit" value="odoslať" size="10" />
 </form>


a script mail.php5:
<?
error_reporting(E_ALL);
if(mail($_POST["adresa"], $_POST["predmet"], $_POST["sprava"])){
   print "<HTML><BODY>Sparava bola odoslana!";
   print "</BODY></HTML>";
    }
else{
   print("<HTML><BODY>Error!!! Nepodarilo sa odoslat spravu!");
   print("</BODY></HTML>");
    }
?>


Vypisuje mi toto:
Notice: Undefined index: adresa in /home/free/tym.sk/c/camo/root/www/mail.php5 on line 3

Notice: Undefined index: predmet in /home/free/tym.sk/c/camo/root/www/mail.php5 on line 3

Notice: Undefined index: sprava in /home/free/tym.sk/c/camo/root/www/mail.php5 on line 3

Sparava bola odoslana!


Keď to zmením na method="get" tak normálne správu odošle, bez tých poznámok.
S postom ani za nič.
Ako to, že nebere ten POST(Undefined index......), ale Get funguje bez problémov?
Vďaka za pomoc!
JAAkub
Profil
Camo:
Skus toto :

$adress = $_POST["adresa"];
$predm = $_POST["predmet"];
$spr = $_POST["sprava"];


a potom zmen

mail($_POST["adresa"], $_POST["predmet"], $_POST["sprava"])

Na :
mail($adress, $predm, $spr)
panther
Profil
JAAkub:
Daj $_POST prec alebo urob
prosím?

Dát pryč $_POST, je nesmysl. Vytvářet nové proměnné je zbytečné.
Camo
Profil
No dobre, ale potrebujem pochopiť, prečo to nebere tak ako to je. Nejde mi o posielanie mailov, potrebujem to pochopiť a teda nedáva to žiadny zmysel.
Ako to, že$_GET funguje a $_POST nie?
Ale pozriem sa pre zaujímavosť aj na túto možnosť.

Ináč tiež si myslím, že nové premenné sú tam zbytočné.
JAAkub
Profil
Camo:
To veru neviem :D. Mne tiez vselico neslo a cudujem sa tomu :D

Premenne mam ja tak nastavenie v mojom mail()-e. Preto som to sem písal; mne to funguje
Camo
Profil
JAAkub:
Skúšal som to, ale žiadna zmena. Tá istá chyba.
JAAkub
Profil
Camo:
Ja som tiez na IC.cz skusim to ja :D an mojom servere
AM_
Profil
Co třeba nejdřív ověřit, jestli vůbec byl vyplněn formulář?
if (isset($_POST['adresa'])) {
  mail($_POST["adresa"], $_POST["predmet"], $_POST["sprava"]);
}
JAAkub
Profil
TOTO JE ZLE POZRI TOTO : 14-ty príspevok


Camo:
Dosiel som na to
Podla mna chyba bola v tomto :
error_reporting(E_ALL);

Ak som spravne pochopil tento prikaz vypisal vsetky chyby, poznamky, warning-y
A preto pisalo toto:
Notice: Undefined index: adresa in /home/free/tym.sk/c/camo/root/www/mail.php5 on line 3

Notice: Undefined index: predmet in /home/free/tym.sk/c/camo/root/www/mail.php5 on line 3

Notice: Undefined index: sprava in /home/free/tym.sk/c/camo/root/www/mail.php5 on line 3

Sice neviem preco to islo s GET ale toto fungovalo :D

Script:
<?
if (isset($_POST['adresa'])) {
if(mail($_POST["adresa"], $_POST["predmet"], $_POST["sprava"])){
   echo "<HTML><BODY>Sparava bola odoslana!";
   echo "</BODY></HTML>";
    }
else{
   echo "<HTML><BODY>Error!!! Nepodarilo sa odoslat spravu!";
   echo "</BODY></HTML>";
    };}
?>

panther
Profil
JAAkub:
Podla mna chyba bola v tomto :
ne, to je naprosto správná cesta. Chyby se mají řešit, ne se schovávat nebo je potlačovat.
JAAkub
Profil
panther:
Chyby se mají řešit, ne se schovávat nebo je potlačovat.
Tak prečo neporadíte aj vy, len opravujete čo ja napíšem; Možno som sa mýlil ale funguje to
panther
Profil
JAAkub:
Možno som sa mýlil ale funguje to
funguje to stejně, jako s těmi varováními. Jen jsi je potlačil.

Tak prečo neporadíte aj vy
však to AM napsal.
Nox
Profil
Tak prečo neporadíte aj vy, len opravujete čo ja napíšem; Možno som sa mýlil ale funguje to
Bohužel tvoje rada kromě toho že nepomůže spíš naopak uškodí, proto je dobrý na to upozornit

Camo:
Ten entype...teoreticky by měl být správně ale kupodivu mi to (pokud si dobře pamatuju) dělalo neplechu
...sice by to pomoct nemělo, ale zkus to zkusit bez něj

<? => <?php
...sice neřeší současný problém, ale je lepší používat toto

+určitě přidej co psal AM
JAAkub
Profil
UŽ TO MÁM
Odstran z formularu :
<form ... enctype="text/plain">


A takto prerob Script:
<?php
error_reporting(E_ALL);

if (isset($_POST['adresa'])) {
if(mail($_POST["adresa"], $_POST["predmet"], $_POST["sprava"])){
   echo "<HTML><BODY>Sparava bola odoslana!";
   echo "</BODY></HTML>";
    }
else{
   echo "<HTML><BODY>Error!!! Nepodarilo sa odoslat spravu!";
   echo "</BODY></HTML>";
    }}else echo "<!-- error -->" ;
?>



Nox:
Ta druha uvaha bola správna enctype="text/plain" pomohla ... Viem zmýlil som sa... však sme len ľudia :D...
Camo
Profil
To all:
Formular je vyplnený správne. Napísal som predsa, že keď to posielam cez GET tak to normálne odošle ani error_reporting(E_ALL) nič nevypisuje.
Idem sa teda pozrieť na to enctype...
Som zvedavý, lebo mi to teda poriadne zamútilo v tekvici.
Dúfam, že to bude ono.
Camo
Profil
Výborne, bolo to v tom enctype!
Moc díky Noxi!!!

Jaakub:Snaha sa cení aj som sa pobavil....

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: