webForumDet fria alternativet

parse error i mailscript

PHPur PHP

9 svar · 166 visningar · startad av bassebhu

Medlem sedan nov. 20016 480 inlägg
Frågan#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!!!

Medlem sedan aug. 20002 975 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."; 
?>
Medlem sedan nov. 20016 480 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

Medlem sedan nov. 20016 480 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

Medlem sedan dec. 2002789 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

Medlem sedan dec. 2002789 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.

Medlem sedan aug. 20002 975 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.

Medlem sedan nov. 20016 480 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...

Medlem sedan aug. 20002 975 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

Medlem sedan maj 2002647 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.

131 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)