Autor Zpráva
kordy
Profil
Dobrý večer
Moc se mi líbil tenhle článek:http://www.jakpsatweb.cz/php/soubory.html
Použil jsem zápis do souboru. Problém je v tom, že si tam zapisuji cestu a při načítání tam vznikne mezera.
No a pak mi samozřejmě cesta nesedí. Nevíte jak toto řešit? Cookies vylučuji rovnou, protože potřebuji, aby se mohli zapisovat data všech uživatelů ne jen většina.
jenikkozak
Profil
kordy:
Kde ti vzniká mezera? Ukaž svůj skript, třeba tam budeš mít chybu.
kordy
Profil
Je dost dlouhej a pak jsem zjistil, že nevzniká právě načítáním. Pak mi ale neni jasné kde vzniká... Kód přiložím moment.
kordy
Profil
<?php
$ip = $_SERVER['REMOTE_ADDR'];
  if(!empty($_POST["ulozit"])){
	$allowDirs = array('s_ucasti_rk', 'bez_ucasti_rk');
    $path = in_array($_POST['dir'], $allowDirs) ? "$_POST[dir]/$ip/$_POST[soubor3] $_POST[soubor]/$_POST[soubor3]$_POST[soubor].php" : "default/$_POST[soubor].php"; 
	mkdir ($_POST[dir]."/".$ip."/".$_POST[soubor3]." ".$_POST[soubor], 0777); 
	mkdir ($_POST[dir]."/".$ip."/".$_POST[soubor3]." ".$_POST[soubor]."/galerie ", 0777); 
	$w = file_put_contents($path, 'aaa');
    if($w)
		echo ("šecko to fachá můžeš bejt klidnej :)");
	else
      echo("Někde se stala chyba!"); // vypsání výsledku¨
$c1=$_POST[dir];
$c2=$_POST[soubor3]." ".$_POST[soubor];
$zapis = fopen($c1."/".$ip."/soubor.txt", "w");
fwrite($zapis, $c1."/".$ip."/".$c2."/galerie"."\n");
$zapis = fopen($c1."/".$ip."/soubor.txt", "a");
fwrite($zapis, $c1."/".$ip."/".$c2."/".$c2.".php");
fclose($zapis);

$pis = fopen($path , "a");
fwrite($pis, file_get_contents ( 'vypis.txt' ));
fclose($pis); 
  
  }
$soubor = fopen( "s_ucasti_rk/88.102.254.72/soubor.txt", "r" ); // tohle je samozřejmě nepoužitelné dal jsem to tam, abych se ujistil, že chyba neni v cestě....
$prvni=fgets($soubor); 
$druhy=fgets($soubor);
?>

<HTML>
<HEAD><TITLE>Upload</TITLE></HEAD>
<BODY>
<b>Zadejte jmeno souboru:</b>
<FORM ACTION="akce.php" METHOD="post" ENCTYPE="multipart/form-data">
<INPUT TYPE="file" NAME="soubor" SIZE="40">
<INPUT TYPE="submit" NAME="ok" VALUE="Upload">
</FORM>
<?php 
$soubor_name=($_FILES["soubor"]["name"]);
$soubor=($_FILES["soubor"]["tmp_name"]);
$ok=($_POST["ok"]);

if ($ok == "Upload" && $soubor_name!="")
{
    if (move_uploaded_file($soubor,$prvni."/".$soubor_name))
        {
        chmod ($prvni."/".$soubor_name, 0777);
        echo "<b>Soubor $soubor_name byl nahran na server</b><BR>";
        }
    else
        {
        echo "<b>Chyba - soubor nebyl nahran</b><BR>".$prvni."/".$soubor_name;
        }
}
?>
</BODY>
</HTML>
kordy
Profil
Pro ty komu se nechce číst všechno řádek 26 načítání souboru.
Řádek 46-53 použití načteného jinde by podle mě chyba logicky neměla být. Když jsem se koukal do toho souboru(řádek 14-19) cesta je skutečně napsána zprávně bez mezery tak sem z toho blbej.
Vím, že je ten kód otřesnej, ale teď potřebuji opravit tuhle jedinnou funkčnosti bránící chybu.
jenikkozak
Profil
Když jsem chtěl kód, myslel jsem, že přidáš problematickou část.
Tenhle asi taky nebude kompletní, kde bereš třeba $_POST[soubor3]?
kordy
Profil
To myslím neřeší problém. Mohl bych sem klidně dodat další soubor, ale byl by zbytečný chyba musí být zde.
Ano mohl jsem sem pokopírovat jen to co jsem vypsal v #5, ale pro případ, že by byla chyba někde jinde jsem přiložil soubor, kde s největší pravděpodobností je chyba. Jak jsem psal cesta v tom txt souboru je to napsáno zprávně, takže chyba bude nejspíš na řádcích 40-53
Chro
Profil
kordy:
Víš, že pokud načteš ze souboru řádek s obsahem do proměnné funkcí fgets(), může mít řádek na konci řádkový zlom \n?
Odstraň ho:
...
$prvni = trim(fgets($soubor));
$druhy = trim(fgets($soubor));
fclose($soubor);
kordy
Profil
Díky moc už to funguje! :) Můžete lock

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: