Autor Zpráva
Carter
Profil *
Zdravim! Nejsem moc znalý v PHP proto bych protřeboval pomoci: Mám zpracovaný výstup z formuláře a potřeboval bych ho zapsat do souboru
<?php
$vysledek = ($jmeno);
$vysledek2 = ($ip);
$soubor = fopen("test3.php", "a");
fwrite($soubor, "xxx");
fclose($soubor);
?>

kde je xxx bych potřeboval vložit:
elseif (substr($REMOTE_ADDR,-15) == "$ip") {
  $ip = "$jmeno"; }

akorát na místo $ip a
$jmeno
vložit ty předdefinované hodnoty.
Takže v test3.php bude vloženo například:
elseif (substr($REMOTE_ADDR,-15) == "123456") {
  $ip = "Carter"; }
Snad se to dá pochopit.
imploder
Profil
fwrite($soubor, 'elseif (substr($REMOTE_ADDR,-15) == "'.$ip.'") {
  $ip = "'.$jmeno.'"; }")';

Pro vysvětlení:
- operátor tečka (".") slouží ke spojování řetězců
- v řetězcích uzavřených do apostrofů je možné používat neescapované uvozovky a znaky dolaru (tedy za $ip se opravdu vloží $ip a ne hodnota té proměnné; do řetězce v uvozovkách by se naproti tomu vložila hodnota)

A varování: generování PHP skriptu podle vstupu je potenciálně velice nebezpečné. Nedokonale ošetřeným vstupem může útočník snadno podstrčit kód, jaký se mu zlíbí, a ten se potom provede. K použití něčeho takového by měl být velmi dobrý důvod a vstupy v takovém případě musí všechny být pečlivě ošetřené. Pokud s PHP začínáš, raději se do toho nepouštěj.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0