webForumDet fria alternativet

PHP och https

10 svar · 834 visningar · startad av mollemus

mollemusMedlem sedan jan. 200833 inlägg
#1

Hejsan!

Jag har utvecklat en hemsida i php med formulär som sedan
skickar ett mail med informationen som skrivits in i formuläret.

Det funkade jättebra när det låg på en "vanlig" http server.
Nu när kunden lagt den på en "https" så att informationen
som skickas krypteras så får jag bara tomma mail, som om
variablerna som skickas med formuläret inte kommer med.

Jag använder utf8_decode($_POST['variabelnamn']) för
att få värdena ifrån formuläret, ska jag använda något
annat för att kunna få värdena på variablerna?

Tacksam för snabbt svar

MarkusHelinMedlem sedan nov. 200742 inlägg
#2

PHP ska inte behandla koden annorlunda för man kör med https.
kör en print_r($_POST) see om dina variablar ens defineras.

mollemusMedlem sedan jan. 200833 inlägg
#3

Ok, tack så mycket för svaret, då vet jag iaf att https inte är problemet. Ska kolla igenom min kod nogrant. Vad ska man skriva i ett php-dokument för att den ska visa alla fel i koden?

sl0kMedlem sedan maj 2005562 inlägg
#4

mollemus skrev:

Ok, tack så mycket för svaret, då vet jag iaf att https inte är problemet. Ska kolla igenom min kod nogrant. Vad ska man skriva i ett php-dokument för att den ska visa alla fel i koden?

<?php
error_reporting(E_ALL|E_STRICT);
ini_set("display_errors",1);
MarkusHelinMedlem sedan nov. 200742 inlägg
#5

skriv in "error_reporting = E_ALL" i php.ini

eller i php kod:
ini_set("error_reporting", E_ALL);
ini_set("display_error", 1);

aasahMedlem sedan mars 20034 471 inlägg
#6

mollemus skrev:

...Det funkade jättebra när det låg på en "vanlig" http server.
...

Kan det vara register_globals som spökar? Om den gamla adressen hade dessa ON och den nya OFF?

Se till att du hämtar alla variabler från formuläret med $_POST['inputnamnet'] resp $_GET['inputnamnet'] (beroende på method) - och inte som $inputnamnet.

Skulle kunna förklara varför byte av server sabbat skriptet.

mollemusMedlem sedan jan. 200833 inlägg
#7

Tack aasah för tipset, hur kollar man vilken inställning register_globals har? och hur ändrar man deras inställning?

aasahMedlem sedan mars 20034 471 inlägg
#8

mollemus skrev:

Tack aasah för tipset, hur kollar man vilken inställning register_globals har? och hur ändrar man deras inställning?

Hur vet jag inte, men om skriptet numera körs på https verkar säkerhet vara viktigt och då bör du inte ändra den inställningen! Mycket bättre att använda de superglobala arrayerna $_POST och $_GET. lite mer om dessa arrayer.

stevenetMedlem sedan juni 20001 251 inlägg
#9

Du kan kontrollera dina php-inställningar med hjälp av https://www.php.net/phpinfo:

<?php phpInfo(); ?>

Eller https://www.php.net/ini_get:

<?php echo "register_globals = " . ini_get('register_globals'); ?>

Inställningar för register_globals görs via php.ini, ligger du på ett webhotell är det bäst att du frågar dessa om råd.

BeatrixMedlem sedan jan. 200811 inlägg
#10

Hos många webbhotell räcker det med att man skapar en .htaccess fil och klistrar in raden
register_gobals = on

kan vara värt att testa

...i vilket fall som helst så skall de kunna erbjuda att du har en lokal php.ini (i din webroot) fil med samma rad och som din .htaccess pekar på.

MarkusHelinMedlem sedan nov. 200742 inlägg
#11

Beatrix skrev:

Hos många webbhotell räcker det med att man skapar en .htaccess fil och klistrar in raden
register_gobals = on

För ändra php variablar med .htacces måste du ange
php_value register_globals 1". i .htaccess
funkar endast om webbhotellet använder sig av mod_php.

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