Autor Zpráva
Ajtak
Profil *
Zdravím. Mám takovýto kód který ve staré verzi fungoval, ale v nové verzi php již nefunguje. Nevíte kde může být chyba?
<? 
Header("Expires: ".GMDate("D, d M Y H:i:s")." GMT"); 
?> 
<html> 

<head> 
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250"> 

<title>Kniha návštev - PHP</title> 
</head> 
<body bgcolor="#333333" text="#FFFFFF" link="#00FF00" vlink="#00FF00" alink="#FF0000"> 



 
 
 
<form action="" method="post"> 
 
 
MENO: 
 
 
<input type="text" name="meno" size="20" value="<? 
if ($meno=="" || $email=="" || $popis==""):  
echo $meno; 
endif; 
?>"> 
 
EMAIL: 
<input type="text" name="email" size="20" value="<? 
if ($meno=="" || $email=="" || $popis==""):  
echo $email; 
endif; 
?>"> 

<? 
if ($meno=="" || $email=="" || $popis==""):  
echo $web; 
endif; 
?> 
<input type="hidden" name="odoslane" value="ano"> 

TEXT: 

<textarea cols="25" rows="3" name="popis"><? 
if ($meno=="" || $email=="" || $popis==""):  
echo $popis; 
endif; 
?></textarea> 

<center><input type="submit" value="Submit">&nbsp;&nbsp;&nbsp;<input type="Reset" value="Reset"></center> 

</form> 


<? 
if ($odoslane=="ano"): 
if ($meno=="" || $email=="" || $popis==""):  
echo "<center><br><font class=male>Vyplnte všetky údaje<br></font></center>"; 

else:  

$name = "<font class=meno>$meno</font><BR>\n";  
$e_mail = "<A class=odkaz HREF=mailto:$email>$email</A><BR>\n";  
if ($web!=""):  
$www = "<A class=odkaz HREF=\"$web\">$web</A><BR>\n";  
endif; 
$cas = "<font class=cas>" . Date("j. " . "m. " . "Y, " . "H:i:s") . "</font><BR>\n";  
$popis2 = NL2BR(HTMLSpecialChars($popis));  
$zprava = "<BR><font class=text>$popis2</font><BR><BR><HR color=\"#FFFFFF\"><BR>\n\n";  

$write = StripSlashes($name . $e_mail . $www . $cas . $zprava);  

if (File_Exists ("book.dat")):  
$fp = FOpen ("book.dat", "r");  
$data = FRead ($fp, FileSize("book.dat"));  
FClose($fp);  
endif; 
$fp = FOpen ("book.dat", "w");  
FWrite ($fp, $write.$data);  
FClose ($fp);  
endif; 
endif; 
?> 

<hr color="#FFFFFF"><br> 

<? 
if (File_Exists ("book.dat")):  
$fp = FOpen ("book.dat", "r");  
FPassThru($fp);  
endif; 
?> 

</td> 
</tr> 
</table> 


   

</body> 
</html>              
Mike8748
Profil
Ajtak:
a jak se ta nefunkčnost projevuje?

hrubý odhad je že ti bude stačit přepsat proměnné na glob.pole (tedy místo $meno použít $_POST['meno']) a pak to bude zase fungovat

souvisí to s direktivou register_globals v php.ini
Someone
Profil
Mně na localhostu zlobí zápis <? ?> zkus to přepsat na <?php ?>
Mike8748
Profil
zápis <? se dá rozchodit nastavením direktivy short_open_tag na On (v souboru php.ini)

přepsání na <?php je ale lepší nápad, protože dost webhostingů ma danou direktivu vypnutou, takže by skripty na localhostu sice fungovaly, ale po nahrání na webhosting by bylo stejně zapotřebí to přepsat

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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