Autor Zpráva
virgo86
Profil
Potřebuji vložit jmeno z formuláře do souboru .rtf při kontole na obrazovce je řetězec v pořádku ale v souboru je špatné kodovaní. kde vložit kodovaní aby to fungovalo...využivám utf-8 díky.

formulář:
  <form action="score.php" method="post">

      <p>Jmeno<input type="text" name="name"></p>

      <p align="center"><input type="submit" value="vytvořit"></p>

    </form>

score.php
 
 $name = $_POST['name'];
  
  // check that all the data was received

  
      // create a string containing the score to one decimal place
     if(!$name)
      {
      echo '<h2>Nezadaly jste potřebné údaje</h2>';
      ?>
      <h1>Ukázka využití</h1>
    <p>Zde vytvořím soubor o pohledávce ze zadaných údajů.</p>
    <p>Vložíme potřebné údaje:</p>

    <form action="score.php" method="post">

      <p>Jmeno<input type="text" name="name"></p>

      <p align="center"><input type="submit" value="vytvořit"></p>

    </form>
    <?php
      listy();
      konec();
      exit;
      
      }
      echo "<h1>Výsledek</h1><p>Vše v pořádku pohledávka na jmeno <strong> $name </strong> vytvořena.</p>";

      // provide links to scripts that generate the certificates
      echo '<p>Soubor s příponou (RTF) .</p>';
      echo '<form action="rtf.php" method="post">';
      echo '<center>
              <input type="submit" value="zobrazit">
            </center>';
           echo '<input type="hidden" name="name" value="'.$name.'">';
      echo '</form>';
listy();
konec();

rtf.php
<?php
  //create short variable names
  $name = $HTTP_POST_VARS['name'];
  $score = $HTTP_POST_VARS['score'];
  // check we have the parameters we need
  if(!$name)
  {
    echo '<h1>Error:</h1>Ttohle page was called incorrectly';
  }
  else
  {
    //generovaní funkcí headers
    //zde jsem to zkoušel ruzně např. header( 'Content-type: application/msword; charset=utf-8');
 
     header( 'Content-type: application/msword');
    header( 'Content-Disposition: inline, filename=cert.rtf');


    $date = date( 'F d, Y' );
  
    // otevření souboru
        $filename = 'PHPCertification.rtf';
    $fp = fopen ( $filename, 'r' );

    //read our template into a variable
    $output = fread( $fp, filesize( $filename ) );
  
    fclose ( $fp );
  
    // replace the place holders in the template with our data
    $output = str_replace( '<<NAME>>', strtoupper( $name ), $output );
    $output = str_replace( '<<Name>>', $name, $output );
    $output = str_replace( '<<mm/dd/yyyy>>', $date, $output );
   
    // send the generated document to the browser
    echo $output;
  }
?>

Opět je to jen testovací verze kde se to učím. nejsou tam ruzné vychytávky. díky za rady
Alphard
Profil
V jakém kódování jsou uloženy soubory a co je uvedeno v meta? Vše se musí shodovat.
Překódovat lze pomocí iconv().
virgo86
Profil
Alphard:
tak jak jsem napsat kodovaní použivám utf-8 všude tedy soubor uložen v tomto kodovaní tak i hlavička je utf-8. Kromě souboru rtf.php kde není kodovaní žadné.
Koukal jsem do manuálu na strankách php a můžu nastavit kodovaní tímto řádkem?: /nevím zda jsem zpravně zadal to kodovaní bylo tam binary/
header ( "Content-Transfer-Encoding:utf-8" );

ale to stejně nefunguje. pořád se uloží špatné znaky.
Překódovat lze pomocí iconv().
pokud jsem spravně pochopil funkci iconv() překoduje řetězec kde první parametr je puvodní kodovaní ale já nevím jaké to je:( není žadné zadané

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: