PHP správné napojení 2 kodu TXT souboru – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

PHP správné napojení 2 kodu TXT souboru – PHP – Fórum – Programujte.comPHP správné napojení 2 kodu TXT souboru – PHP – Fórum – Programujte.com

 

arcam0
Newbie
7. 2. 2018   #1
-
0
-

Dobrý den, mám tu menší problém se spojením dvou funkcí php pro dvě věci do jednoho přes echo '', ""

Sceenshot jak by to asi mělo vizuálně vypadat: http://prntscr.com/ibapun

Připojen obrázek.

Tyto dva kody bych chtěl nějak rozumě spojit aby to vypadalo jako na obrázku plně funkční.

Už jsem to zkoušel tolikrát jak by to šlo že mě už žádné řešení snad ani nenapadá.

Kod výpisu:

<?php

/*
   Zpracovávaci php pro výpis > zobrazeni
   
*/


// vypíše data na stranku



$myfile = fopen("data.txt", "r") or die("soubor nenalezen!");

echo "<table>";
while(!feof($myfile)) {
 
  echo "<tr><td width='800' bgcolor='#00cc00'><label> DATUM:</label><label>         ČAS:</label><label>       ID: </label><label>                                             JMÉNO: </label>";
  echo "<tr><td width='800' bgcolor='#d6d6c2' style='color: blue'><br><hr><br>";
  echo fgets($myfile) . "<br><br>";
  echo '<input id="checkBox" type="checkbox"><br>';
  echo "<hr></td></tr>";
}

echo "</table>";
fclose($myfile);





// mazani

kod pro mazání:


<?php

if(isset($_POST['index']) && is_array($_POST['index'])) {

  $radky = file('data.txt');

  foreach($_POST['index'] as $klic => $hodnota) {

    $radky[$hodnota] = '';

  }

  $text = join('', $radky);

  file_put_contents('data.txt', $text);
  
  

  //nebo php 5 

  //$fp = fopen('soubor.txt', 'w');

  //fwrite($fp, $text);

  //fclose($fp);

}



$radky = file('data.txt');

?>
<form name="smaz" action="<?php echo $_SERVER['REQUEST_URI']; ?>" method="post">

<?php

for($i = 0; $i != count($radky); ++$i) {

  echo '  '.$radky[$i].'><meta charset="UTF-8"><input type="checkbox" name="index[]" value="'.$i.'"><br>'."";

}

?>
	
<p align="right">
  <input type="submit" name="sub" value="Smazat vybraný řádek">
 </p>
  

</form>
Nahlásit jako SPAM
IP: 188.134.232.–
peter
~ Anonymní uživatel
4016 příspěvků
7. 2. 2018   #2
-
0
-

Zadani je nejasne.
Tvuj pokus chybi. Takze ti nemuzeme rici, co delas spatne.
Neni mi jasne, co se pokousis udelat.

Tipnul bych, ze se pokousis udelat tabulku s radky
[ ] | text | text
a dole to zaskrtnes a kliknes na smazat.
1) V tom pripade ale input musi obsahodat id radku z sql nebo textoveho souboru. Nebo neco, co ten radek jednoznacne identifikuje. S tim souborem je to prave nesikovne, protoze kdyz 2 uzivatele zobrazi stejnou stranku, udes tam mit id=5.radek. Jeden zaskrtne ten checkbox, klikne smazat. Druhy za chvili udela totez bez obnoveni stranky, tak se smaze pokazde jiny radek. Jednou 5., podruje 6.
2) Vypis echo bych udelal az po te, co to mas v promenne. Kvuli rychlejsimu zobrazeni. Nebo, az $str presahne urcitou velikost.
3) inputy je treba sloucit posle name jako pole, treba zaskrtni[]
4) inputy nesmi mit stejne id, pokud jsou na jedne strance vicekrat
$str .=  '<input id="checkBox" type="checkbox"><br>'; -- tvoje
$str .=  '<input id="checkBox" type="checkbox" name="zaskrtni[]"><br>'; -- uprava1
$str .=  '<input type="checkbox" name="zaskrtni[]"><br>'; -- uprava2
$str .=  '<input type="checkbox" name="zaskrtni[]" value="5"><br>'; -- uprava2, value pro radek 5
<?php if (isset($_POST['zaskrtni'])) var_dump($_POST['zaskrtni']); ?> -- ti vypise vsechno zaskrtnute

Zapis inputu, viz https://www.jakpsatweb.cz/…rmulare.html
 

Nahlásit jako SPAM
IP: 2001:718:2601:258:1c2c:84...–
arcam0
Newbie
12. 2. 2018   #3
-
0
-

Pokouším se udělat toto:

<body>
<div id="container">
<form name="smaz" action="<?php echo $_SERVER['REQUEST_URI']; ?>" method="post">
<div id="Layer2" style="position:absolute;overflow:auto;text-align:left;left:0px;top:333px;width:870px;height:581px;z-index:7;" title="importdatabox">
<!-- importdata cp -->
<div id="Html1" style="position:absolute;left:10px;top:17px;width:829px;height:421px;z-index:0">
<br>
<p align="right">
  <input type="submit" name="sub" value="Smazat vybraný řádek">
 </p>
 <br>
<?php

/*
	vypis seznamu členů přes tr td
*/

// data location:./../data.txt

$myfile = fopen("./../data.txt", "r") or die("soubor nenalezen!");
echo "<span style='color: green;'>*****************************************************************************************************************************************************************</span><br>";
echo "<table>";
while(!feof($myfile)) {
 
  echo "<tr><td width='800' bgcolor='#00cc00'><label> DATUM:</label><label>         ČAS:</label><label>       ID: </label><label>                                             JMÉNO: </label>";
  echo "<tr><td width='800' bgcolor='#d6d6c2' style='color: blue'><br><hr><br>";
  echo fgets($myfile) . "<br><br>";
  echo "<input id='checkBox' type='checkbox' name='' value=''><br>";
  // mazani check
  for($i = 0; $i != count($radky); ++$i) {
  
  echo '  '.$radky[$i].'><tr><td width="800" bgcolor="#00cc00"><meta charset="UTF-8"><input type="checkbox" name="index[]" value="'.$i.'"><br>'."";

}
  
  
  echo "<hr></td></tr>";
 
}

echo "</table>";
fclose($myfile);



// mazani
if(isset($_POST['index']) && is_array($_POST['index'])) {

  $radky = file('./../data.txt');

  foreach($_POST['index'] as $klic => $hodnota) {

    $radky[$hodnota] = '';

  }

  $text = join('', $radky);

  file_put_contents('./../data.txt', $text);

 

  //fwrite($fp, $text);

  //fclose($fp);

}



$radky = file('./../data.txt');



 echo "<span style='color: green;'>*****************************************************************************************************************************************************************</span><br>";



?>


<br>
</div>
</div>

A hlásí tu tuto chybu, při čemž ani nelze smazat vybraný řádek:

Připojen obrázek.

Nahlásit jako SPAM
IP: 188.134.232.–
peter
~ Anonymní uživatel
4016 příspěvků
12. 2. 2018   #4
-
0
-

Na radku 96 mas hadam toto:
for($i = 0; $i != count($radky); ++$i) {
'Undefined variable: radky' - obvykle znamena, ze $ radky neexistuje.

$radky ziskas asi o 10 radku niz (a nebo o dalsich asi 15 niz) pres
$radky = file('./../data.txt');

Obavam se, ze ti unikaji souvislosti. Zkus vzdycky mrknout na online dokumentaci k funkci a nejake priklady tam Napr php.net/f_open

function zpracujRadek($i,$row)
  {
  return '<tr><td>'.implode('</td><td>',explode('|',$row)).'</td></tr>';
  }

$str = '<table>';

$path = "./../data.txt"
$fp   = fopen($path, "r") or die("soubor nenalezen!");
$i    = 0;
while(!feof($fp))
  {
  $row  = fgets($myfile);
  $str .= zpracujRadek($i,$row);
  $i++;
  }

$str .= '</table>';
echo $str;

To $i potom potrebujes prave pro ten input, ktery pridas do funkce zpracujRadek, plus ty dalsi veci, co tam delas. Ty totiz potrebujes pro ten checkbox jednoznacny identifikator. Ty mas ted na strance, v html, treba 50 checkboxu, ktere se jmenuji id=checkBox nebo take name=''. A jak poznas, ktery znich je zaskrtnuty? Proto tam id nesmis mit. Name=checkBoxy[]. Value, tam prijde to $i. Kdyz to pak odesles pres post, tak to vyrobi php pole
$_POST['checkBoxy'] = array(3,7); // vypises si treba takto: var_dump($_POST['checkBoxy'])
A s tim pak muzes v php pracovat.


 

Nahlásit jako SPAM
IP: 2001:718:2601:258:4dbc:38...–
peter
~ Anonymní uživatel
4016 příspěvků
12. 2. 2018   #5
-
0
-

Co kdyby ses vykaslal na php a nejdriv si ten formular udelal v html? A kdyz pak klikne odeslat a var_dump($_POST); zobrazi spravne data, tak ma smysl to propojovat na soubory.

Nahlásit jako SPAM
IP: 2001:718:2601:258:4dbc:38...–
Kit+15
Guru
12. 2. 2018   #6
-
0
-

#3 arcam
Hned za komentář "data location" dej tohle: 

$radky = file('./../data.txt');
Nahlásit jako SPAM
IP: 194.228.68.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
arcam0
Newbie
14. 2. 2018   #7
-
0
-

Tak jsem to upravil takto, zdá se že to funfuje více méně jak má, akorát při načtení php souboru s kodem mám problém s tím že to maže záznamy..


<?php

if(isset($_POST['index']) && is_array($_POST['index'])) {

  $radky = file('data.txt');

  foreach($_POST['index'] as $klic => $hodnota) {

    $radky[$hodnota] = '';

  }

  $text = join('', $radky);

  file_put_contents('data.txt', $text);
  
  // pro  php5
  // $fp = fopen('soubor.txt', 'w');

  // fwrite($fp, $text);

  // fclose($fp);

}



$radky = file('data.txt');

?>
<form name="smaz" action="<?php echo $_SERVER['REQUEST_URI']; ?>" method="post">

<?php


for($i = 0; $i != count($radky); ++$i) {
echo "<table>";
   echo "<tr><td width='800' bgcolor='#00cc00'><label> DATUM:</label><label>         ČAS:</label><label>       ID: </label><label>                                             JMÉNO: </label>";  
   echo "<tr><td width='800' bgcolor='#d6d6c2' style='color: blue'><br><hr><br>";
   echo '  '.$radky[$i].'><tr><td width="800" bgcolor="#d6d6c2"><meta charset="UTF-8"><input type="checkbox" name="index[]" value="'.$i.'"><label>Vyber pro smazání záznamu</label><br>'."";
   
   echo "<hr></td></tr>";
   echo "</table>";
}

?>
	
<p align="right">
  <input type="submit" name="sub" value="Smazat vybraný řádek">
 </p>
  

</form>

Připojen obrázek.

Nahlásit jako SPAM
IP: 188.134.232.–
peter
~ Anonymní uživatel
4016 příspěvků
14. 2. 2018   #8
-
0
-

Pekny. Kdyz tam mas ten label, tak se to da zapsat jeste takto:

<input type="checkbox" name="index[]" value="'.$i.'"><label>Vyber pro smazání záznamu</label>
<label><input type="checkbox" name="index[]" value="'.$i.'">Vyber pro smazání záznamu</label>


Rozdil je v tom, ze na druhem radku se da kliknout na text a zaskrtne ti i ten checkbox. V prvnim pripade se musis trefovat do maleho ctverecku checkboxu.

A to meta tam mas uplne zbytecne, to patri nahoru do tagu head. Priklad struktury html stranky:

https://www.jakpsatweb.cz/html/html5-strukturni.html
https://www.tvorba-webu.cz/…truktura.php
http://owebu.org/…l_ukazky.php - tady si klikni na HTML5 /  '[+] Ukázka kódu html5'
http://www.jakdelatweby.cz/…truktura.php - tady je to taky celkem pekne, az na to neodsazovani! :)

Nahlásit jako SPAM
IP: 2001:718:2601:258:4dbc:38...–
arcam0
Newbie
14. 2. 2018   #9
-
0
-

Jo ale mám problém že když načtu tuto stránku tak při každém načtení aniž bych klikl na button smazat řádek, tak to smaže jeden řádek..

<?php

if(isset($_POST['index']) && is_array($_POST['index'])) {

  $radky = file('data.txt');

  foreach($_POST['index'] as $klic => $hodnota) {

    $radky[$hodnota] = '';

  }

  $text = join('', $radky);

  file_put_contents('data.txt', $text);
  
  // pro  php5
  // $fp = fopen('data.txt', 'w');

  // fwrite($fp, $text);

  // fclose($fp);

}



$radky = file('data.txt');

?>
<form name="smaz" action="<?php echo $_SERVER['REQUEST_URI']; ?>" method="post">

<?php
echo "<span style='color: green;'>************************************************************************************************</span><br>";

for($i = 0; $i != count($radky); ++$i) {
echo "<table>";
   echo "<meta charset='UTF-8'><tr><td width='800' bgcolor='#00cc00'><label> DATUM:</label><label>         ČAS:</label><label>       ID: </label><label>                                             JMÉNO: </label>";  
   echo "<tr><td width='800' bgcolor='#d6d6c2' style='color: blue'><br><hr><br>";
	echo '  '.$radky[$i].'><label><br><input type="checkbox" name="index[]" value="'.$i.'">Vyber pro smazání záznamu</label><br><'.'';
   
   echo "<hr></td></tr>";
   echo "</table>";
}
echo "<span style='color: green;'>************************************************************************************************</span><br>";
?>

<p align="right">
  <input type="submit" name="sub" value="Smazat vybraný řádek">
 </p>
Nahlásit jako SPAM
IP: 188.134.232.–
gna
~ Anonymní uživatel
1891 příspěvků
14. 2. 2018   #10
-
+2
-
Zajímavé
Kit +

S obsahem souboru manipuluješ jen pokud máš v postu očekávaná data. Pokud na tu stránku přistoupíš normálně (klepni v adresním řádku na enter), tak tam post nebude. Pokud použiješ funkci pro znovunačtení stránky, tak se může opakovat i původní post.

Dá se to vyřešit přesměrováním na další (stejnou) stránku, které proběhne getem.

if (post) {
    smazat

    header('Location: ' . $_SERVER['REQUEST_URI']);
    exit;
}
Nahlásit jako SPAM
IP: 213.211.51.–
peter
~ Anonymní uživatel
4016 příspěvků
15. 2. 2018   #11
-
+1
-
Zajímavé

Nezminil jsem, ze to budes muset spravne osetrit? Ze to neni uplne nej reseni? Nemas unikatni identifikator radku. To presmerovani, viz gna, to muze resit. Ale je to jen takove zalepovani diry.
Lepsi by bylo, kdybys to rovnou resil pres db. Tam by mohl mit kazdy radek vlastni autoincrement id. Takze, pri zopakovani odeslani formulare by nemohl smazat neco, co uz neexistuje.

Jeste by slo odesilat velikost souboru nebo hash, mozna jen pocet radku. A pri mazani si porovnat, zda se rovna hash souboru a kdyz ne, tak akci ignorovat a pripadne upozornit uzivatele, ze neni neco v poradku, zmena se neulozila.

Nahlásit jako SPAM
IP: 2001:718:2601:258:9cc1:2f...–
peter
~ Anonymní uživatel
4016 příspěvků
15. 2. 2018   #12
-
+1
-
Zajímavé

Jo, navic neresis pripad se zamykanim souboru, flock. Kdyz ten program spusti 2 lide soucasne, muze to ten soubor poskodit.
A take muze nastat situace, kdy 2 lide daji smazat stejny radek 0. Coz je zase problem toho unikatniho id radku. reseni od gna to resi jen situaci pro jednoho clovek, kdyz se pokusi zopakovat odeslani strany, request, pres F5, treba. Ale uz ne 2 ruzni lide ze 2 ruznych pc.

Nahlásit jako SPAM
IP: 2001:718:2601:258:9cc1:2f...–
arcam0
Newbie
15. 2. 2018   #13
-
0
-

Ještě bych se rád zeptal, jak udělám správně abych mohl editovat určitý řádek když kliknu na button Editovat Záznam u záznamu u php (u každého zvlášť řádků)?

Nahlásit jako SPAM
IP: 188.134.232.–
peter
~ Anonymní uživatel
4016 příspěvků
15. 2. 2018   #14
-
0
-

Jestli se ptas stale na to same, co jsem psal, tak tam musi mit kazdy radek unikatni identifikator.
V sql bys pridal sloupec INT/AUTOINCREMENT. Ale u tveho souboru to asi nejde. Ty tam mas treba 5 radku a nemas urceno, ktery je ktery.

Sel by mozna pouzit cas, ale na obrazku v ukazce mas cas pro 2 radky stejny.

Slo by vytvaret kopii souboru. V prvnim souboru by jsi ocisloval radky a ve druhem odmazal podle cisla radku. Nebo si ukladej pomocny soubor se seznamem smazanych radku. Nactes prvni soubor a pri zobrazovani vynechas radky oznacene jako smazane. Muze to vypadat treba nejak takhle:
___ soubor1 ___
dataA
dataB
dataC
___ soubor2 ___
0,2
uzivateli zobrazis pak jen
soubor1, radek0, (nic, protoze je v seznamu smazanych)
soubor1, radek1, dataB
soubor1, radek2, (nic)
A nebo by slo vytvaret jen mapu
___ soubor2 ___
010 (0 nezobrazuj, 1 zobrazuj)
 

Nahlásit jako SPAM
IP: 2001:718:2601:258:a5f0:fb...–
arcam0
Newbie
16. 3. 2018   #15
-
0
-

Chtěl bych se zeptat když mám takto udělaný výpis řádků, proč mám zdvojený výpis pro je to script u mazani souboru

<?php 
// počet řádků v souboru

$radky = file('./data1.txt');
$lines = count($radky);
echo '<label><b>Počet řádků v Souboru:</b></label>'.'  '.$lines.'  ';

?>
<br>
<br>
<?php
/*
*	Default Location Data File TXT:.
*	File 
*
*	if (post) {
*   smazat
*
*   header('Location: ' . $_SERVER['REQUEST_URI']);
*   exit;
*	}
*
*/
if(isset($_POST['index']) && is_array($_POST['index'])) {

  $radky = file('../data1.txt');

  foreach($_POST['index'] as $klic => $hodnota) {

    $radky[$hodnota] = '';

  }

  $text = join('', $radky);

 file_put_contents('./data1.txt', $text);
  
  
  

  // PHP 5

  // $fp = fopen('./data1.txt', 'w');

  // fwrite($fp, $text);

  // fclose($fp);

}



$radky = file('./data1.txt');



?>


<?php
/*
*	PHP pro výpis tabulky, +  mazani, + editace. 
*
*/

// format: echo "";, echo '';


echo "<span style='color: green;'>Nejnovější záznam vždy nahoře!</span><br>";
echo "<table>";
echo "<table style=\"width:800;border-width:0;\"><tr>\n";
echo "<br><hr>";
 for($i=0;$i<count($radky);$i++) {
	$row=explode("|",$radky[$i]);
	

  
  echo "<td width= 1% class=TDL nowrap style=\"border-width:0;background-color:white;font-size:11;\">".($i+1).".</td>\n";
  echo "<td width=14% class=TDL nowrap style=\"border-width:0;background-color:white;font-size:11;\">".trim($row[0])."</td>\n";
  echo "<td width=25% class=TDL nowrap style=\"border-width:0;background-color:white;font-size:11;\">".trim($row[1])."</a></td>\n";
  echo "<td width=30% class=TDL nowrap style=\"border-width:0;background-color:white;font-size:11;\">".trim($row[2])."</td>\n";
  echo "<td width=35% class=TDL nowrap style=\"border-width:0;background-color:white;font-size:11;\">".trim($row[3])."</td>\n";
  echo "<td width=40% class=TDL nowrap style=\"border-width:0;background-color:white;font-size:11;\">".trim($row[4])."</td>\n";
  echo "<td width=45% class=TDL nowrap style=\"border-width:0;background-color:white;font-size:11;\">".trim($row[5])."</td>\n";
  echo "<td width=50% class=TDL nowrap style=\"border-width:0;background-color:white;font-size:11;\">".trim($row[6])."</td>\n";
  echo "<td width=55% class=TDL nowrap style=\"border-width:0;background-color:white;font-size:11;\">".trim($row[7])."</td>\n";
  echo "<td width=60% class=TDL nowrap style=\"border-width:0;background-color:white;font-size:11;\">".trim($row[8])."</td>\n";
  echo "<td width=65% class=TDL nowrap style=\"border-width:0;background-color:white;font-size:11;\">".trim($row[9])."</td>\n";
  
  echo "</tr>\n";
      echo "<tr>\n";
      echo "<td width= 1% class=TDL nowrap ></td>\n";
      echo "<td width=14% class=TDL colspan=5 style=\"border-width:0;color:#FFFFFF;\">".trim($row[9])."</td>\n";
      echo "</tr></table><br />\n";
  
  // echo "<meta charset='UTF-8'><tr><td width='820' bgcolor='#00cc00'>";
  //echo "<tr><td width='820' bgcolor='#d6d6c2' style='color: blue'><br><hr><br>";
  echo '  '.$radky[$i].'><label><br><hr><input type="checkbox" name="index[]" value="'.$i.'">Vyber pro smazání záznamu</label><br>'."";
  echo '<p align="right"><input type="submit" name="sub" value="Smazat vybraný řádek"></p>';
  echo "<hr></td></tr>";
  echo "</table>";
 
  
}
echo "<span style='color: green;'>Nejstarší záznam vždy dole!</span><br>";




/*

 for($i=0;$i<count($radky);$i++) {
      $row=explode("|",$radky[$i]);
      echo "<table style=\"width:700;border-width:0;\"><tr>\n";
      echo "<td width= 1% class=TDL nowrap style=\"border-width:0;background-color:white;font-size:11;\">".($i+1).".</td>\n";
      echo "<td width=14% class=TDL nowrap style=\"border-width:0;background-color:white;font-size:11;\">".trim($row[0])."</td>\n";
      echo "<td width=25% class=TDL nowrap style=\"border-width:0;background-color:white;font-size:11;\"><a href=mailto:".trim($row[1]).">".trim($row[1])."</a></td>\n";
      echo "<td width=25% class=TDL nowrap style=\"border-width:0;background-color:white;font-size:11;\">".trim($row[2])."</td>\n";
      echo "<td width=38% class=TDL nowrap style=\"border-width:0;background-color:white;font-size:11;\">".trim($row[3])."</td>\n";
	  echo "<td width=41% class=TDL nowrap style=\"border-width:0;background-color:white;font-size:11;\">".trim($row[4])."</td>\n";
	  echo "<td width=45% class=TDL nowrap style=\"border-width:0;background-color:white;font-size:11;\">".trim($row[5])."</td>\n";
	  echo "<td width=46% class=TDL nowrap style=\"border-width:0;background-color:white;font-size:11;\">".trim($row[6])."</td>\n";
      echo "</tr>\n";
      echo "<tr>\n";
      echo "<td width= 1% class=TDL nowrap ></td>\n";
      echo "<td width=14% class=TDL colspan=5 style=\"border-width:0;color:#FFFFFF;\">".trim($row[7])."</td>\n";
      echo "</tr></table><br />\n";
}

*/

?>

<br>
<p align="right">
  <input type="submit" name="sub" value="Smazat vybraný řádek">
 </p>
</form><br>
</div>
</div>

Připojen obrázek.

Takto vypadá ten zdvojený výpis. Kde mám chybu ?

Nahlásit jako SPAM
IP: 188.134.232.–
Kit+15
Guru
16. 3. 2018   #16
-
0
-

#15 arcam
Spočítej si výskyty elementů <tr> a přijdeš na to.

Nahlásit jako SPAM
IP: 194.228.68.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
arcam0
Newbie
16. 3. 2018   #17
-
0
-

To jo ale pořád to nemohu najít, mám tu zdvojený výpis ze souboru:

Připojen obrázek.

Po pravdě nevidím kde je ten problém.

<?php
/*
*	PHP pro výpis tabulky, +  mazani, + editace. 
*
*/

// format: echo "";, echo '';


echo "<span style='color: green;'>Nejnovější záznam vždy nahoře!</span><br>";
echo "<table>";
echo "<table style=\"width:800;border-width:0;\"><tr>\n";
echo "<br><hr>";
 for($i=0;$i<count($radky);$i++) {
	$row=explode("|",$radky[$i]);
	

  
  echo "<td width= 1% class=TDL nowrap style=\"border-width:0;background-color:white;font-size:11;\">".($i+1).".</td>\n";
  echo "<td width=14% class=TDL nowrap style=\"border-width:0;background-color:white;font-size:11;\">".trim($row[0])."</td>\n";
  echo "<td width=25% class=TDL nowrap style=\"border-width:0;background-color:white;font-size:11;\">".trim($row[1])."</td>\n";
  echo "<td width=30% class=TDL nowrap style=\"border-width:0;background-color:white;font-size:11;\">".trim($row[2])."</td>\n";
  echo "<td width=35% class=TDL nowrap style=\"border-width:0;background-color:white;font-size:11;\">".trim($row[3])."</td>\n";
  echo "<td width=40% class=TDL nowrap style=\"border-width:0;background-color:white;font-size:11;\">".trim($row[4])."</td>\n";
  echo "<td width=45% class=TDL nowrap style=\"border-width:0;background-color:white;font-size:11;\">".trim($row[5])."</td>\n";
  echo "<td width=50% class=TDL nowrap style=\"border-width:0;background-color:white;font-size:11;\">".trim($row[6])."</td>\n";
  echo "<td width=55% class=TDL nowrap style=\"border-width:0;background-color:white;font-size:11;\">".trim($row[7])."</td>\n";
  echo "<td width=60% class=TDL nowrap style=\"border-width:0;background-color:white;font-size:11;\">".trim($row[8])."</td>\n";
  echo "<td width=65% class=TDL nowrap style=\"border-width:0;background-color:white;font-size:11;\">".trim($row[9])."</td>\n";
  
  //echo "</tr>\n";
      //echo "<tr>\n";
      echo "<td width= 1% class=TDL nowrap ></td>\n";
      echo "<td width=14% class=TDL colspan=5 style=\"border-width:0;color:#FFFFFF;\">".trim($row[9])."</td>\n";
      echo "</tr></table><br />\n";
  
  echo "<meta charset='UTF-8'><tr><td width='820' bgcolor='#00cc00'>";
  echo "<tr><td width='820' bgcolor='#d6d6c2' style='color: blue'><br><hr><br>";
  echo '  '.$radky[$i].'><label><br><hr><input type="checkbox" name="index[]" value="'.$i.'">Vyber pro smazání záznamu</label><br>'."";
  echo '<p align="right"><input type="submit" name="sub" value="Smazat vybraný řádek"></p>';
  echo "<hr></td></tr>";
  echo "</table>";
 
  
}
echo "<span style='color: green;'>Nejstarší záznam vždy dole!</span><br>";
?>
Nahlásit jako SPAM
IP: 188.134.232.–
Kit+15
Guru
16. 3. 2018   #18
-
0
-

#17 arcam

echo '  '.$radky[$i].

BTW: Dělej kratší řádky, ať se to dá číst.

Nahlásit jako SPAM
IP: 194.228.68.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
arcam0
Newbie
18. 3. 2018   #19
-
0
-

jak mohu upravit 

echo '  '.$radky[$i].'><label><br><hr><input type="checkbox" name="index[]" value="'.$i.'">Vyber pro smazání záznamu</label><br>'."";

Tak aby checkbox po vybrani fungoval pro smazání bez těchto problémů?

Nahlásit jako SPAM
IP: 188.134.232.–
peter
~ Anonymní uživatel
4016 příspěvků
19. 3. 2018   #20
-
0
-

Musis postupovat logicky pri hledani chyb. Neco ti to tam vypisuje. Mas tam furu echo. Co kdybys mezi kazdy radek pridal echo 1; echo 2; ... A pak se mrkl ve www prohlizeci na zdrojovy kod? Zjistis, ze je to treba mezi echo 13; a echo 14;.

Osobne bych misto echo pouzil $str.= '...''; a echo az na konci. Protoze se $str muzes delat psi kusy jako echo '<pre>'.htmlspecialchars($str).'</pre>'; a vypsat si html kod.

No, a kdyz se podivas na obrazek, tak jednou je to s mezerami a podruhe se svislitky | a navic to konci >. Takze pujde o nejaky zapomenuty vypis bud s implode nebo vypis primo zdroje, pokud tam ukladas se svislitky. A nebo tam mas spatne uvozovky. treba nevis, ze se do html vypisuje pres htmlspacialchars. A ze v html se nektere uvozovky zapisuji jako &quote;.
1) $row=explode("|",$radky[$i]);
2) echo ' '.$radky[$i].'><label><br><hr><input type="checkbox" name="index[]" value="'.$i.'">Vyber pro smazání záznamu</label><br>'."";
 

Nahlásit jako SPAM
IP: 2001:718:2601:258:4dbc:38...–
MilanL+1
Grafoman
19. 3. 2018   #21
-
0
-

#19 arcam


echo ' '.$radky[$i].'><label>

- zvýrazněná část je tam navíc, nejspíš nějaký pozůstatek

to jsem viděl hned i já, a to v PHP a HTML skoro nedělám

Nahlásit jako SPAM
IP: 91.139.9.–
arcam0
Newbie
20. 3. 2018   #22
-
0
-

Už asi vím v čem mám problém, problém mám  v tom že jsem to měl špatně udělané ale narazil jsem na další problém v tom že mi z nějakého důvodu php odmítá brát číslo 10, hlásí mi to chybu:

do 9 sloupců (počtů výpisů tento script funguje jak má, ale nad 9 už ne)
Notice: Undefined offset: 10 in C:\xampp1.8\htdocs\plugin\red\clensTest.php on line 138

http://prntscr.com/its0oa

jakmile zadám výpis dalšího sloupce, který jsem označil číslem 10.

// ed: for ($i=1; $i<10; $i++)
// ol:  for($i=0;$i<count($radky);$i++)
	


 for($i=0;$i<count($radky);$i++) {
      $row=explode("|",$radky[$i]);
	  
	  
      echo "<table style=\"width:900;border-width:0;\"><tr>\n";
      echo "<td width= 1% class=TDL nowrap style=\"border-width:0;background-color:white;font-size:15;\">".($i+1).".</td>\n";
      echo "<td width=14% class=TDL nowrap style=\"border-width:0;background-color:white;font-size:15;\">".trim($row[0])."</td>\n";
      echo "<td width=25% class=TDL nowrap style=\"border-width:0;background-color:white;font-size:15;\"><a href=mailto:".trim($row[1]).">".trim($row[1])."</a></td>\n";
      echo "<td width=25% class=TDL nowrap style=\"border-width:0;background-color:white;font-size:15;\">".trim($row[2])."</td>\n";
      echo "<td width=38% class=TDL nowrap style=\"border-width:0;background-color:white;font-size:15;\">".trim($row[3])."</td>\n";
	  echo "<td width=41% class=TDL nowrap style=\"border-width:0;background-color:white;font-size:15;\">".trim($row[4])."</td>\n";
	  echo "<td width=45% class=TDL nowrap style=\"border-width:0;background-color:white;font-size:15;\">".trim($row[5])."</td>\n";
	  echo "<td width=46% class=TDL nowrap style=\"border-width:0;background-color:white;font-size:15;\">".trim($row[6])."</td>\n";
	  echo "<td width=48% class=TDL nowrap style=\"border-width:0;background-color:white;font-size:15;\">".trim($row[7])."</td>\n";
	  echo "<td width=46% class=TDL nowrap style=\"border-width:0;background-color:white;font-size:15;\">".trim($row[8])."</td>\n";
	  echo "<td width=46% class=TDL nowrap style=\"border-width:0;background-color:white;font-size:15;\">".trim($row[9])."</td>\n";
      echo "</tr>\n";
      echo "<tr>\n";
      echo "<td width= 1% class=TDL nowrap ></td>\n";
      echo "<td width=14% class=TDL colspan=5 style=\"border-width:0;color:#FFFFFF;\">".trim($row[10])."</td>\n";  // row  10 je problém undefined 
      echo "</tr></table><br />\n";
}

jak tedy mohu definovat aby číslo pro sloupec 10 php bralo bez chyby. ?

Nahlásit jako SPAM
IP: 188.134.232.–
Kit+15
Guru
20. 3. 2018   #23
-
0
-

#22 arcam
Naplnit $row[10] daty.
 

Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:ac3d:...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
arcam0
Newbie
20. 3. 2018   #24
-
0
-

#23 Kit
Jak myslíš naplnit $row[10] daty ? 

Nahlásit jako SPAM
IP: 188.134.232.–
Kit+15
Guru
20. 3. 2018   #25
-
0
-

#24 arcam
Snažíš se použít $row[10], do kterého jsi žádná data neuložil. Ten sloupec tam prostě není. Logicky to hlásí chybu "index mimo rozsah pole".

Vyházej všechny "style=..." z výstupního HTML, ať se v tom vyznáš.

Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:7d46:...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
peter
~ Anonymní uživatel
4016 příspěvků
20. 3. 2018   #26
-
+1
-
Zajímavé
Kit +

Notice: Undefined offset: 10 in C:\xampp1.8\htdocs\plugin\red\clensTest.php on line 138

Ta hlaska znamena, ze v tom array neexistuje index 10.
Zkus si tam vlozit  

if (!isset($row[10]) {var_dump('radek asi bez row10', $row);}
Nahlásit jako SPAM
IP: 2001:718:2601:258:3493:91...–
peter
~ Anonymní uživatel
4016 příspěvků
20. 3. 2018   #27
-
0
-

mozna lepe  

echo '<pre>';
var_dump('radek asi bez row10', $row);
echo '</pre>';
Nahlásit jako SPAM
IP: 2001:718:2601:258:3493:91...–
peter
~ Anonymní uživatel
4016 příspěvků
20. 3. 2018   #28
-
0
-

Dobre, tak znovu a poradne :) Opakovani, matka moudrosti :) Vypadla mi tam kulata zavorka. 

if (!isset($row[10]))
  {
  echo '<pre>';
  var_dump('radek asi bez row10', $row);
  echo '</pre>';
  }
Nahlásit jako SPAM
IP: 2001:718:2601:258:3493:91...–
Kit+15
Guru
20. 3. 2018   #29
-
0
-

#28 peter
Tady se příspěvky dají opravit do jedné hodiny od zápisu. První příspěvek můžeš opravit a zbývající dva vyhodit.

Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:7d46:...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
peter
~ Anonymní uživatel
4016 příspěvků
21. 3. 2018   #30
-
0
-

Jj, vidim, ze tomu rozumis. Ale, vis, je rozdil psat jako anonymni uzivatel a registrovany :) Nerikam, ze by to neslo naprogramovat, treba podle ip. Ale neni to tu.

Nahlásit jako SPAM
IP: 2001:718:2601:258:3493:91...–
arcam0
Newbie
3. 4. 2018   #31
-
0
-

Pořád stále mám problém s tím že nevím kde mám problém.. Nefunguje mi mazání řádků a nemohu najít problém...

<head>
    <meta charset=UTF-8>
<head>
    <?php
// počet řádků v souboru

    $radky = file('./Cxp9_data_001.txt');
    $lines = count($radky);
    echo '<label><b>Počet řádků v Souboru:</b></label>' . '  ' . $lines . '  ';
    ?>
<br>
<?php
/*
 * 	Default Location Data File TXT:./Cxp9_data_001.txt
 */
 
 
if (isset($_POST['index']) && is_array($_POST['index'])) {

    $radky = file('./Cxp9_data_001.txt');

    foreach ($_POST['index'] as $klic => $hodnota) {

        $radky[$hodnota] = '';
    }

    $text = join('', $radky);

    $file_put_contents('./Cxp9_data_001.txt', $text);


}



$radky = file('./Cxp9_data_001.txt');

?>

<!--zacatek--!>



<?php
/*
 * 	PHP pro výpis tabulky, +  mazani, + editace. 
 *
 */

// format: echo "";, echo '';




for ($i = 0; $i < count($radky); $i++) {
    $row = explode("|", $radky[$i]);


    echo "<table style=\"width:900;border-width:0;\"><tr>\n";
    echo "<td width= 1% class=TDL nowrap style=\"border-width:0;background-color:white;font-size:15;\">" . ($i + 1) . ".</td>\n";
    echo "<td width=14% class=TDL nowrap style=\"border-width:0;background-color:white;font-size:15;\">" . trim($row[0]) . "</td>\n";
    echo "<td width=25% class=TDL nowrap style=\"border-width:0;background-color:white;font-size:15;\"><a href=mailto:" . trim($row[1]) . ">" . trim($row[1]) . "</a></td>\n";
    echo "<td width=25% class=TDL nowrap style=\"border-width:0;background-color:white;font-size:15;\">" . trim($row[2]) . "</td>\n";
    echo "<td width=38% class=TDL nowrap style=\"border-width:0;background-color:white;font-size:15;\">" . trim($row[3]) . "</td>\n";
    echo "<td width=41% class=TDL nowrap style=\"border-width:0;background-color:white;font-size:15;\">" . trim($row[4]) . "</td>\n";
    echo "<td width=45% class=TDL nowrap style=\"border-width:0;background-color:white;font-size:15;\">" . trim($row[5]) . "</td>\n";
    echo "<td width=46% class=TDL nowrap style=\"border-width:0;background-color:white;font-size:15;\">" . trim($row[6]) . "</td>\n";
    echo "<td width=48% class=TDL nowrap style=\"border-width:0;background-color:white;font-size:15;\">" . trim($row[7]) . "</td>\n";
    echo "<td width=49% class=TDL nowrap style=\"border-width:0;background-color:white;font-size:15;\">" . trim($row[8]) . "</td>\n";
    echo "<td width=50% class=TDL nowrap style=\"border-width:0;background-color:white;font-size:15;\">" . trim($row[9]) . "</td>\n";
    echo "</tr>\n";
    echo "<tr>\n";
	 echo '  '.$radky[$i].'><label><br><input type="checkbox" name="index[]" value="'.$i.'">Vyber pro smazání záznamu</label><br>'."";
     echo '<p align="right"><input type="submit" name="sub" value="Smazat vybraný řádek"></p><hr>';
    echo "<td width= 1% class=TDL nowrap ></td>\n";
    echo "</tr></table><br />\n";
	
}

?>



Připojen obrázek.

Nahlásit jako SPAM
IP: 188.134.232.–
gna
~ Anonymní uživatel
1891 příspěvků
4. 4. 2018   #32
-
0
-

Tak vyházej všechny ty kraviny, kterým nerozumíš a pak si dej na každý druhý řádek informační echo a podívej se co to dělá.

Podle mě to nefunguje vůbec, protože tam máš $file_put_contents s dolarem.

Nahlásit jako SPAM
IP: 213.211.51.–
gna
~ Anonymní uživatel
1891 příspěvků
4. 4. 2018   #33
-
0
-

   

<?php
$datafile = 'data.txt';

if (isset($_POST['index']) && is_array($_POST['index'])) {
    $radky = file($datafile);

    foreach ($_POST['index'] as $hodnota) {
        $radky[$hodnota] = '';
    }

    $text = join('', $radky);
    file_put_contents($datafile, $text);
}

$radky = file($datafile);
$lines = count($radky);
echo "Počet řádků v souboru: $lines<br/>\n";

echo "<form method=\"post\">\n";
echo "<table>\n";
for ($i = 0; $i < count($radky); $i++) {
    $row = explode("|", $radky[$i]);

    echo "<tr>\n";
    echo "<td><input type=\"checkbox\" name=\"index[]\" value=\"", $i, "\"/></td>\n";
    echo "<td>", ($i + 1), ".</td>\n";
    echo "<td>", trim($row[0]), "</td>\n";
    echo "<td><a href=\"mailto:", trim($row[1]), "\">", trim($row[1]), "</a></td>\n";
    echo "<td>", trim($row[2]), "</td>\n";
    echo "<td>", trim($row[3]), "</td>\n";
    echo "<td>", trim($row[4]), "</td>\n";
    echo "<td>", trim($row[5]), "</td>\n";
    echo "<td>", trim($row[6]), "</td>\n";
    echo "<td>", trim($row[7]), "</td>\n";
    echo "<td>", trim($row[8]), "</td>\n";
    echo "<td>", trim($row[9]), "</td>\n";
    echo "</tr>\n";
}
echo "</table>\n";
echo "<input type=\"submit\" name=\"sub\" value=\"Smazat označené\"></input>\n";
echo "</form>\n";

?>
Nahlásit jako SPAM
IP: 213.211.51.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 32 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý