Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] System newsów
Forum PHP.pl > Forum > Przedszkole
Grin
Witam

Postanowiłem zacząć naukę php od stworzenia małego cms. Trafiłem na taki o to tutorial http://www.swww.pl/116,pokaz,Artykuly.html

W phpMyAdminie wykonałem zapytanie

  1. CREATE TABLE `newsy` (
  2. `id` INT NOT NULL AUTO_INCREMENT ,
  3. `tytul` TINYTEXT NOT NULL ,
  4. `skrot` TEXT NOT NULL ,
  5. `tresc` TEXT NOT NULL ,
  6. `data` DATETIME NOT NULL ,
  7. PRIMARY KEY ( `id` ) );


Natomiast moje pliki wyglądaj tak

news.php
  1. <?php
  2. mysql_connect('localhost', 'root' , '');
  3. mysql_select_db("newsy");
  4. $query = mysql_query("select * from newsy where id='$id'");
  5. $rekord = mysql_fetch_array($query);
  6. $tekst = '<b><h3>'.$rekord[1].'</h3></b>'.$rekord[3].'<br/><br/>'.$rekord[4];
  7. echo $tekst;
  8. ?>


include.php
  1. <?php
  2. mysql_connect('localhost', 'root' , '') or die('Nieudane połączenie z bazą danych');
  3. mysql_select_db("newsy") or die('Nie można odnaleźć tabeli newsy');
  4. $query = mysql_query("select * from newsy order by data desc limit 0,3");
  5. while($rekord = mysql_fetch_array($query))
  6. {
  7. $tekst .= '<b><h3>'.$rekord[1].'</h3></b>'.$rekord[2].'<br/><a href="news.php?id='.$rekord[0].'">czytaj wiecej...</A>';
  8. }
  9. echo $tekst;
  10. ?>


dodaj.php
  1. <?php
  2. mysql_connect('localhost', 'root' , '');
  3. mysql_select_db("newsy");
  4. $query = mysql_query("insert into newsy values('', '$tytul', '$skrot', '$tresc', now() )");
  5. echo 'Dziękujemy za dodanie newsa';
  6. ?>


dodaj.htm
  1. <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2">
  2.  
  3. <title>Dodaj newsa</title>
  4. </head>
  5. <h2>Dodawanie newsa:</h2>
  6. <form action="dodaj.php" method=post>
  7. tytuł: <input type="text" name="tytul">
  8. <br/><br/>skrót: </br><textarea name="skrot" rows="7" cols="50"></textarea>
  9. <br/><br/>treœć: </br><textarea name="tresc" rows="20" cols="50"></textarea>
  10. <br/><br/><input type="submit" value="Dodaj"></form>
  11. </body>
  12. </head>


Kiedy dodaje news przez formularz dodaj.htm przeglądarka zwraca komunikat


Notice: Undefined variable: tytul in D:\wamp\www\avision\dodaj.php on line 4

Notice: Undefined variable: skrot in D:\wamp\www\avision\dodaj.php on line 4

Notice: Undefined variable: tresc in D:\wamp\www\avision\dodaj.php on line 4
Dziękujemy za dodanie newsa


Gdyby ktoś był wstanie sensownie wytłumaczyć gdzie leży błąd byłbym dozgonnie wdzięczny winksmiley.jpg
nospor
chodzi o register_globals.
Nie $tytuł
a: $_POST[tytul]
analogicznie reszta

http://nospor.pl/php-faq.html#faq-3
Grin
OK zmieniłem dodaj.php na

  1. <?php
  2. $tytul = $_POST['tytul'];
  3. $skrot = $_POST['skrot'];
  4. $tresc = $_POST['tresc'];
  5. mysql_connect('localhost', 'root' , '');
  6. mysql_select_db("newsy");
  7. $query = mysql_query("insert into newsy values('', '$tytul', '$skrot', '$tresc', now() )");
  8. echo 'Dziękujemy za dodanie newsa';
  9. ?>


Formularz poprawnie dodaje dane (sprawdziłem w phpMyAdmin) ale żeby nie było tak kolorowo po wywołaniu pliku news.php przeglądarka zwraca błąd

Notice: Undefined variable: id in D:\wamp\www\avision\news.php on line 4

czyli zmienna z linii :

  1. $query = mysql_query("select * from newsy where id='$id'");
nospor
Analizujesz wogóle co dostajesz czy zmieniasz bezmyślnie? Przecież napisałem ci ze chodzi o register_globals, podałem ci linka gdzie to wyjaśniam a ty masz kolejny identyczny problem jak pierwszy.
krispak
Skad bierzesz to "$id" - z get? z post ? z jakiejs przypisanej zmiennej? Blad masz w zmiennej $id.
nospor
@krispak przeczytaj kody z pierwszego posta to się dowiesz skąd.
A jak już się dowiesz skąd to również chyba sam przyznasz że już autor ode mnie uzyskał odpowiedź.
krispak
A jo widze skad smile.gif Odpowiedz juz jest wiec nalezy sie do niej zastosowac.

Pozdrawiam
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.