webForumDet fria alternativet

parse error i mailscript

9 svar · 166 visningar · startad av bassebhu

bassebhuMedlem sedan nov. 20014 028 inlägg
#1

hej! försöker köra det här:

<?php
if (mail("webmaster@blabla.se", $_POST["frmSubject"], $_POST["frmMessage"]));
echo "Ditt e-mail skickades.";
else
echo "Ditt email skickades INTE.";
?>

men får:

Parse error: parse error in /.../sida.php on line 13

line 13 är if-raden tror jag

vad är fel?
tack!!!

MatteMedlem sedan aug. 20002 970 inlägg
#2

Tag bort semikolonet i slutet av raden:

<?php 
if (mail("webmaster@blabla.se", $_POST["frmSubject"], $_POST["frmMessage"])) // Här ska inte vara ett ';'
echo "Ditt e-mail skickades."; 
else 
echo "Ditt email skickades INTE."; 
?>
bassebhuMedlem sedan nov. 20014 028 inlägg
#3

Det misstänkte jag också och vad jag har för mig så funkade det ändå inte. (Är på ett annat ställe nu, så jag kan ej testa igen, men rätt säker på att jag testade utan ";")

Tills jag kan testa igen: Andra möjliga fel?

tack

bassebhuMedlem sedan nov. 20014 028 inlägg
#4

en sak till.

när skall $_POST, $_GET och $_REQUEST användas?

post och get vid formulär antar ja, men varför?

$_REQUEST vid sida.php?query=string ???

Är helt grön på php, men jag trodde att det räckte med att skicka med formulärsdata så blev det automatiskt variabler med samma namn som formulärsfälten?! :)

tack

DarrenMedlem sedan dec. 2002741 inlägg
#5

$_POST vid formulär (även $_GET kan användas här)
$_GET vid hårdkodade variabler som skickas med url-en (t ex din_sida.php?variabel1=du&variabel2=du_igen)
$_REQUEST när du inte vet om du skall använda $_POST eller $_GET

DarrenMedlem sedan dec. 2002741 inlägg
#6

bassebhu skrev:

Är helt grön på php, men jag trodde att det räckte med att skicka med formulärsdata så blev det automatiskt variabler med samma namn som formulärsfälten?! :)

Jodå, detta fungerar också men då måste globals vara on i php.ini filen.

MatteMedlem sedan aug. 20002 970 inlägg
#7

Har du action="post" i ditt formulärhuvud ska du använda $_POST annars använder du $_GET.
Från querystring i länkar använder du $_GET.
$_REQUEST hämtar både som $_POST, $_GET och $_COOKIE.

Har man register_globals=On så kan man istället använda variabelnamnet direkt, t.ex $variabel istället för $_POST['variabel']. Detta rekommenderas dock inte av säkerhetsskäl.

bassebhuMedlem sedan nov. 20014 028 inlägg
#8

ok då är min fråga, varför har de nissarna då skapat GET och POST om REQUEST klarar båda två?! nån skillnad måste det ju vara?!

tack återigen...

MatteMedlem sedan aug. 20002 970 inlägg
#9

bassebhu skrev:

ok då är min fråga, varför har de nissarna då skapat GET och POST om REQUEST klarar båda två?! nån skillnad måste det ju vara?!

Anledning kan tänkas vara att man vill skilja på variabler som kommer från olika håll.

$_GET och $_POST motsvarar (i stort sett) de gamla variablerna $HTTP_GET_VARS och $HTTP_POST_VARS, och kom till när man av säkerhetskäl ändrade standardinställningen för register_globals till Off. $_REQUEST kom, enligt min gissning, till för att enkelt kunna konvertera de skript som, vid register_globals=On, använde samma variabelnamn i ett skript oberoende varifrån det kom.

Själv tycker jag det är en fördel att kunna skilja på varifrån variablerna kommer.

Motiveringarna till att använda dom borde du kunna hitta i dessa länkar:
http://www.zend.com/zend/art/art-oertli.php
http://forums.devshed.com/showthread.php?threadid=20525&forumid=5

WebslaveMedlem sedan maj 2002662 inlägg
#10

Håller med Matte. Man vill kanske att man endast ska kunna ta med sig variablar från formulär (vid inloggning etc) och då använder man bara $_POST så måste formulär användas.

Genererad på 380 ms · cache AV · v20260730165559-full.f96bc7eb