Náštevná kniha //syntax error, unexpected T_VARIABLE

Programovacie jazyky, rady, poradňa...
Fata! ChaoS
Star
Star
Používateľov profilový obrázok
Príspevky: 650
Registrovaný: 12 apr 2006, 20:23
Bydlisko: Tvrdošovce
Kontaktovať používateľa:

Náštevná kniha //syntax error, unexpected T_VARIABLE

Príspevok od používateľa Fata! ChaoS »

Takže tu mám kód

Kód: Vybrať všetko

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
<LINK href="styl.css" rel="stylesheet" type="text/css">
<title>Kniha návštev - PHP</title>
</head>
<body>
<table width="500" align="center">
<tr><td width="500"><center><font class=nadpis>Kniha návštev</font><br><br>
<font class="male">povinné údaje označeny červeným písmem</font></center>
<hr color="#00008B"><br>

<table border="0" cellspacing="0" cellpadding="0" align="center">
<form method="post">
<tr><td width=120 class=povinne>Jméno:</td>
<td><input type="text" name="jmeno" size="30" value="<?php
if ($jmeno=="" || $email=="" || $popis==""): 
echo $jmeno;
endif;
?>"></td></tr>
<tr><td width=120 class=povinne>E-mail:</td>
<td><input type="text" name="email" size="30" value="<?
if ($jmeno=="" || $email=="" || $popis==""): 
echo $email;
endif;
?>"></td></tr>
<tr><td width=120 class=nepovinne>Web (i s http://):</td>
<td><input type="text" name="web" size="30" value="<?
if ($jmeno=="" || $email=="" || $popis==""): 
echo $web;
endif;
?>">
<input type="hidden" name="odeslano" value="ano"></td></tr>
<tr><td valign=top width=120 class=povinne>Text zprávy:</td>
<td><textarea cols="29" rows="5" name="popis"><?
if ($jmeno=="" || $email=="" || $popis==""):
echo $popis;
endif;
?></textarea></td></tr>
<tr><td width=120></td>
<td><center><input type="submit" value="Odeslat">&nbsp;&nbsp;&nbsp;<input type="Reset"
value="Vymazat"></center></td></tr></form></table>

<?
if ($odeslano=="ano"):
if ($jmeno=="" || $email=="" || $popis==""): 
echo "<center><br><font class=male>musíte vyplnit všetky povinné údaje<br></font></center>";
else:
$name = "<font class=jmeno>$jmeno</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=\"#00008B\"><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="#00008B"><br>
<?
if (File_Exists ("book.dat")):
$fp = FOpen ("book.dat", "r");


FPassThru($fp);
endif;
?>

</body>
</html>
No píše mi chybu na 50. riadku a to je

Kód: Vybrať všetko

$e_mail = "<A class="odkaz" HREF=mailto:$email>$email</A><BR>\n";
Prosím Vás, čo tam je zle? :cry:
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Máš tam zle tie úvodzovky. Uprav to na:
1.

Kód: Vybrať všetko

$e_mail = "<A class=\"odkaz\" HREF=\"mailto:$email\">$email</A><BR>\n";
2.

Kód: Vybrať všetko

$e_mail = "<A class='odkaz' HREF='mailto:$email'>$email</A><BR>\n";
Fata! ChaoS
Star
Star
Používateľov profilový obrázok
Príspevky: 650
Registrovaný: 12 apr 2006, 20:23
Bydlisko: Tvrdošovce
Kontaktovať používateľa:

Príspevok od používateľa Fata! ChaoS »

Jj díky chrono, ale stále mi píše tú istú chybu :shock:

No ja neviem veď si to vyskúšajte tu máte k tomu ešte CSS

Kód: Vybrať všetko

TEXTAREA{
FONT-SIZE: 9 pt;
font-family : Verdana;
font-weight : normal;
}

INPUT {
FONT-SIZE: 9 pt;
font-family : Verdana;
font-weight : normal;
}

.nadpis {
font-family : Arial CE, Arial, Helvetica, sans-serif;
font-weight : bold;font-size : 15pt;
color : #00008B;
}

.povinne {
FONT-SIZE: 9 pt;
font-family : Verdana;
font-weight : bold;
color : Red;
}

.male {
FONT-SIZE: 7 pt;
font-family : Verdana;
font-weight : bold;color : Red;
}

.nepovinne {
FONT-SIZE: 9 pt;font-family : Verdana;
font-weight : bold;
}

.jmeno {
FONT-SIZE: 11 pt;
font-family : Verdana;
 font-weight : bold;
color : #00008B;
}

.odkaz {
FONT-SIZE: 10 pt;
font-family : Verdana;
 font-weight : bold;
color : #00008B;
text-decoration : none;
}

.odkaz:HOVER {
FONT-SIZE: 10 pt;
font-family : Verdana;
font-weight : bold;
color : #00008B;
textdecoration: underline;
}

.cas {
FONT-SIZE: 10 pt;
font-family : Verdana;
font-weight : bold;
color : #00008B;
}

.text {
FONT-SIZE: 10 pt;
font-family : Verdana;
color : Black;
font-weight : bold;
}
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Na riadku 49 a 57 ti chýba na konci bodkočiarka.
Fata! ChaoS
Star
Star
Používateľov profilový obrázok
Príspevky: 650
Registrovaný: 12 apr 2006, 20:23
Bydlisko: Tvrdošovce
Kontaktovať používateľa:

Príspevok od používateľa Fata! ChaoS »

Díky chrono si super, už to ide. Len mám stým problém, že sa mi to musí zmestiť do 300 pixelov v šírke a aj keď som to dal na 200 tak to tak nieje.
Ale neviem prečo, leebo veď kukni tu:
http://chaosystem.blue-war.net/contact.php?id=kniha

a kukni tu:
http://chaosystem.blue-war.net/includes/kniha.php

To mi prečo robí, nevieš náhodou?
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

V css máš nadefinované veľkosti fontu ako napr. "10 pt". Tá medzera tam byť nesmie!
Keď tie medzery odstrániš, bude to už menšie, ale stále to bude väčšie ako 200px. To preto, lebo je to limitované veľkosťou INPUT a TEXTAREA. Pomohlo by, keby si tú tabuľku prerobil tak, aby ten nápis bol nad vstupným políčkom, a nie vedľa neho.

Pri tom zadaní webu nemusíš vyžadovať, aby tam bolo aj http://. Dá sa to tam potom podľa potreby pridať v php. Napr. toto otestuje, či premenná $web niečo obsahuje. Ak áno, skontroluje sa, či je na začiatku http://. Ak tam nie je, tak sa tam pridá.

Kód: Vybrať všetko

if ($web != "" && !preg_match("/^http:\/\//", $web)) {
        $web = "http://" . $web;
}
Tu je upravená verzia toho súboru (aby si videl, ako som to s tou tabuľkou myslel):

Kód: Vybrať všetko

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
<LINK href="styl.css" rel="stylesheet" type="text/css">
<title>Kniha návštev - PHP</title>
</head>
<body>

<form method="post" class="kn">
<table width="200" align="center" border="0" cellspacing="0" cellpadding="0">
<tr><td><font class=nadpis>Kniha návštev</font></td></tr>
<tr><td><font size="1"><u>Počiarknuté položky sú povinné!</u></font></td></tr>
<tr><td><hr color="#00008B"></td></tr>

<tr><td class=povinne>Prezývka:</td></tr>
<tr><td><input type="text" name="meno" size="30" value=""></td></tr>

<tr><td class=povinne>E-mail:</td></tr>
<tr><td><input type="text" name="email" size="30" value=""></td></tr>

<tr><td class=nepovinne>Web:</td></tr>
<tr><td><input type="text" name="web" size="30" value=""><input type="hidden" name="odeslano" value="ano"></td></tr>

<tr><td valign=top width=120 class=povinne>Text správy:</td></tr>
<tr><td><textarea cols="29" rows="5" name="popis"></textarea></td></tr>

<tr><td>&nbsp;</td></tr>

<tr><td><center><input type="submit" value="Odoslať">&nbsp;&nbsp;&nbsp;<input type="Reset" value="Vymazať"></center></td></tr>

<tr><td><hr color="#00008B"></td></tr>
</table>
</form>


</body>
</html>
a tu je css (dal som tam len tú potrebnú; oproti tvojmu som tam pridal ".kn tr")

Kód: Vybrať všetko

body {
	background:#ecf0f6;
	color:#7D7D7D;
	font-family: Verdana, Arial, Helvetica, sans-serif;
	margin:0px;padding:0;
}

textarea {
	font-size: 6pt;
	font-family : Verdana;
	font-weight : normal;
}

input {
	font-size: 6pt;
	font-family : Verdana;
	font-weight : normal;
}

.nadpis {
	font-family : Arial CE, Arial, Helvetica, sans-serif;
	font-weight : bold;
	font-size : 15pt;
	color : #00008B;
}

.povinne {
	font-size: 6pt;
	font-family : Verdana;
	font-weight : bold;
	text-decoration : underline;
}

.nepovinne {
	font-size: 6pt;
	font-family : Verdana;
	font-weight : bold;
}

.kn tr {
	text-align: center;
}
// chrono: Keď to chceš vložiť do nejakého iného html, musíš použiť tag <iframe>, alebo to tam vkladaj bez zbytočných vecí (teda len <form>...</form>).
Fata! ChaoS
Star
Star
Používateľov profilový obrázok
Príspevky: 650
Registrovaný: 12 apr 2006, 20:23
Bydlisko: Tvrdošovce
Kontaktovať používateľa:

Príspevok od používateľa Fata! ChaoS »

Podľa tvojich pomôcok som to spravil po svojom a už to funguje. Lenže zas v id=kniha píše
Warning: fopen(book.dat) [function.fopen]: failed to open stream: Permission denied in
ale chmod mám nastavené na 777, tak neviem prečo, ale zas v includes/kniha.php mi to ide v pohode.

Vedel by si kde je problém? asi je to už na teba veľa, ja viem, že som niekedy otravný, ale tak čo somnov. :oops:

PS: Nevieš čím by sa dalo spraviť tak aby sa vždy zobrazovali príspevky, lebo keď odídem a prídem naspať k náštevnej knihe tak niesú tam tie príspevky, len keď napíšem.
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Neviem, ako to presne máš urobené (z toho výstupu sa to nedá určiť). Možno sa to chce zapisovať do súboru v inom adresári.
Stále to máš zle vložené. To html súboru nemôžeš vložiť iný html súbor aj s hlavičkami...
Pošli php súbory, a ja sa na to pozriem.
Fata! ChaoS
Star
Star
Používateľov profilový obrázok
Príspevky: 650
Registrovaný: 12 apr 2006, 20:23
Bydlisko: Tvrdošovce
Kontaktovať používateľa:

Príspevok od používateľa Fata! ChaoS »

No tak tu máš ten php súbor, ale kebyže neprídeš na problém, tak nevadí skúsim to spraviť pomocou databázy. Aj keď stým nemám veľké skúsenosti, ale phpbb mi stým pomôže :)
Prílohy
kniha.rar
(992 Bajtov) 82 stiahnutí
Fata! ChaoS
Star
Star
Používateľov profilový obrázok
Príspevky: 650
Registrovaný: 12 apr 2006, 20:23
Bydlisko: Tvrdošovce
Kontaktovať používateľa:

Príspevok od používateľa Fata! ChaoS »

Super už mi to funguje robilo mi to preto, lebo contact.php bol v inej zložke ako book.dat lebo book.dat bolo v includes s kniha.php, ale čudné bolo, že keď som dal v kóde "book.dat" na "http://chaosystem.blue-war.net/includes/book.dat" tak to nenačítalo asi preot, lebo http nemôžem dávať do úvodzoviem. Ale nakoniec som spravil book.dat v zložke kde je aj contact.php a tam to už šlo :D takže díky za všetko chrono :wink: len tak ďalej.
Fata! ChaoS
Star
Star
Používateľov profilový obrázok
Príspevky: 650
Registrovaný: 12 apr 2006, 20:23
Bydlisko: Tvrdošovce
Kontaktovať používateľa:

Príspevok od používateľa Fata! ChaoS »

Bolo všetko v pohode, lenže dnes som si nainštaloval najnovšiu operu 9.20 a zas mi to blne, písmo je v strede aj keď tam žiaden center nieje a tie čiary sú zas dlhé, To prečo robí na novej opere?

Viem, že na starej mi nešli pluginy a na novej idú.
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

V tom html ti chýba DOCTYPE.

Väčšina tagov je html, ale máš tam nejaké pre xhtml (napr. niektoré img).

Ten formulár pre odosielanie máš urobený takto:

Kód: Vybrať všetko

<table>
<form>
...
</form>
</table>
To je zlé, kedže tag table nemôže obsahovať tag form (iba tbody, thead, tr). Urob to takto:

Kód: Vybrať všetko

<form>
<table>
...
</table>
</form>
Ten formulár je vložený do tabuľky:

Kód: Vybrať všetko

<table>
<hr>
...
To je ďalšie použitie nesprávneho tagu v tabuľke (tejto tabuľke chýba uzatvárací tag).
Fata! ChaoS
Star
Star
Používateľov profilový obrázok
Príspevky: 650
Registrovaný: 12 apr 2006, 20:23
Bydlisko: Tvrdošovce
Kontaktovať používateľa:

Príspevok od používateľa Fata! ChaoS »

Díky, už to fičí na plné pecky, sám by som nato nikdy neprišiel. Si fakt super, nikdy som si myslel, že toľko možných chýb existuje :lol:
Napísať odpoveď