Autor Zpráva
lelek
Profil *
dobry den mam docela divny problem jelikoz se mi pise chyba v textu promenne coz je divne jelikoz se obsah promenne bere pouze jako text (jestli to dobre chapu).
eror:
( ! ) Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in F:\VertrigoServ\www\write.php on line 31

kod:
<?php
$before = "
<?php
session_start();
?>
<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"
  \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">
<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">

<head>
 <?php  echo \" <title>$title</title> \"; ?> 
    <meta http-equiv=\"content-type\" content=\"text/html;charset=utf-8\" />

<style>

.back{
    font-size:10pt;
    margin-top:20px;
}

</style>
    
</head>

<body>
<?php
if(!empty($_SESSION[\"name\"]) AND !empty($_SESSION[\"id\"]))
{
 
 echo \"
 <table>
  <tr>
  <td>
  <a href=\"/index.php\">Home</a>
  </td>
   <td>
    <p>Hi \".$_SESSION['name'].\"</p>
   </td>
   <td>
    <a href='\".$_SERVER[\"PHP_SELF\"].\"?action=odhlasit_se'>Logout</a>
   </td>
  </tr>
  </table>

 <table border=1 width=40%>
 <tr>
 <td width=20%><center><a href=\"/notlogged.php\">topics</a></center></td>
 <td width=20%><center><a href=\"/notlogged.php\">articles</a></center></td>
 <td width=20%><center><a href=\"/notlogged.php\">help</a></center></td>
 <td width=20%><center><a href=\"/notlogged.php\">discussion</a></center></td>
 <td width=20%><center><a href=\"/add.php\">add</a></center></td>
 </tr>
 </table>
 
 echo \"<p></p>\";
 
 echo \"<p>
"
?>
<?php
$mid = "
</p>\";
} else {
//V případě, že tyto proměnné jsou prázdne, zobrazime přihlašovací formulář a odkaz s prázdným atributem href    
 
 echo \"
<form action=\"overeni.php\" method=\"POST\">
<!--  overeni.php je skript pro ověření zadaných dat, tzn. po klíknutí na tlačítko Ok se data pošlou do tohoto souboru metodou POST  -->
<table>
 <tr>
 <td>
  <a href=\"/index.php\">Home</a>
  </td>
  <td>  
   <div><label for=\"login\">Email:</label></div>
  </td>
  <td>
    <div><input type=\"text\" name=\"login\"></div>
<!--  Do textového pole se jménem login ( name=\"login\" ) uživatel zadá svůj login  -->
  </td>
  <td>
    <div><label for=\"heslo\">Password:</label></div>
  </td>
  <td>
    <div><input type=\"password\" name=\"heslo\"></div>
<!--  Do pole se jménem heslo ( name=\"heslo\" ) uživatel zadá svoje heslo  -->
  </td>
  <td>
    <div><input type=\"submit\" name=\"go\" value=\"Ok\"></div>
<!--  tlačítko ( type=\"submit\" ) odesíla data do souboru overeni.php  -->
  </td>
  <td>
  <div class=\"back\"><a href=\"registration.php\"><h2>Sign up</h2></a></div>
  </td>
 </tr>
</table>

</form>
 \";
 
  
 echo \"
 <table border=1 width=40%>
 <tr>
  <td width=20%><center><a href=\"/notlogged.php\">topics</a></center></td>
  <td width=20%><center><a href=\"/notlogged.php\">articles</a></center></td>
  <td width=20%><center><a href=\"/notlogged.php\">help</a></center></td>
  <td width=20%><center><a href=\"notlogged.php\">discussion</a></center></td>
  <td width=20%><center><a href=\"/notlogged.php\">add</a></center></td>
 </tr>
 </table>
 \";
 
 echo \"<p></p>\";
 
 echo \"<p>
  "
?>
<?php
$after = "
</p>\";
}
?>
</body>
</html>
"
?>



pardon kousek skriptu jsem vynechal radek 31 v mem skriptu je zdejsi 27 radek
Joker
Profil
lelek:
Uf.
Pokud má uvnitř řetězce ve dvojitých uvozovkách být text $_SESSION, musí se escapovat dolar.
Jinak by bylo mnohem jednodušší použít HEREDOC syntaxi.

A snad se radši ani nebudu ptát, k čemu to má sloužit.
mimochodec
Profil
Joker:
A snad se radši ani nebudu ptát, k čemu to má sloužit.
:)

lelek:
Můžu se zeptat, k čemu to má sloužit?
rafej
Profil
if(!empty($_SESSION[\"name\"]) AND !empty($_SESSION[\"id\"]))
Ta zpětná lomítka před uvozovkami tam nemají co dělat. To se používá jen uprostřed řetězců! Tohle je normální řádek PHP kódu.
Joker
Profil
rafej:
To není kód, to celé je jeden ohromný řetězec. Podle toho čeho chce docílit tam uvozovky mohou být správně, ale v tom případě musí escapovat i dolar.
rafej
Profil
Nevšimla jsem si, že to celé cpe do řetězce. Koukala jsem jen na chybný řádek. Tohle zavání použitím eval.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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