Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][HTML]odczytywanie danych z dodatkowych pól formularza
Forum PHP.pl > Forum > Przedszkole
Rookie
Witam.
Napisałem skrypt, który dodaje newsy do strony głównej, są tam umieszczone również pola, ażebym mógł dodawać źrósła z jakich czerpałęm te newsy, ze strony webmade napisałem w javie funkcje, która dodaje dodatkowe pola do źródeł, aby mogło być więcej niż jedno źródło podane. Od razu mówię, iż szukałem informacji na ten temat i znalazłem to: http://forum.php.pl/index.php?showtopic=65938 - choć nie zabardzo mi pomogło bo tego ostatniego z foreach nie rozumiem ;] A więc o to mój plik dodaj.php:
Kod
<?php
session_start();
if (!isset($_SESSION["haslo"])){
  header("Location: Admin.php");
  exit();
}
?>
<?php
$Adres = array('<a href=".$_POST[Adres]." target="_blank">');
$zrodlo = array(''.$_POST[zrodlo].'</a>');
$data = date("d.m.Y H:i:s");
if(!empty($_POST['tytul']) && !empty($_POST['tresc']) && !empty($_POST['zrodlo'])) {
$staraTresc = file_get_contents("news.txt");
$open = fopen("news.txt", "w");
$save='<table cellspacing="0" cellpadding="0" width="98%" style="margin-bottom: 10px;" align="center">
    <tr>
        <td style="width: 20;" align="left"><img src="Grafika/Niebieski/naroznik1.png" alt=""></td>
        <td style="color: #FFFFFF; background-color: #1B84FF; width: 100%;" align="center">'.$_POST['tytul'].'</td>
        <td style="width: 20;" align="right"><img src="Grafika/Niebieski/naroznik2.png" alt=""></td>
    </tr>
    <tr>
        <td valign="top" colspan="3" class="trescc">
          <p align="justify"><img src="'.$_POST['obrazek'].'" alt="">'.$_POST['tresc'].'</p>
          Źródła: '.$Adres.$zrodlo.'
        </td>
    </tr>
    <tr>
        <td colspan="3">
            <div style="font-family: Times New Roman; font-size: 11; background-color: #1B84FF; color: #FFFFFF;">
                Dodano '.$data.'
            </div>
        </td>
    </tr>
</table>

';
$save .= $staraTresc;
fwrite($open, $save);
fclose($open);
$ok = "News Dodano";
}
else {
$ok = "Wypełnij wszystkie pola";
}
?>
<html>
<head>
<title>Witryna</title>
<meta http-equiv="Content-type" content="text/html; charset=iso-8859-2" />
<meta http-equiv="Content-Language" content="pl" />
<meta name="Robots" content="all">
<link rel="stylesheet" type="text/css" href="style.css">
<link rel="shortcut icon" href="icon.ico">
<script type="text/javascript">
function dodaj_terek(kontener){
var znacznik = document.createElement('tr');
var kontener = document.getElementById(kontener);
}

function dodaj_tedek(kontener){
var znacznik = document.createElement('td');
znacznik.setAttribute('colspan', '2');
var kontener = document.getElementById(kontener);
kontener.appendChild(znacznik);
}

function dodaj_Adres(kontener){
var znacznik = document.createElement('input');
znacznik.setAttribute('type', 'text');
znacznik.setAttribute('name', 'Adres[]');
znacznik.setAttribute('value', 'Adres');
znacznik.className = 'zrodla';
var kontener = document.getElementById(kontener);
kontener.appendChild(znacznik);
}

function dodaj_Nazwe(kontener){
var znacznik = document.createElement('input');
znacznik.setAttribute('type', 'text');
znacznik.setAttribute('name', 'zrodlo[]');
znacznik.setAttribute('value', 'Nazwa');
znacznik.className = 'zrodla';
var kontener = document.getElementById(kontener);
kontener.appendChild(znacznik);
}
</script>
</head>
<body>
<table cellspacing="0" id="tabela" cellpadding="0" width="100%">
<tr>
<td class="logo">
<h1>LOGO</h1>
</td>
</tr>
<tr>
<td class="tresc">
<table cellspacing="0" cellpadding="0" width="100%">
<tr>
<td style="width: 20;"><img src="Grafika/Niebieski/naroznik3.png" alt=""></td>
<td align="center" style="background-color: #1B84FF;">
<ul id="poziom">
<li><a href="o_mnie.php"><img src="Grafika/Niebieski/lista.png" style="border: 0;" alt="">&nbsp;O mnie</a></li>
<li><a href="kontakt.php"><img src="Grafika/Niebieski/lista.png" style="border: 0;" alt="">&nbsp;Kontakt</a></li>
<li><a href="Admin.php"><img src="Grafika/Niebieski/lista.png" style="border: 0;" alt="">&nbsp;Admin</a></li>
</ul>
</td>
<td style="width: 20;"><img src="Grafika/Niebieski/naroznik4.png" alt=""></td>
</tr>
</table>
</td>
</tr>
<tr>
<td class="tresc">
<table cellspacing="0" cellpadding="0" width="100%" id="news">
<tr>
<td style="width: 200;" valign="top">
<?php
include("menu.php");
?>
</td>
<td valign="top" align="center">
<table cellspacing="0" cellpadding="0" width="98%" style="margin-bottom: 10px;">
    <tr>
        <td style="width: 20;" align="left"><img src="Grafika/Niebieski/naroznik1.png" alt=""></td>
        <td style="color: #FFFFFF; background-color: #1B84FF; width: 100%;" align="center">Admin -
<?php
  echo '<a href="logout.php?'.SID.'">';
  echo "[Wyloguj]</a>";
?>
        </td>
        <td style="width: 20;" align="right"><img src="Grafika/Niebieski/naroznik2.png" alt=""></td>
    </tr>
    <tr>
        <td valign="top" colspan="3" class="trescc">
<?php
if(empty($_POST['tytul']) && empty($_POST['tresc']) && empty($_POST['zrodlo'])) {
echo 'Dodaj Artykół';
echo '<form action="dodaj.php?" method="post">
<table border="0" cellspacing="0" id="table">
<tr><td class="text">Tytuł:</td><td><input type="text" name="tytul"></td></tr>
<tr><td class="text">Obrazek:</td><td><input type="text" name="obrazek"></td></tr>
<tr><td class="text" valign="top">Treść:</td><td><textarea cols="50" rows="10" type="text" name="tresc"></textarea></td></tr>
<tr><td class="text" clospan="2">Źródła:</td></tr>
<tr><td id="pliki" colspan="2"><input type="text" name="Adres[]" value="Adres"><input type="text" name="zrodlo[]" value="Nazwa"></td></tr>
<tr><td valign="top"><input type="button" value="Dodaj Pole" onclick="dodaj_terek(\'pliki\');dodaj_tedek(\'pliki\');  dodaj_Adres(\'pliki\'); dodaj_Nazwe(\'pliki\');" /></td></tr>
<tr><td valign="top" colspan="2"><input type="submit" name="submit" value="Dodaj"></td></tr>
</table>
</form>';
}
else{
echo $ok;
echo '<form action="dodaj.php?" method="post">
<table border="0" cellspacing="0" id="table">
<tr><td class="text">Tytuł:</td><td><input type="text" name="tytul"></td></tr>
<tr><td class="text">Obrazek:</td><td><input type="text" name="obrazek"></td></tr>
<tr><td class="text" valign="top">Treść:</td><td><textarea cols="50" rows="10" type="text" name="tresc"></textarea></td></tr>
<tr><td class="text" clospan="2">Źródła:</td></tr>
<tr><td><input type="text" name="Adres" value="Adres"></td><td><input type="text" name="zrodlo" value="Nazwa"></td></tr>
<tr><td valign="top" colspan="2"><input type="submit" name="submit" value="Dodaj"></td></tr>
</table>
</form>';
}
?>
        </td>
    </tr>
</table>
<?php
$open = fopen("news.txt", "r");
while(!feof($open)){
echo fgets($open, 4096);
}
fclose($open);
?>
<?php include("stopka.php"); ?>

zamiast wpisanych stron źródeł (czy to jedna strona ze źródłem, czy też więcej) pokazuje się tylko "Źródła: ArrayArray", a chodzi o to, ażeby pokazywało się np.
"Źródła: wp.pl, onet.pl" Proszę o pomoc.
artur_dziocha
array" title="Zobacz w manualu PHP" target="_manual
Rookie
To mi pomogłeś... jak byś mógł apisac przykład co z tym zrobić lub dać dokładniejszego linka, to byłbym wdzięczny. Piszę w "Przedszkolu" bo jestem zacofany w php, dopiero się uczę
artur_dziocha
utwórz jedną tablice
$i = 0;
$zrodlo = array();
foreach($_POST['adres) {
$zrodlo[$i]['adres'] =$_POST['adres'];
$zrodlo[$i]['zrodlo']=$_POST['zrodlo'];
$i++;

póżniej
  1. <?php
  2. foreach($zrodlo as $key){
  3. echo "<a href='".$key['adres']."'>".$key['zrodlo']."</a>";
  4. }
  5. ?>


powinno cos wyjASNIC
Rookie
Ok już próbuję, tylko jedno pytanie, to można tak php w php umieszczać? trzeba pamiętać, że to się zapisuje do pliku tekstowego
erix
Można. echo" title="Zobacz w manualu PHP" target="_manual
Rookie
Parse error: syntax error, unexpected T_FOREACH in C:\Documents and Settings\Moje dokumenty\HTML\Witryna\dodaj.php on line 25
artur_dziocha
  1. <?php
  2. foreach($_POST['Adres') {
  3. $zrodla .= <a href="$_POST['Adres']">$_POST['Zrodla']</a>
  4. }
  5. echo $zrodla;
  6. ?>

to Ci powinno pomoc
najwyżej pokombinuj z apostrofami
pisze z palca
Rookie
Kurcze, można od początku? haha.gif ok to napisałeś, to trzeba wkleić w miejscu w którym te źródła się mają wyświetalać ok, a co z tamtymi zmiennymi i określaniem tablic, to też pls Napisz mi w poście co dokładnie gdzie ma być ;p Proszę
artur_dziocha
zwtróc uwage na linie10-14 oraz 31 32

  1. php
  2. session_start();
  3. if (!isset($_SESSION["haslo"])){
  4.  header("Location: Admin.php");
  5.  exit();
  6. }
  7. ?>
  8. <?php
  9. $Adres = array('<a href=".$_POST[Adres]." target="_blank">'); // usun
  10. $zrodlo = array(''.$_POST[zrodlo].'</a>'); // usun
  11. //  dodaj te 3 linie
  12. foreach($_POST['Adres') {
  13. $zrodla .= "<a href='".$_POST['Adres']."'>".$_POST['Zrodla']."</a><br>";
  14. }
  15.  
  16. $data = date("d.m.Y H:i:s");
  17. if(!empty($_POST['tytul']) && !empty($_POST['tresc']) && !empty($_POST['zrodlo'])) {
  18. $staraTresc = file_get_contents("news.txt");
  19. $open = fopen("news.txt", "w");
  20. $save='<table cellspacing="0" cellpadding="0" width="98%" style="margin-bottom: 10px;" align="center">
  21.    <tr>
  22.        <td style="width: 20;" align="left"><img src="Grafika/Niebieski/naroznik1.png" alt=""></td>
  23.        <td style="color: #FFFFFF; background-color: #1B84FF; width: 100%;" align="center">'.$_POST['tytul'].'</td>
  24.        <td style="width: 20;" align="right"><img src="Grafika/Niebieski/naroznik2.png" alt=""></td>
  25.    </tr>
  26.    <tr>
  27.        <td valign="top" colspan="3" class="trescc">
  28.          <p align="justify"><img src="'.$_POST['obrazek'].'" alt="">'.$_POST['tresc'].'</p>
  29.          Źródła: '.$Adres.$zrodlo.' // tutaj zamiana usun ta linie
  30.          Źródła: echo $zrodla; //dodaj tą
  31.        </td>
  32.    </tr>
  33.    <tr>
  34.        <td colspan="3">
  35.            <div style="font-family: Times New Roman; font-size: 11; background-color: #1B84FF; color: #FFFFFF;">
  36.                Dodano '.$data.'
  37.            </div>
  38.        </td>
  39.    </tr>
  40. </table>
  41.  
  42. ';
  43. $save .= $staraTresc;
  44. fwrite($open, $save);
  45. fclose($open);
  46. $ok = "News Dodano";
  47. }
  48. else {
  49. $ok = "Wypełnij wszystkie pola";
  50. }
  51. ?>
  52. <html>
  53. <head>
  54. <title>Witryna</title>
  55. <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2" />
  56. <meta http-equiv="Content-Language" content="pl" />
  57. <meta name="Robots" content="all">
  58. <link rel="stylesheet" type="text/css" href="style.css">
  59. <link rel="shortcut icon" href="icon.ico">
  60. <script type="text/javascript">
  61. function dodaj_terek(kontener){
  62. var znacznik = document.createElement('tr');
  63. var kontener = document.getElementById(kontener);
  64. }
  65.  
  66. function dodaj_tedek(kontener){
  67. var znacznik = document.createElement('td');
  68. znacznik.setAttribute('colspan', '2');
  69. var kontener = document.getElementById(kontener);
  70. kontener.appendChild(znacznik);
  71. }
  72.  
  73. function dodaj_Adres(kontener){
  74. var znacznik = document.createElement('input');
  75. znacznik.setAttribute('type', 'text');
  76. znacznik.setAttribute('name', 'Adres[]');
  77. znacznik.setAttribute('value', 'Adres');
  78. znacznik.className = 'zrodla';
  79. var kontener = document.getElementById(kontener);
  80. kontener.appendChild(znacznik);
  81. }
  82.  
  83. function dodaj_Nazwe(kontener){
  84. var znacznik = document.createElement('input');
  85. znacznik.setAttribute('type', 'text');
  86. znacznik.setAttribute('name', 'zrodlo[]');
  87. znacznik.setAttribute('value', 'Nazwa');
  88. znacznik.className = 'zrodla';
  89. var kontener = document.getElementById(kontener);
  90. kontener.appendChild(znacznik);
  91. }
  92. </script>
  93. </head>
  94. <body>
  95. <table cellspacing="0" id="tabela" cellpadding="0" width="100%">
  96. <tr>
  97. <td class="logo">
  98. <h1>LOGO</h1>
  99. </td>
  100. </tr>
  101. <tr>
  102. <td class="tresc">
  103. <table cellspacing="0" cellpadding="0" width="100%">
  104. <tr>
  105. <td style="width: 20;"><img src="Grafika/Niebieski/naroznik3.png" alt=""></td>
  106. <td align="center" style="background-color: #1B84FF;">
  107. <ul id="poziom">
  108. <li><a href="o_mnie.php"><img src="Grafika/Niebieski/lista.png" style="border: 0;" alt=""> O mnie</a></li>
  109. <li><a href="kontakt.php"><img src="Grafika/Niebieski/lista.png" style="border: 0;" alt=""> Kontakt</a></li>
  110. <li><a href="Admin.php"><img src="Grafika/Niebieski/lista.png" style="border: 0;" alt=""> Admin</a></li>
  111. </ul>
  112. </td>
  113. <td style="width: 20;"><img src="Grafika/Niebieski/naroznik4.png" alt=""></td>
  114. </tr>
  115. </table>
  116. </td>
  117. </tr>
  118. <tr>
  119. <td class="tresc">
  120. <table cellspacing="0" cellpadding="0" width="100%" id="news">
  121. <tr>
  122. <td style="width: 200;" valign="top">
  123. <?php
  124. include("menu.php");
  125. ?>
  126. </td>
  127. <td valign="top" align="center">
  128. <table cellspacing="0" cellpadding="0" width="98%" style="margin-bottom: 10px;">
  129.    <tr>
  130.        <td style="width: 20;" align="left"><img src="Grafika/Niebieski/naroznik1.png" alt=""></td>
  131.        <td style="color: #FFFFFF; background-color: #1B84FF; width: 100%;" align="center">Admin -
  132. <?php
  133.  echo '<a href="logout.php?'.SID.'">';
  134.  echo "[Wyloguj]</a>";
  135.  
  136. ?>
  137.        </td>
  138.        <td style="width: 20;" align="right"><img src="Grafika/Niebieski/naroznik2.png" alt=""></td>
  139.    </tr>
  140.    <tr>
  141.        <td valign="top" colspan="3" class="trescc">
  142. <?php
  143. if(empty($_POST['tytul']) && empty($_POST['tresc']) && empty($_POST['zrodlo'])) {
  144. echo 'Dodaj Artykół';
  145. echo '<form action="dodaj.php?" method="post">
  146. <table border="0" cellspacing="0" id="table">
  147. <tr><td class="text">Tytuł:</td><td><input type="text" name="tytul"></td></tr>
  148. <tr><td class="text">Obrazek:</td><td><input type="text" name="obrazek"></td></tr>
  149. <tr><td class="text" valign="top">Treść:</td><td><textarea cols="50" rows="10" type="text" name="tresc"></textarea></td></tr>
  150. <tr><td class="text" clospan="2">Źródła:</td></tr>
  151. <tr><td id="pliki" colspan="2"><input type="text" name="Adres[]" value="Adres"><input type="text" name="zrodlo[]" value="Nazwa"></td></tr>
  152. <tr><td valign="top"><input type="button" value="Dodaj Pole" onclick="dodaj_terek('pliki');dodaj_tedek('pliki');  dodaj_Adres('pliki'); dodaj_Nazwe('pliki');" /></td></tr>
  153. <tr><td valign="top" colspan="2"><input type="submit" name="submit" value="Dodaj"></td></tr>
  154. </table>
  155. </form>';
  156. }
  157. else{
  158. echo $ok;
  159. echo '<form action="dodaj.php?" method="post">
  160. <table border="0" cellspacing="0" id="table">
  161. <tr><td class="text">Tytuł:</td><td><input type="text" name="tytul"></td></tr>
  162. <tr><td class="text">Obrazek:</td><td><input type="text" name="obrazek"></td></tr>
  163. <tr><td class="text" valign="top">Treść:</td><td><textarea cols="50" rows="10" type="text" name="tresc"></textarea></td></tr>
  164. <tr><td class="text" clospan="2">Źródła:</td></tr>
  165. <tr><td><input type="text" name="Adres" value="Adres"></td><td><input type="text" name="zrodlo" value="Nazwa"></td></tr>
  166. <tr><td valign="top" colspan="2"><input type="submit" name="submit" value="Dodaj"></td></tr>
  167. </table>
  168. </form>';
  169. }
  170. ?>
  171.        </td>
  172.    </tr>
  173. </table>
  174. <?php
  175. $open = fopen("news.txt", "r");
  176. while(!feof($open)){
  177. echo fgets($open, 4096);
  178. }
  179. fclose($open);
  180. ?>
  181. <?php include("stopka.php"); ?>

pisane z palca moga byc małe poprawki - Apostrofy lub dane z inputów. Pozdrawiam
Rookie
Dzięki, że się tak wysilasz dla mnie i że mi czas poświęcasz.
sad.gif tylko problemik jest taki Parse error: syntax error, unexpected ')' in C:\Documents and Settings\Moje dokumenty\HTML\Witryna\dodaj.php on line 9
U mnie linią 9 jest:
Kod
foreach($_POST['Adres']) {

artur_dziocha
brakuje zamkniecia nawiasu )
  1. <?php
  2. foreach($_POST['Adres']) {
  3. $zrodla .= "<a href='".$_POST['Adres']."'>".$_POST['Zrodla']."</a><br>";
  4. }
  5. ?>
Rookie
No właśnie brakowało, ja dopisałem zamknięcie - i dalej nic sad.gif (to samo)
erix
A wiecie w ogóle, jak wygląda konstrukcja foreach" title="Zobacz w manualu PHP" target="_manual...? blink.gif
  1. <?php
  2. foreach($tabl as $var){
  3. ?>

Żadnego nawiasu nie brakuje; fundamentalny brak czytania dokumentacji... :/
artur_dziocha
przeoczenie:)
spróbuj z while:)
Rookie
erix, w takim razie jak miałoby to wyglądać, napiszesz?
erix
Nie napiszę, wysil się trochę i zajrzyj do strony manuala, jak wygląda iteracja przez foreach" title="Zobacz w manualu PHP" target="_manual.
Rookie
No to bardzo ci dziękuję :/ Wysilam się od 3dni a teraz z tym foreachem to ja nie wiem co mam dać po as.
Widać jak bardzo lubisz pomagać bardzo początkującym sad.gif

artur - zrobiłem, jak mi napisałeś zamieniłem foreach na while i coś takiego jest
Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 8126449 bytes) in C:\Documents and Settings\Moje dokumenty\HTML\Witryna\dodaj.php on line 10

Teraz zrobiłem if i... teoretycznie chodzi, błędów nie daje ale wynikiem jest to, co na początku, jest tylko link do array -
Kod
<a href="Array">Array</a><br>
erix
Pomagać, to nie znaczy pisać gotowce.

While wykonuje się zawsze, gdy warunek w nawiasie jest true. Ty pewnie podstawiasz wartość, która zawsze jest prawdą. Masz w ten sposób pętlę nieskończoną, więc nie dziw się, że masz błędy.
Zrób na foreach" title="Zobacz w manualu PHP" target="_manual, ale rusz swoje cztery litery, żeby zobaczyć w manualu, jak się z tego korzysta! Masz gotowy przykład, a wystarczy tylko popodstawiać swoje zmienne...
Rookie
erix, nie mówię tu, że masz mi podać może wyjaśnić trochę dokładniej to foreac, tak patrrzyłem w link który podałeś, czytałem chyba ze 3razy to co tam napisali, i komentarze, ale naprawdę nie mogę zrozumieć. To możnaby porównać do tego jak byś np. 5latkowi dał do przeczytania trylogię, a potem kazał mu to wyjaśnić haha.gif - ale mam porównania...
mike
~Rookie tak jak trzylatek nie powinien się brać za Trylogię bo nie ogarnie, tak Ty zostaw programowanie bo ... jest poza Twoim zasięgiem.
Instrukcja foreach jest jedną z podstawowych instrukcji w tym języku. Jak masz z tym problem to może lepiej zainwestuj w zbieranie znaczków.
Wybacz ostry ton ale są granice.

Przykłady w manualu są bardzo proste i logiczne. Uruchom je, zmień dane. Poparz co się tam dzieje a zrozumiesz. A jak nie to trudno.
Rookie
Dzięki za pomoc :/ "Moderator" się znalazł, jak nie masz zamiaru pomóc, ani nic dobrego wnieść to się nie wypowiadaj, to, że foreach jest jedną z podstawowych funkcji, nie znaczy, że jak się dopiero uczę to mam zaraz przestać i znaczkami się zajmować
mike
Zamiast od godziny tracić czas na pisanie tutaj postów mógłbyś zająć się edytorem i kodem. Już byś wiedział jak działa foreach.
Co jest lepsze? Czekać godzinę aż ktoś Ci wytłumaczy czy godzinę poświęcić na naukę?

I jest różnica w tym co robisz a w tym co wydaje Ci się, że robisz. Ty się nie uczysz. Ty czekasz aż ktoś Cię nauczy.
Rookie
Gadaj zdrów - uwierz, nie często tu sprawdzam czy ktoś napisał, tylko nad tym siedzie, ajak już wcześniej napisałem, próbuję to zrobić od 3dni a dopiero dziś napisałem tu temat. Jak masz zamiar tak się wypowiadać, to nie wypowiadaj się wcale, znajdź sobie lepszy dla ciebie temat i się na nim wyżywaj
erix
Cytat
próbuję to zrobić od 3dni a dopiero dziś napisałem tu temat

To może lepiej pokaż, co zrobiłeś? Też mogę sobie mówić, że próbuję zrobić przez 3 dni, ale jeśli próbujesz tylko pisząc na forum, to się nie dziwię. Jakie wnioski wyciągnąłeś po lekturze manuala na stronie foreach" title="Zobacz w manualu PHP" target="_manual?
Rookie
Nareszcie wnosząca coś do tematu odpowiedź, proszę bardzo, od trzech dni zrobiłem plik dodaj.php wyglądający następująco:
Kod
<?php
session_start();
if (!isset($_SESSION["haslo"])){
  header("Location: Admin.php");
  exit();
}
?>
<?php
foreach ($_POST['Adres'] as $zrodla) {
$zrodla .= '<a href="'.$_POST['Adres'].'" target="_blank">'.$_POST['zrodlo'].'</a>';
}
$data = date("d.m.Y H:i:s");
if(!empty($_POST['tytul']) && !empty($_POST['tresc']) && !empty($_POST['zrodlo'])) {
$staraTresc = file_get_contents("news.txt");
$open = fopen("news.txt", "w");
$save='<table cellspacing="0" cellpadding="0" width="98%" style="margin-bottom: 10px;" align="center">
    <tr>
        <td style="width: 20;" align="left"><img src="Grafika/Niebieski/naroznik1.png" alt=""></td>
        <td style="color: #FFFFFF; background-color: #1B84FF; width: 100%;" align="center">'.$_POST['tytul'].'</td>
        <td style="width: 20;" align="right"><img src="Grafika/Niebieski/naroznik2.png" alt=""></td>
    </tr>
    <tr>
        <td valign="top" colspan="3" class="trescc">
          <p align="justify"><img src="'.$_POST['obrazek'].'" alt="">'.$_POST['tresc'].'</p>
          Źródła: '.$zrodla.'
        </td>
    </tr>
    <tr>
        <td colspan="3">
            <div style="font-family: Times New Roman; font-size: 11; background-color: #1B84FF; color: #FFFFFF;">
                Dodano '.$data.'
            </div>
        </td>
    </tr>
</table>

';
$save .= $staraTresc;
fwrite($open, $save);
fclose($open);
$ok = "News Dodano";
}
else {
$ok = "Wypełnij wszystkie pola";
}
?>
<html>
<head>
<title>Witryna</title>
<meta http-equiv="Content-type" content="text/html; charset=iso-8859-2" />
<meta http-equiv="Content-Language" content="pl" />
<meta name="Robots" content="all">
<link rel="stylesheet" type="text/css" href="style.css">
<link rel="shortcut icon" href="icon.ico">
<script type="text/javascript">
function dodaj_terek(kontener){
var znacznik = document.createElement('tr');
var kontener = document.getElementById(kontener);
}

function dodaj_tedek(kontener){
var znacznik = document.createElement('td');
znacznik.setAttribute('colspan', '2');
var kontener = document.getElementById(kontener);
kontener.appendChild(znacznik);
}

function dodaj_Adres(kontener){
var znacznik = document.createElement('input');
znacznik.setAttribute('type', 'text');
znacznik.setAttribute('name', 'Adres[]');
znacznik.setAttribute('value', 'Adres');
var kontener = document.getElementById(kontener);
kontener.appendChild(znacznik);
}

function dodaj_Nazwe(kontener){
var znacznik = document.createElement('input');
znacznik.setAttribute('type', 'text');
znacznik.setAttribute('name', 'zrodlo[]');
znacznik.setAttribute('value', 'Nazwa');
var kontener = document.getElementById(kontener);
kontener.appendChild(znacznik);
}
</script>
</head>
<body>
<table cellspacing="0" id="tabela" cellpadding="0" width="100%">
<tr>
<td class="logo">
<h1>LOGO</h1>
</td>
</tr>
<tr>
<td class="tresc">
<table cellspacing="0" cellpadding="0" width="100%">
<tr>
<td style="width: 20;"><img src="Grafika/Niebieski/naroznik3.png" alt=""></td>
<td align="center" style="background-color: #1B84FF;">
<ul id="poziom">
<li><a href="o_mnie.php"><img src="Grafika/Niebieski/lista.png" style="border: 0;" alt="">&nbsp;O mnie</a></li>
<li><a href="kontakt.php"><img src="Grafika/Niebieski/lista.png" style="border: 0;" alt="">&nbsp;Kontakt</a></li>
<li><a href="Admin.php"><img src="Grafika/Niebieski/lista.png" style="border: 0;" alt="">&nbsp;Admin</a></li>
</ul>
</td>
<td style="width: 20;"><img src="Grafika/Niebieski/naroznik4.png" alt=""></td>
</tr>
</table>
</td>
</tr>
<tr>
<td class="tresc">
<table cellspacing="0" cellpadding="0" width="100%" id="news">
<tr>
<td style="width: 200;" valign="top">
<?php
include("menu.php");
?>
</td>
<td valign="top" align="center">
<table cellspacing="0" cellpadding="0" width="98%" style="margin-bottom: 10px;">
    <tr>
        <td style="width: 20;" align="left"><img src="Grafika/Niebieski/naroznik1.png" alt=""></td>
        <td style="color: #FFFFFF; background-color: #1B84FF; width: 100%;" align="center">Admin -
<?php
  echo '<a href="logout.php?'.SID.'">';
  echo "[Wyloguj]</a>";
?>
        </td>
        <td style="width: 20;" align="right"><img src="Grafika/Niebieski/naroznik2.png" alt=""></td>
    </tr>
    <tr>
        <td valign="top" colspan="3" class="trescc">
<?php
if(empty($_POST['tytul']) && empty($_POST['tresc']) && empty($_POST['zrodlo'])) {
echo 'Dodaj Artykuł';
echo '<form action="dodaj.php?" method="post">
<table border="0" cellspacing="0" id="table">
<tr><td class="text">Tytuł:</td><td><input type="text" name="tytul"></td></tr>
<tr><td class="text">Obrazek:</td><td><input type="text" name="obrazek"></td></tr>
<tr><td class="text" valign="top">Treść:</td><td><textarea cols="50" rows="10" type="text" name="tresc"></textarea></td></tr>
<tr><td class="text" clospan="2">Źródła:</td></tr>
<tr><td id="pliki" colspan="2"><input type="text" name="Adres[]" value="Adres"><input type="text" name="zrodlo[]" value="Nazwa"></td></tr>
<tr><td valign="top"><input type="button" value="Dodaj Pole" onclick="dodaj_terek(\'pliki\');dodaj_tedek(\'pliki\');  dodaj_Adres(\'pliki\'); dodaj_Nazwe(\'pliki\');" /></td></tr>
<tr><td valign="top" colspan="2"><input type="submit" name="submit" value="Dodaj"></td></tr>
</table>
</form>';
}
else{
echo $ok;
echo '<form action="dodaj.php?" method="post">
<table border="0" cellspacing="0" id="table">
<tr><td class="text">Tytuł:</td><td><input type="text" name="tytul"></td></tr>
<tr><td class="text">Obrazek:</td><td><input type="text" name="obrazek"></td></tr>
<tr><td class="text" valign="top">Treść:</td><td><textarea cols="50" rows="10" type="text" name="tresc"></textarea></td></tr>
<tr><td class="text" clospan="2">Źródła:</td></tr>
<tr><td id="pliki" colspan="2"><input type="text" name="Adres[]" value="Adres"><input type="text" name="zrodlo[]" value="Nazwa"></td></tr>
<tr><td valign="top"><input type="button" value="Dodaj Pole" onclick="dodaj_terek(\'pliki\');dodaj_tedek(\'pliki\');  dodaj_Adres(\'pliki\'); dodaj_Nazwe(\'pliki\');" /></td></tr>
<tr><td valign="top" colspan="2"><input type="submit" name="submit" value="Dodaj"></td></tr>
</table>
</form>';
}
?>
        </td>
    </tr>
</table>
<?php
$open = fopen("news.txt", "r");
while(!feof($open)){
echo fgets($open, 4096);
}
fclose($open);
?>
<?php include("stopka.php"); ?>

To w efekcie daje:
Cytat
Warning: Invalid argument supplied for foreach() in C:\Documents and Settings\Julek\Moje dokumenty\HTML\Witryna\dodaj.php on line 9
na początku dokumentu a jak się wprowadzi dane do $_POST['Adres'] i $_POST['zrodlo'] to w efekcie zapisuje tak:
Kod
Źródła: Adres<a href="Array" target="_blank">Array</a>
erix
Cytat
Warning: Invalid argument supplied for foreach() in C:\Documents and Settings\Julek\Moje dokumenty\HTML\Witryna\dodaj.php on line 9

Wniosek: NIE CZYTAŁEŚ, jak się definiuje foreach" title="Zobacz w manualu PHP" target="_manual. Teraz porównaj sobie moją deklarację z tą, której użyłeś w swoim kodzie. Pierwszym argumentem powinna być TABLICA, a $_POST['Adres'] nią NIE JEST.
Rookie
Dzięki, no przecież, zapomniałęm o tym bo tamten artuk kazał tak napisać haha.gif, to myślałem, ze ok, teraz tylko mi podpowiedzjak powinienem zdefiniować tą tablicę, wiesz jaki efekt chcę uzyskać, więc powinienem zrobić to tak:
Kod
$tablica = array($_POST['Adres'])

czy tak?:
Kod
$tablica = array($_POST['Adres'], $_POST['zrodlo'])

Tyle chyba mi podpowiesz?? A może żadne z nich nic mi nie da do osiągnięcia celu?
erix
Mhmm, nie tu był problem. Masz w generowanym formularzu dwa pola nazwane praktycznie tak samo. Jedno adres[], a drugie adres. To drugie nadpisuje zawartość pierwszego.
Rookie
Ok poprawiłem z Adres[] na Adres tylko powiedz, jak tą tablicę zrobić w sposób 1 czy 2?
erix
Jeśli chcesz mieć tablicę, to musisz dać Adres[]. Inaczej będzie string.
Rookie
Ok dam Adres[], tylko proszę odpowiedz wreszcie którą mam zastosować heh biggrin.gif
erix
Przeczytaj cały wątek jeszcze raz... Chcesz przejść przez całą tablicę $_POST['Adres'], napisaliśmy, której konstrukcji użyć.
Rookie
Ok, tylko wyjaśnij o co chodziło ze słowami "chcesz przejść całą tablicę" jakoś tego nie zrozumiałem ;p
mike
Przejść to tablicy to znaczy iterować ją pętlą co pozwala na dostęp do każdego elementu tablicy.
Rookie
;( Nie no kurcze nie może mi wyjść, spróbowałem z na 1sposób, nie spróbowałem na 2 sposób też nie, już totalnie nie mam pomysłu o foreach jeszcze raz przeczytałem, nic, ten temat równiej przewertowałem, może przystaniesz na propozycję?: Udzielisz mi małej, naprawdę drobnej podpowiedzi? biggrin.gif
artur_dziocha
no dobra
  1. <?php
  2. $zrodlo['zrodlo'] = $_POST['Adres'];
  3. $zrodlo['nazwa'] = $_POST['nazwa'];
  4. foreach($zrodlo as $key){
  5. $dane .= "<a href='".$key['zrodlo']."'>".$key['nazwa']."</a>";
  6. }
  7. ?>

i tyle w tym temacie. Czytaj uważnie manual
Rookie
artur, ty to masz wyczucie chwili, właśnie na to wpadłem serio, i miałem najpierw wypróbować, a potem napisać, patrzę a ty piszesz coś prawie identycznego biggrin.gif ale dzięki, właśnie próbuję

edit:
niestety w efekcie wychodzi to:
Cytat
Źródła: <a href="N" target="_blank">N</a><a href="" target="_blank"></a><a href="" target="_blank"></a>
erix
Na obie tablice tak nie zrobisz; nie ma takich kluczy w tej zmiennej. Daj sobie przed pętlą var_dump($zrodlo) i zobacz, gdzie masz te dane. tongue.gif
Rookie
Noo... czyli jak nawet tak nie chce pójść, to ja już nie wiem,( mała?, maciupeńka podpowiedź??)questionmark.gif PLS
erix
Napisałem wystarczająco dużo podpowiedzi. Tobie przydałby się kurs PHP bądź lektura działu "Tablice" w manualu. To nie helpdesk, włóż trochę własnego wysiłku.
artur_dziocha
erix miałes racje z tablicami:)
mój nastepny błąd ale już znalazłem rozwiązanie:)
Rookie poczytaj o tablicach:)
Pozdrawiam
Rookie
Poczytam z pewnością, ale pomóżcie mi w jednym: Napiszę wam skrypt przetwarzający dane i zapisujący je do pliku i skrypt z formularzem, wy powiedzcie tylko, gdzie leży błąd a ja postaram się sam dojść i go naprawić. Skrypt przetwarzający dane i zapisujący je do pliku:
Kod
<?php
$zrodl = array ($_POST[Adres], $_POST[zrodlo]);
foreach ($zrodl as $klucz) {
$zrodla .= '<a href="'.$klucz[0].'" target="_blank">'.$klucz[1].'</a>';
}
$data = date("d.m.Y H:i:s");
if(!empty($_POST['tytul']) && !empty($_POST['tresc']) && !empty($_POST['zrodlo'])) {
$staraTresc = file_get_contents("news.txt");
$open = fopen("news.txt", "w");
$save ='<table cellspacing="0" cellpadding="0" width="98%" style="margin-bottom: 10px;" align="center">
    <tr>
        <td style="width: 20;" align="left"><img src="Grafika/Niebieski/naroznik1.png" alt=""></td>
        <td style="color: #FFFFFF; background-color: #1B84FF; width: 100%;" align="center">'.$_POST['tytul'].'</td>
        <td style="width: 20;" align="right"><img src="Grafika/Niebieski/naroznik2.png" alt=""></td>
    </tr>
    <tr>
        <td valign="top" colspan="3" class="trescc">
          <p align="justify"><img src="'.$_POST['obrazek'].'" alt="">'.$_POST['tresc'].'</p>
          Źródła: '.$zrodla.'
        </td>
    </tr>
    <tr>
        <td colspan="3">
            <div style="font-family: Times New Roman; font-size: 11; background-color: #1B84FF; color: #FFFFFF;">
                Dodano '.$data.'
            </div>
        </td>
    </tr>
</table>

';
$save .= $staraTresc;
fwrite($open, $save);
fclose($open);
$ok = "News Dodano";
}
else {
$ok = "Wypełnij wszystkie pola";
}
?>

A oto skrypt z formularzem osadzony w tej samej stronie: dodaj.php:
Kod
<?php
if(empty($_POST['tytul']) && empty($_POST['tresc']) && empty($_POST['zrodlo'])) {
echo 'Dodaj Artykuł';
echo '<form action="dodaj.php?" method="post">
<table border="0" cellspacing="0" id="table">
<tr><td class="text">Tytuł:</td><td><input type="text" name="tytul"></td></tr>
<tr><td class="text">Obrazek:</td><td><input type="text" name="obrazek"></td></tr>
<tr><td class="text" valign="top">Treść:</td><td><textarea cols="50" rows="10" type="text" name="tresc"></textarea></td></tr>
<tr><td class="text" clospan="2">Źródła:</td></tr>
<tr><td id="pliki" colspan="2"><input type="text" name="Adres[]" value="Adres"><input type="text" name="zrodlo[]" value="Nazwa"></td></tr>
<tr><td valign="top"><input type="button" value="Dodaj Pole" onclick="dodaj_terek(\'pliki\');dodaj_tedek(\'pliki\');  dodaj_Adres(\'pliki\'); dodaj_Nazwe(\'pliki\');" /></td></tr>
<tr><td valign="top" colspan="2"><input type="submit" name="submit" value="Dodaj Artykuł"></td></tr>
</table>
</form>';
}
else{
echo $ok;
echo '<form action="dodaj.php?" method="post">
<table border="0" cellspacing="0" id="table">
<tr><td class="text">Tytuł:</td><td><input type="text" name="tytul"></td></tr>
<tr><td class="text">Obrazek:</td><td><input type="text" name="obrazek"></td></tr>
<tr><td class="text" valign="top">Treść:</td><td><textarea cols="50" rows="10" type="text" name="tresc"></textarea></td></tr>
<tr><td class="text" clospan="2">Źródła:</td></tr>
<tr><td id="pliki" colspan="2"><input type="text" name="Adres[]" value="Adres"><input type="text" name="zrodlo[]" value="Nazwa"></td></tr>
<tr><td valign="top"><input type="button" value="Dodaj Pole" onclick="dodaj_terek(\'pliki\');dodaj_tedek(\'pliki\');  dodaj_Adres(\'pliki\'); dodaj_Nazwe(\'pliki\');" /></td></tr>
<tr><td valign="top" colspan="2"><input type="submit" name="submit" value="Dodaj Artykuł"></td></tr>
</table>
</form>';
}
?>

A to morze się przydać, to co napisałem w tej javie:
Kod
<script type="text/javascript">
function dodaj_terek(kontener){
var znacznik = document.createElement('tr');
var kontener = document.getElementById(kontener);
}

function dodaj_tedek(kontener){
var znacznik = document.createElement('td');
znacznik.setAttribute('colspan', '2');
var kontener = document.getElementById(kontener);
kontener.appendChild(znacznik);
}

function dodaj_Adres(kontener){
var znacznik = document.createElement('input');
znacznik.setAttribute('type', 'text');
znacznik.setAttribute('name', 'Adres[]');
znacznik.setAttribute('value', 'Adres');
var kontener = document.getElementById(kontener);
kontener.appendChild(znacznik);
}

function dodaj_Nazwe(kontener){
var znacznik = document.createElement('input');
znacznik.setAttribute('type', 'text');
znacznik.setAttribute('name', 'zrodlo[]');
znacznik.setAttribute('value', 'Nazwa');
var kontener = document.getElementById(kontener);
kontener.appendChild(znacznik);
}
</script>
artur_dziocha
podpowiedz
przed petla foreach zrób var_dump($zrod1);
i zastanów sie jak połączyć ze sobą dane z tablic
Pozdrawiam
Rookie
Wyszło cuś takiego:
Cytat
array(2) { [0]=> NULL [1]=> NULL }

Jak to można zrobić, żeby nie było NULL, o co w tym chodzi, z mojego punktu widzenia, wszystko jest logiczne w tym co mam napisane sad.gif

edit:
Nie mam pojęcia, gdy jest tylko 1 pole do wpisania źródła, to jest tak:
Cytat
array(2) { [0]=> array(1) { [0]=> string(5) "Adres" } [1]=> array(1) { [0]=> string(5) "Nazwa" } }

Gdy są 2 pola źródła, to jest tak:
Cytat
array(2) { [0]=> array(1) { [0]=> string(5) "Adres" } [1]=> array(2) { [0]=> string(5) "Nazwa" [1]=> string(5) "Nazwa" } }

A gdy więcej to jest analogicznie do 2, czyli dodaje do tablicy tylko Nazwę, a Adresu już nie.
No i oczywiście generuje przy jednym wpisie coś takiego:
Kod
Źródła: <a href="Adres" target="_blank"></a><a href="Nazwa" target="_blank"></a>

Przy 2 wpisach:
Kod
Źródła: <a href="Adres" target="_blank"></a><a href="Nazwa" target="_blank">Nazwa</a>

A przy większej ilości tak samo jak w drugim przypadku.
Podałem wam kody "dodaj.php", więc proszę o odpowiedź: Gdzie jest błąd?

ODPOWIE KTOŚ W CZYM MAM BŁĄD?? proszę.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.