Autor Zpráva
zoldak21
Profil
Dobrý den,
po nějaké době jsem zprovoznil knihu která samostatně běží ( http://www.kopci.cz/kniha.php ) ikdyž co teď koukám tak to tam píše nějaké chyby. Data se ukládají do externího souboru (kniha.body).
Chtěl jsem teď knihu vložit přímo do stránky (Scorpions-Wincheater-2.07-diskuze.php). Nakopíroval jsem tedy kniha.php a kniha.body do stejné složky kde je výše zmíněná stránka. Do kódu jsem vložil
<?php include("kniha.php") ?>
když jsem ale zkusil odeslat příspěvek tam mě to hodilo na stránku kniha.php (další výpis chyb).Zkusil jsem tedy obsah stránky Scorpions-Wincheater-2.07-diskuze.php předělat do stránky kniha.php ale ani tak to neodesílalo. Zkoušel jsem v knize přepsat <form name="form" method="post"
action="kniha.php"> na <form name="form" method="post"
action="Scorpions-Wincheater-2.07-diskuze.php"> ale furt nic. Momentálně mám použitý ten include.
PS:adresa na knihu ve stránce je http://www.kopci.cz/HRY-A-ZABAVA/podstranky/TVORBA-HER/1/Scorpions-Win cheater-2.07/Scorpions-Wincheater-2.07-diskuze.php
Kód souboru kniha.php je:
<?php
error_reporting(E_ALL);
$action = $_POST['action'];
$jmeno = $_POST['jmeno'];
$mail = $_POST['mail'];
$vzkaz = $_POST['vzkaz'];
$kontrola = $_POST['kontrola'];

function antispam($email, $jmeno){
$return = "<script type=\"text/javascript\"><!--\ndocument.write('<a href=\"' + 'mailto:' + '";
for($i=0;$i<strlen($email);$i++){
$code .= $email{$i}=='@' ? "' + '&#".ord("@")."' + '"
: "&#".ord($email{$i}).";";
}
$return .= $code."' + '\">' + '".$jmeno."' + '<\/a>');\n--></script>";
RETURN $return;
}
?>
<form name="form" method="post"
action="kniha.php">
<table><tr><td>jméno:</td>
<input type="hidden" value="uloz" name="action" />
<td><input type="text" name="jmeno" size="50" /></td>
</tr><tr><td>e-mail:</td>
<td><input type="text" name="mail" size="50" /></td>
</tr><tr></tr>
<tr><td valign="top">Vzkaz</td>
<td><textarea name="vzkaz" cols="52" rows="5">
</textarea></td></tr>
<tr><td></td><td>Ochrana proti spamu: 4 plus 5 =
<input type="text" name="kontrola" size="8" />
</td>
<tr><td></td><td>
<input type="submit" value="odeslat"></td>
</tr>
</table>
</form>
<table width="740">
<?php
if ($action=='uloz'):
$soubor = "kniha.body";
@$ext = fopen($soubor, "r");
@$obsah = fread($ext, filesize($soubor));
@FClose($ext);

if($kontrola != "9"):
echo "<h6>Špatná odpověď</h6>";
elseif(($vzkaz=="") or ($jmeno=="")):
echo "<h6>Nejsou vyplněny požadované údaje</h6>";
else:
$ext = fopen("kniha.body", "w");
$mail = HTMLSpecialCHars($mail);

if($mail == "")
$mail = "";
else
$mail = antispam($mail,$mail);
$mail = str_replace("@", "(zavináč)", $mail);

$jmeno = HTMLSpecialCHars($jmeno);
$vzkaz = HTMLSpecialCHars($vzkaz);
$tab = "<tr><td width=\"300\" align=\"left\"><strong>".$jmeno."</strong></td>
<td align=\"right\">".Date(" d/m/Y H:i:s")."</td>
</tr><tr><td colspan=\"2\" align=\"left\">".$vzkaz."</td>
</tr><tr><td width=\"400\" align=\"left\">".$mail."</td>
</tr><tr><td colspan=\"2\"><hr size=\"1\"></td>
</tr>";
fputs($ext, "$tab");
fputs ($ext, "$obsah");
FClose($ext);
@$ext = fopen("kniha.body", "r");
@fpassThru($ext);

endif;
else: @$ext = fopen("kniha.body", "r");
@fpassThru($ext); endif;

?>
</table>

poradí, prosím, někdo co kde přepsat/změnit aby ta kniha běžela?
Matty
Profil
zoldak21
aby ta kniha běžela?
Koukal jsem a ... běží.
Tobě spíše vadí ty chyby.
$action = $_POST['action'];
$jmeno = $_POST['jmeno'];
$mail = $_POST['mail'];
$vzkaz = $_POST['vzkaz'];
$kontrola = $_POST['kontrola'];

Tohle je zdrojem většiny chyb. Když vejdeš na stránku, nic neodesíláš a to vadí. Dej to do nějaké podmínky.
zoldak21
Profil
Ta kopci.cz/kniha.php jo ta běží. Tu jsem ale uvedl jen pro to že když jsem jí zkoušel tak běžela. Ale když jsem jí pak vložil do stránky (ten druhej odkaz dlouhej) tak tam už neběží přitom to je ta samá kniha.Akorát že poprvý ja sama a podruhý je vložena do stránky.
Matty
Profil
zoldak21
U toho druhého (dlouhého) nemáš nastavená práva pro zápis do souboru "kniha.body". Změň CHMOD tohoto souboru na 777.
zoldak21
Profil
Supr,díky za upozornění. Už to běží.
žoldák
Toto téma je uzamčeno. Odpověď nelze zaslat.