webForumDet fria alternativet

Scriptet hittar inte php.ini

15 svar · 358 visningar · startad av ajke

ajkeMedlem sedan mars 200375 inlägg
#1

Hej! Jag har laddat ner ett mail-script. https://www.niklasson.net/scripts . Det heter mail-script 1.0 . Jag har gjort som det står i readme-filen och alla variablar är ifyllda, frid och fröjd... Men nej då, jag tror att scriptet inte hittar min php.ini fil. För att när jag flyttar den till t.ex. skrivbordet så blir det inte bättre. Kan det va att scriptet inte hittar .ini-filen eller kan det va något annat? Jag har fyllt i konfurigations in ställnigarna i php.ini rätt men nått går snett! Jag får felmedelandet;

"Du måste använda ett formulär för att kunna skicka mail med detta script"

Det blir likadant som dethär som mina andra lite avancerade script.

Snälla, svara fort!!!

Mvh

Anton

Cri11eMedlem sedan aug. 200235 inlägg
#2

Gör du det då, alltså anropar scriptet från ett formulär?

ajkeMedlem sedan mars 200375 inlägg
#3

ja, ladda ner scriptet på http://www.niklasson.net/scripts (scriptet heter mail-script 1.0) och kolla själv men jag tror att det gör det...

Är nänmligen lite ny på php.

Mvh

Anton

Cri11eMedlem sedan aug. 200235 inlägg
#4

Jag kollade scriptet och du måste alltså anropa scriptet med hjälp av ett formulär:

<form action="mail.php" method="post">
...
</form>

Sedan är jag inte riktigt säker men det kan vara så att du måste sätta register_globals = on i php.ini.

ajkeMedlem sedan mars 200375 inlägg
#5

Nja, det var det inte. Testa ett nytt script och det är bara en del som funkar men dom mer avancerade funkar inte! Och scriptet anropar rätt fil och allt! jag har tagit hit en datanörd och inte ens han kunde se felet! Fan! Men vet du nåt bra webhotell som e gratis och har stöd för php och ftp? Men nu till scriptet, vad tycker du att jag ska göra, ska jag sluta med php eller? Jag kan ju inte använda några scripts och så... Åhhh.. Om nej vet du vart man kan söka hjälp?

Mvh

Anton

FlashXMedlem sedan nov. 1999992 inlägg
#6

I filen mail.php finns dessa rader

$referer = $HTTP_REFERER;

if (empty($referer))
{
fel("Du måste använda ett formulär för att kunna skicka e-post med detta script.");
}

Det finns ingen garanti för att den fördefinerade variabeln alltid innehåller något och bör därför inte användas som kontroll.

ajkeMedlem sedan mars 200375 inlägg
#7

Och det innebär att?

FlashXMedlem sedan nov. 1999992 inlägg
#8

Kort innebär det att om variabeln är tom så går det inte att skicka. Du kan testa detta genom att köra en fil med

<?php echo $HTTP_REFERER; ?>

Får du en blank sida så är den tom.

ajkeMedlem sedan mars 200375 inlägg
#9

Ja den var tom, vad ska jag göra då?

Cri11eMedlem sedan aug. 200235 inlägg
#10

Vet inte om det skulle fungera med $_SERVER['HTTP_REFERER'] men det kanske är värt ett försök iaf.

DarrenMedlem sedan dec. 2002741 inlägg
#11

Eller ändra register_globals till On i php.ini filen.

FlashXMedlem sedan nov. 1999992 inlägg
#12

Det hjälper troligen inte i detta fallet att ändra register_globals till on och man bör knappast ha det påslaget.
Testa

<?php echo $_SERVER[SERVER_NAME]; ?>

och se om den skriver ut domänen. Se också till att det som skrivs ut finns med i variabler.php där du lägger till giltiga domäner.
Du kan sedan prova att med byta denna koden

$referer = $HTTP_REFERER;

if (empty($referer))
{
fel("Du måste använda ett formulär för att kunna skicka e-post med detta script.");
}

$ref_ok = 0;
for ($i=0;$i<count($domaner);$i++)
{
	if ($kolla_ref != 1)
	{
	$ref_ok = 1; last;
	}
	if (eregi("^https?:\/\/$domaner[$i]",$referer))
	{
	$ref_ok = 1; last;
	}
}

$host = preg_replace("|^https?://([\w\.]+)|","\\1",$referer);
$host = preg_replace("|([\w\.]+)/(.*)?|","\\1",$host);

if ($ref_ok != 1)
{
fel("Servern <b>'$host'</b> får inte använda detta scriptet. Scriptets array <b>\&quot\$domaner\&quot</b> måste kompletteras i så fall.");
}

mot

$ref_ok = 0;
for ($i=0;$i<count($domaner);$i++)
{
	if ($kolla_ref != 1)
	{
	$ref_ok = 1; last;
	}
	if ($domaner[$i] == "$_SERVER[SERVER_NAME]")
	{
	$ref_ok = 1; last;
	}
}

if ($ref_ok != 1)
{
fel("Servern <b>'$_SERVER[SERVER_NAME]'</b> får inte använda detta scriptet. Scriptets array <b>\&quot\$domaner\&quot</b> måste kompletteras i så fall.");
}

Ger dock inga garantier att det löser just dina problem.

ajkeMedlem sedan mars 200375 inlägg
#13

Då blir bara blank...

FlashXMedlem sedan nov. 1999992 inlägg
#14

Alternativt är ju då att du helt tar bort domänkontrollen i skriptet. Kan du lägga in <?php phpinfo(); ?> i en fil och länka till den.

MatteMedlem sedan aug. 20002 970 inlägg
#15

Kan nämna att jag hade lite problem med HTTP_REFERER när jag bytte dator senast.
Jag installerade Norton Internet Security och fann att det som default blockerade HTTP_REFERER att skickas från datorn.

Jag är nog inte ensam om att ha Norton ... så att förlita sig i ett skript på HTTP_REFERER är nog vanskligt.
Möjligtvis i ett adminskript där man vet att man själv skickar ut HTTP_REFERER.

Cri11eMedlem sedan aug. 200235 inlägg
#16

Så här står det i manualen notera det sista.

'HTTP_REFERER'
The address of the page (if any) which referred the user agent to the current page. This is set by the user agent. Not all user agents will set this, and some provide the ability to modify HTTP_REFERER as a feature. In short, it cannot really be trusted.

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