Pomůže mi někdo najít chybu?

<?
$zobrazitFormular = true;

if (Mail("nekdo@mail.cz", "Email z webu",
"$Zprava",
"From:,(gethostbyaddr($REMOTE_ADDR))"
echo "Dopis byl úspěšně odeslán.";
else
echo "Dopis se nepodařilo odeslát";
?>



<if ($zobrazitFormular):?>
<FORM METHOD=POST onSubmit="return validate(this)">
<TABLE BORDER=0>

<TR>
<TD><B>Jméno:</B>
<TD>
<INPUT NAME=Jmeno VALUE="" SIZE=30>

<TR>
<TD><B>Přijmení:</B>
<TD>
<INPUT NAME=Prijmeni VALUE="" SIZE=30>

<TR>
<TD>Studuješ:
<TD><INPUT TYPE=RADIO NAME=Studujes VALUE="Stredni"
>Střední
      
<INPUT TYPE=RADIO NAME=Studujes VALUE="Vysokou"
>Vysokou

<TR>
<TD><B>E-mail:</B>
<TD>
<INPUT NAME=Email VALUE="" SIZE=30>

<TR>
<TD>WWW stránka:
<TD>
<INPUT NAME=Web VALUE="" SIZE=30>

<TR>
<TD COLSPAN=2>
<TEXTAREA NAME="Zpráva" ROWS=10 COLS=60>
Zde můžete psát zprávu.
</TEXTAREA>

<TR>
<TH COLSPAN=2><INPUT TYPE=SUBMIT VALUE=" Odeslat zprávu ">
</TABLE>
<INPUT TYPE=HIDDEN NAME=Odeslano VALUE=true>
</FORM>
proc nenapises co to dela a co ma delat (nebo co to nedela)... co ti mame kdo takhle poradit???

kdyz kouknu hned na prvni radky, tak je to syntaktickej nesmysl (?). projdi si zavorky, uvozovky a tak.

m.s.
hm, to je opravdu krávovina... Martin má pravdu...
a kdo pomuze mne?? :-)

nejak si neumim poradit s vypisem z databaze vlozenym do jinyho vypisu z databaze..asi nechapete tak to trochu naznacim..

<?
$1zaznam1cast = mysql_query("1.prikaz");
while ($1vypis = mysql_fetch_array($1zaznam1cast)):
$promenny = $1vypis["sloupce"];
echo "zacatek 1.zaznamu"; //zacatek tabulky, vypis mistnosti atd..
endwhile;

// a ted to vlozeni 2.zaznamu
$2zaznam = mysql_query("2.prikaz");
while ($2vypis = mysql_fetch_array($2zaznam)):
$dalsi_promenny = 2vypis["sloupce"]; // vypis uzivatelu v mistnostech
echo "vlozeny text";
endwhile;

$1zaznam2cast = mysql_query("1.prikaz");
while ($3vypis = mysql_fetch_array($1zaznam2cast)):
echo "zbytek 1.zaznamu"; //dokonceni tabulky
endwhile;
?>

ehm pro ty mene chapavejsi tohle je jen ilustrace :)) zkousel sem vic zpusobu zadnej nefungoval ale tenhle me prisel nejpribliznejsi takze snad nekdo pochopi co potrebuju..predem dik ;-)
>proc nenapises co to dela a co ma delat (nebo co to nedela)... co ti mame kdo takhle poradit???

-mělo by to odesílat formaulář na email-
if (Mail("nekdo@mail.cz"

spolu s informaci o tom, kdo to posílal
,(gethostbyaddr($REMOTE_ADDR));

Tak se tážu, jak to rozchodit, aby to dělalo
Tak asi patrim mezi ty mene chapavejsi :)

Mozna by pomohl uvest konkretni REALNY priklad bez kodu ... jako treba ... vypisuju tabulku mistnosti a pro kazdou mistnost potrebuju vypsat seznam uzivatelu ... (tohle jsem z toho nejak vytusil)

Reseni me napadaji dvoji

1. Nechat tu praci na MySQL a udelat join vice tabulek (v tomhle konkretnim pripade spis mene vhodna metoda) ...

SELECT * FROM mistnosti, vazebni_tabulka_mistnost_uzivatel, uzivatel WHERE ...

2. Asi lepsi by bylo to reseni, co jsi v tom svym prispevku naznacil, ale trosku pomotal :) ... je to stejny jako s cykli for ... musis je VNORIT!

<?
$1zaznam1cast = mysql_query("1.prikaz");
while ($1vypis = mysql_fetch_array($1zaznam1cast)):
$promenny = $1vypis["sloupce"];
echo "zacatek 1.zaznamu"; //zacatek tabulky, vypis mistnosti atd..


// a ted to vlozeni 2.zaznamu
$2zaznam = mysql_query("2.prikaz");
while ($2vypis = mysql_fetch_array($2zaznam)):
$dalsi_promenny = 2vypis["sloupce"]; // vypis uzivatelu v mistnostech
echo "vlozeny text";
endwhile;


echo "zbytek 1.zaznamu"; //dokonceni tabulky
endwhile;

?>

Radek
Radek: to endwhile; sem tam predtim nemel to sem dopsal az po par marnych pokusech :-) ale nakonec byla chyba v promennych ($promenny = $1vypis["sloupce"]; sem zmenil na jinej nazev promenny ale pri vypisovani (echo) sem uz nazev promenny zapomel zmenit..no tak proto me to tam psalo uplne neco jinyho, ted uz to fachci :-) ) ale stejne dik ponevac to endwhile; bych tam asi uz nechal :-))
>tak se tážu, jak to rozchodit, aby to dělalo...

...JO, kdyz odstranis ty syntakticke nesmysly, mohlo by to fungovat

m.s.
Michal - mas tam nejaky nesmyslny pocet zavorek (porovnej pocet levych a pravych :-) a co tam dela carka za "From: ", to mi taky neni jasny :-)
to jsou fsechno chyby, ktere ti vyhodi primo parser (treba jeste chybejici endif)...

to snad neni problem rozchodit...

m.s.
<?
$zobrazitFormular = true;

if (Mail("nekdo@mail.cz", "Email z webu",
"$Zprava",
"From:(gethostbyaddr($REMOTE_ADDR))")):
echo "Dopis byl úspěšně odeslán.";
else:
echo "Dopis se nepodařilo odeslát";
endif;
?>


-chybějící endif; je tam
-závorky sedí
-uvozovky by měly být v pohodě, asi bude problém?
-"From:(gethostbyaddr($REMOTE_ADDR))")):
no to endif jsem samozrejme myslel az v te druhe podmince...

no a ta prvni podminka? nechtel jsi to nejak takto:
if (Mail("nekdo@mail.cz", "Email z webu", $Zprava."\nFrom: ".gethostbyaddr($REMOTE_ADDR), "From: tvuj@email.com"))

nebo jak?

hlavicka FROM v emailu slouzi na neco uplne jineho, nez si myslis ty...

m.s.
tak tentokrat sem tu hned se dvema dotazama..ste radi co :) bych se neptal ale nemam sem s MB trosku na limit tak nemuzu testovat :-) zaprvy..da se v mysql pouzivat i znaminka < > treba..

"delete ... where ... < '$promenna'"

??..tot otazka..a ted to druhy.. kdyz sem napsal

<?
// ...

if(podminka)
{
Header("Location: roomselect.php3?atd&atd");
a_ostatni_prikazy()
}
else if(podminka)
// znovu to samy akorat s jinym presmerovanim

// atd...
?>

proc to vykonalo jenom ty ostatni prikazy a Header(...) ne??
> .... da se v mysql pouzivat i znaminka < > treba ...

ANO

> proc to vykonalo jenom ty ostatni prikazy a Header(...) ne??

Nejspis je to tim, ze uz pred tim volanim funkce Header() "odesles" nejaky text browseru (pak uz to nema efekt, protoze hlavicky jsou davno odeslany) ... zkratka, pred Header nesmis mit zadne echo("...") ... ANI zadny znaky mimo tagy <? ?> ... koukni se pred prvni tag <? ... jestli tam nemas nejaky enter nebo mezeru ... uz to znamena odesilani textu => odeslani hlavicek.

Radek

\nFrom: ".gethostbyaddr($REMOTE_ADDR), "From: tvuj@email.com"


Martine!
-téhle části vůbec nerozumím



Jak je to s tím FROM?

-citace jednoho článku:
"co vše lze nalézt v hlavičce e-mailu? Způsob kódování zprávy (dat), kterou dopis obsahuje, dále SPECIFIKACI ODESÍLATELE, příjemce, příjemce kopií, data odeslání, předmětu dopisu, identifikaci poštovního serveru odesílatele a historii "cesty" tohoto e-mailu (IP adresy všech poštovních serverů, kterými tento e-mail prošel), určení priority dopisu, atd."

-proč se tedy nedozvědět o odesílateli věci jako je IP, název serveru,..

to endif do, ktré podmínky?
Ip adresa odesílatele se přidává do hlavičky automaticky!
Jinak from musí být cokoliv@cekoliv.cz tedy odesílatelův mail (Pokud ho chce uvést) je to téže cíl odpovědi adresát tedy pokud dá odpovědět, tak jak e-mailová adresa se mu zobrazí to, co jsi dal do from
já chci vědět víc věcí
-jako je název serveru..nejen Ip adresu
Sežeň si script na odesílání mailu přes SMTP
>Ip adresa odesílatele se přidává do hlavičky automaticky!

...mam obavu, ze to je jina adresa, nez ktera ho zajima...

>-téhle části vůbec nerozumím

...cemu na to tom nerozumis? proste na konec zpravy se prida radek, ve kterem bude napsana IP adresa... vsechny ty veci, ktere te zajimaji, uloz do tela emailu a nemusis nic lustit z hlavicky (ve ktere je stejne uplne neco jineho, nez chces zjistit)...

>Sežeň si script na odesílání mailu přes SMTP

to take reseni, ale moc jsi mu nepomohl - tusim. pro tento pripad je to zbytecna starost navic, kdyz ma problem s fci mail(), nejaka trida mu zamota hlavu jeste vic.

m.s.
>to take reseni, ale moc jsi mu nepomohl - tusim. pro tento pripad je to zbytecna starost navic, kdyz ma problem s fci mail(), nejaka trida mu zamota hlavu jeste vic.

.. no ty umíš potěšit, místo toho jsi moh napsat na to script!

myslel jsem, že se tu pomáhá a ne shazuje před snahou se něco naučit!!
ukazku uz jsem ti napsal. pokud chces, klidne na to pouzij smtp-tridu. pokud jsem te podcenil, omlouvam se!!!

jednoduse IP adresu (a spoustu dalsich informaci) pridas do tela zpravy treba takto nejak:
Mail("nekdo@mail.cz", "Email z webu", $Zprava."\nFrom: ".gethostbyaddr($REMOTE_ADDR))

cim vic te jeste muzu potesit :)~

m.s.
Pokud jde o odesilani mailu z WZ ...

Nejdriv jsem zacal experimentovat s fci mail() ... ale kvuli tomu omezeni jsem se vrhnul na SMTP ... jako nejstabilnejsi se mi zdal smtp.seznam.cz ... ale i s nim jsem obcas narazil na problemy, zvlast, pokud tech mailu bylo vic ... cim vic serveru, tim vetsi pravdepodobnost, ze se nekde neco po :) ...

Tak jsem se nakonec zas vratil k te funkci mail() ... vyresil jsem to tak, ze maily se nejdriv strkaji do fronty a pak se z ni postupne (tak jak uzivatele browsi po strankach) vybiraji a odesilaji ... kdyz mail() vrati true zpravu vyndam z fronty, jinak ji soupnu zas na konec ...

Tuhle metodu teprv zacinam testovat, tak jsem zvedavej, co z toho vyleze :) ... ma nekdo s timhle nejaky zkusenosti ???

Radek
hm, taky jsem tom přemejšlel, ale dospěl jsem k závěru že by ty maili taky mohli dojít s několika hodinov´m zpoždění...:o).
> mohli dojít s několika hodinov´m zpoždění...:o).

To jo ... ale pro ucely na ktery to planuju pouzit by to zas az tak nevadilo ... hlavne aby DOSEL!

Radek
hm, to mě by se nehodilo...