Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Dodawanie recordu
Forum PHP.pl > Forum > Przedszkole
topik53
Witam mam taki kodzik
  1. <form action="add.php" method="get">
  2.  
  3. <strong>Nazwa konta:</strong><input name="tytul" type="text" value="" /><br>
  4.  
  5. <strong>Haslo:</strong><input name="tresc" type="password" value="" /><br>
  6.  
  7.  
  8. <input type="submit" value="Zarejestruj" />
  9.  
  10. </form>
  11. <?php
  12. require('conn.php');
  13.  
  14. if (isset($_SESSION['user_id']) and isset($_SESSION['login']))
  15. {
  16. echo $_SESSION['login'];
  17. if (isset($_GET['tytul']) and isset($_GET['tresc']))
  18. {
  19. $zapytanie="INSERT INTO tresc_not (tytul,tresc) VALUES('$tytul','$tresc')";
  20. mysql_query($zapytanie) or die("Wystąpił błąd" );
  21. echo('Konto '.$tytul.' zostalo utworzone');
  22. }
  23. }
  24. ?>

Chodzi o to zeby sprawdzilo czy jest zalogowane , i jezeli jest dodalo notke+tytul, jezeli nie jest "nie jestes zalogowany"
dodaje mi rekordy do bazy ale jak np wpisze asdgadfgadfg to daje mi 0
bastard13
Ogólnie to tak:
  1. if(isset($_SESSION['user']))
  2. { //zaloowany
  3. }
  4. else
  5. { //nie zalogowany
  6. if(isset($_GET['tytul']))
  7. {//przesłany get
  8. //walidacja i inne działania, które mają być w tym momencie wykonane
  9. }
  10. else
  11. {
  12. //wyświetl formularz
  13. }
  14. }

Poza tym do logowania lepiej użyć posta, a nie geta. Zauważ, że jeżeli przesyłasz getem to absolutnie bez sensu jest ustawienie inputa z hasłem na password, ponieważ całe hasło i tak zostanie przesłane w linku.
topik53
Zaraz sprawdze, co do geta przy logowaniu... to tobie to postem smile.gif
meehow18
z tego Co wiem, to sesje powinieneś mieć wystartowaną, na samym początku pliku.
topik53
Cytat(bastard13 @ 10.09.2010, 23:17:21 ) *
Ogólnie to tak:
  1. if(isset($_SESSION['user']))
  2. { //zaloowany
  3. }
  4. else
  5. { //nie zalogowany
  6. if(isset($_GET['tytul']))
  7. {//przesłany get
  8. //walidacja i inne działania, które mają być w tym momencie wykonane
  9. }
  10. else
  11. {
  12. //wyświetl formularz
  13. }
  14. }

Poza tym do logowania lepiej użyć posta, a nie geta. Zauważ, że jeżeli przesyłasz getem to absolutnie bez sensu jest ustawienie inputa z hasłem na password, ponieważ całe hasło i tak zostanie przesłane w linku.

O ile mi sie nie pomieszalo to sie pomyliles.
Chodzilo mi o to że Jak będzie ZALOGOWANY to wtedy może dodać rekord!
nawet po wykorzystaniu twojej wersji dodaje mi 0
lord2105
proszę o zrzut bazy danych
topik53
  1. -- phpMyAdmin SQL Dump
  2. -- version CBA.PL
  3. --
  4. -- Host: mysql.cba.pl
  5. -- Czas wygenerowania: 13 Wrz 2010, 20:00
  6. -- Wersja serwera: 5.0.77
  7. -- Wersja PHP: 5.2.14
  8.  
  9. SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
  10. SET time_zone = "+00:00";
  11.  
  12.  
  13. /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
  14. /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
  15. /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
  16. /*!40101 SET NAMES utf8 */;
  17.  
  18. --
  19. -- Baza danych: `lototest_cba_pl`
  20. --
  21.  
  22. -- --------------------------------------------------------
  23.  
  24. --
  25. -- Struktura tabeli dla `notki`
  26. --
  27.  
  28. CREATE TABLE IF NOT EXISTS `notki` (
  29. `id_not` int(11) NOT NULL AUTO_INCREMENT,
  30. `id_us` int(11) NOT NULL,
  31. PRIMARY KEY (`id_not`)
  32. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
  33.  
  34. --
  35. -- Zrzut danych tabeli `notki`
  36. --
  37.  
  38.  
  39. -- --------------------------------------------------------
  40.  
  41. --
  42. -- Struktura tabeli dla `tresc_not`
  43. --
  44.  
  45. CREATE TABLE IF NOT EXISTS `tresc_not` (
  46. `id_not` int(11) NOT NULL,
  47. `tytul` int(50) NOT NULL,
  48. `tresc` longtext character SET utf8 collate utf8_polish_ci NOT NULL
  49. ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
  50.  
  51. --
  52. -- Zrzut danych tabeli `tresc_not`
  53. --
  54.  
  55. INSERT INTO `tresc_not` (`id_not`, `tytul`, `tresc`) VALUES
  56. (0, 0, ''),
  57. (0, 0, ''),
  58. (0, 0, ''),
  59. (0, 0, ''),
  60. (0, 0, ''),
  61. (0, 0, ''),
  62. (0, 0, ''),
  63. (0, 0, ''),
  64. (0, 0, ''),
  65. (0, 0, 'asd');
  66.  
  67. -- --------------------------------------------------------
  68.  
  69. --
  70. -- Struktura tabeli dla `user`
  71. --
  72.  
  73. CREATE TABLE IF NOT EXISTS `user` (
  74. `id` int(11) NOT NULL AUTO_INCREMENT,
  75. `login` varchar(50) NOT NULL,
  76. `password` varchar(40) NOT NULL,
  77. PRIMARY KEY (`id`)
  78. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
  79.  
  80. --
  81. -- Zrzut danych tabeli `user`
  82. --
  83.  
  84. INSERT INTO `user` (`id`, `login`, `password`) VALUES
  85. (1, 'asd', 'ceedf12f8fe3dc63d35b2567a59b93bd62ff729a');

wiem ze baza jest zle zaprojektowana, postaram sie jjutro poprawic
Mostrom
Nie wiem czy masz już taką sesję jak np $_SESSION["zalogowany"], to jest taka sesja, która będzie miała informacje czy czy jesteś zalogowany. Skrypt dodanie rekordu wstaw poprostu w takim warunku
  1. if($_SESSION["zalogowany"]=1){
  2. mysql_query($zapytanie) or die("Wystąpił błąd" );
  3. }
  4. else {
  5. echo "Nie jesteś zalogowany. Spadaj";
  6. }
lord2105
  1. `tytul` int(50) NOT NULL,


tytuł może być intem chyba nie tongue.gif masz odp dlaczego dodaje Ci zero pozdrawiam
topik53
Dziekuje tongue.gif
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.