Autor Zpráva
TooFew
Profil
Mám funkci, ve které ukládám do databáze IP adresu, akorát že když mám $REMOTE_ADDR ve funkci, nenajde ji a zapíše prázdný záznam. Je to takto:

function funkce() {

mysql_query("INSERT INTO tabulka (sloupec) VALUES ('$REMOTE_ADDR')");
}
........
funkce();


Zkoušel jsem to opravit: funkce($REMOTE_ADDR) {..... } funkce($REMOTE_ADDR); ale nejde to..
Co s tím?
djlj
Profil
Co takhle $_SERVER['REMOTE_ADDR'];?
TooFew
Profil
djlj
Ne. To nepomáhá. Já jsem vždycky používal jenom $REMOTE_ADDR a jelo to. Tady nezabírá ani jedna možnost.
djlj
Profil
TooFew
V tom případě:

function funkce($ip) {
mysql_query("INSERT INTO tabulka (sloupec) VALUES ('$ip')");
}


funkce($_SERVER['REMOTE_ADDR']);
Anonymní
Profil *
a co takto:

$ipadresa = $_SERVER['REMOTE_ADDR'];
function funkce($ipadresa) {

mysql_query("INSERT INTO tabulka (sloupec) VALUES ('$ipadresa')");

}
TooFew
Profil
djlj, Anonymní
Obě možnosti jsem už zkoušel. Nejde. Pořád to ukládá prázdný záznam.
djlj
Profil
TooFew
A vyvoáláš tu fci takto - funkce($_SERVER['REMOTE_ADDR']); ?

Případně si v té fci vypiš, co je v proměnné $ip.
TooFew
Profil
djlj
Ano. A taky mám ve funkci zapsané echo $ip; ale nevypisuje se nic => neuloží se nic, respektive prázdný řetězec. Zkoušel jsem ve funkci napsat i echo $_SERVER['REMOTE_ADDR'];. Ale nic.
anode
Profil
zkus v té funkci vypsat celou proměnnou $_SERVER:
print_r($_SERVER);
a podívej se, jaké má indexy, jestli je mezi nimi i REMOTE_ADDR
TooFew
Profil
Ta se taky vypíše jenom vně funkce. Ve funkci se nezobrazí nic... ("").
anode
Profil
A přesně tento skript taky nic nevypíše?
<?php
function foo()
{
print_r($_SERVER);
}

foo();
?>

Jakou máš verzi PHP?
TooFew
Profil
nefunguje:

function do($ip) {
mysql_query("INSERT INTO tabulka (sloupec) VALUES ('$ip')");
print_r($_SERVER);
write();
}

do($_SERVER['REMOTE_ADDR']);

nefunguje:

function do() {
mysql_query("INSERT INTO tabulka (sloupec) VALUES ('bbb')");
print_r($_SERVER);
}

do();

funguje:

function foo()
{
print_r($_SERVER);
}

foo();

Mám PHP 5. - freehosting profitux
djlj
Profil
TooFew
No tak pokud chceš v tý fci vypsat print_r($_SERVER), tak ji musíš vyvolat takto: do($_SERVER);.
TooFew
Profil
djlj
Nechci vypsat ...$_SERVER... Chci uložit IP. K tomu $_SERVERu jsme se dostali, protože to nejelo... A navíc, to taky nejde. Je to to samé jako ta moje 2. možnost hned v otázce. Ukládal jsem $REMOTE_ADDR a funkci jsem volal do($REMOTE_ADDR);
djlj
Profil
No mně to teda funguje úplně normálně...

http://vsevjednom.cz/test1.php
TooFew
Profil
No tak to potom nechápu. Ale když to má fungovat, tak jak to mám, tak bude problém jinde. OK. Najdu to.

show_source(); - zajímavé. :-) to jsem neznal.
Toto téma je uzamčeno. Odpověď nelze zaslat.