Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php/sql]problem ze skryptem
ronia65
post
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 25.09.2006

Ostrzeżenie: (0%)
-----


Mam coś takiego

  1. <?php
  2. CREATE TABLE logowanie (
  3. login VARCHAR(50) NOT NULL PRIMARY KEY,
  4. haslo VARCHAR(32) NOT NULL,
  5. kod VARCHAR(32) NOT NULL,
  6. status TINYINT UNSIGNED NOT NULL,
  7. data DATETIME NOT NULL,
  8. email VARCHAR(120) NOT NULL,
  9.  
  10. imie VARCHAR(200),
  11. miejsce VARCHAR(120) NOT NULL
  12. )
  13. ?>



  1. <?
  2. $mysql_host = "localhost";
  3. $mysql_login = "log";
  4. $mysql_haslo = "qwe";
  5. $mysql_baza = "log";
  6. $mysql_tabela = "logowanie";
  7. $twoj_adres = "ronia65@o2.pl";
  8.  
  9. $opcja = trim($_REQUEST["opcja"]);
  10.  
  11. if ($opcja=="test") {
  12.  
  13. // **************************************************
  14. // ********** 1. sprawdzenie danych i dodanie uzytkownika
  15. // **************************************************
  16.  
  17. $login = htmlspecialchars(stripslashes(trim($_POST["login"])), ENT_QUOTES);
  18. $haslo = htmlspecialchars(stripslashes(trim($_POST["haslo"])), ENT_QUOTES);
  19. $email = htmlspecialchars(stripslashes(trim($_POST["email"])), ENT_QUOTES);
  20. $imie = htmlspecialchars(stripslashes(trim($_POST["imie"])), ENT_QUOTES);
  21. $miejsce = htmlspecialchars(stripslashes(trim($_POST["imie"])), ENT_QUOTES);
  22.  
  23. if (strlen($login)<3 or strlen($login)>50
  24. or !eregi("^[a-zA-Z0-9_.]+$",$login)) { $blad++;
  25. echo "<span style=\"color:red;\">Login musi mieć od 3 do 50 znaków
  26. bez polskich liter i spacji!</span><br />";
  27. } else {
  28. if ($baza = mysql_connect($mysql_host, $mysql_login, $mysql_haslo)) {
  29. if (mysql_select_db($mysql_baza)) {
  30.  $wynik=mysql_query("SELECT * FROM $mysql_tabela WHERE login='$login'");
  31. } else echo "Nie można połączyć się z bazą";
  32. mysql_close($baza);
  33. } else echo "Nie można połączyć się z serwerem MySQL";
  34. if (mysql_num_rows($wynik)<>0) { $blad++;
  35. echo "<span style=\"color:red;\">Login już został przez kogoś użyty!.
  36. Zaproponuj inny!</span><br />";
  37. }
  38. }
  39.  
  40. if (strlen($haslo)<6 or strlen($haslo)>50
  41.  or !eregi("^[a-zA-Z0-9]+$",$haslo)) { $blad++;
  42. echo "<span style=\"color:red;\">Hasło musi mieć od 6 do 50 znaków
  43. bez polskich liter i spacji!</span><br />";
  44. }
  45.  
  46. if (!eregi("^[0-9a-z_.-]+@([0-9a-z-]+.)+[a-z]{2,4}$",$email)) { $blad++;
  47. echo "<span style=\"color:red;\">E-mail nie został
  48. podany prawidłowo!</span><br />";
  49. }
  50.  
  51. if ($blad==0) {
  52. $kod = uniqid(rand());
  53. $haslo = md5($haslo); // zaszyfrowanie hasla
  54. if ($baza = mysql_connect($mysql_host, $mysql_login, $mysql_haslo)) {
  55. if (mysql_select_db($mysql_baza)) {
  56. $wynik = mysql_query("INSERT INTO $mysql_tabela
  57. VALUES('$login', '$haslo', '$kod', 1, NOW(), '$email', '$imie', '$miejsce')");
  58. } else echo "Nie można połączyć się z bazą";
  59. mysql_close($baza);
  60. } else echo "Nie można połączyć się z serwerem MySQL";
  61.  
  62. if ($wynik) {
  63. $list="
  64. Aby potwierdzic rejestracje kliknij w ciagu 48 godzin na adres:
  65. <a href=\"http://adres.pl/rejestracja.php?opcja=potwierdz&kod=$kod\" target=\"_blank\">http://adres.pl/rejestracja.php?opcja=potw...p;kod=$kod</a>
  66. Jezeli nie chcesz sie rejestrowac, zignoruj ten list.
  67. ";
  68. mail($email, "Rejestracja", $list, "From: <$twoj_adres>");
  69. echo "<p>Aby dokończyć proces rejestracji odbierz e-mail</p>";
  70. }
  71. } else $opcja="";
  72. }
  73.  
  74. if ($opcja=="") {
  75.  
  76. // **************************************************
  77. // ********** 2. formularz zakładania konta
  78. // **************************************************
  79.  
  80. echo <<<KONIEC
  81. <form action="rejestracja.php" method="post">
  82. <input type="hidden" name="opcja" value="test" />
  83. <table>
  84. <tr>
  85.   <td>login:*</td>
  86.   <td><input type="text" name="login" value="$login" /></td>
  87. </tr>
  88. <tr>
  89.   <td>hasło:*</td>
  90.   <td><input type="password" name="haslo" value="$haslo" /></td>
  91. </tr>
  92. <tr>
  93.   <td>e-mail:*</td>
  94.   <td><input type="text" name="email" value="$email" /></td>
  95. </tr>
  96. <tr>
  97.   <td>imie i nazwisko:</td>
  98.   <td><input type="text" name="imie" value="$imie" /></td>
  99. </tr>
  100. <tr>
  101.   <td>miejsce</td>
  102.   <td><input type="text" name="miejsce" value="$miejsce" /></td>
  103. </tr>
  104. <tr>
  105.   <td> </td>
  106.   <td><input type="submit" value=" OK, rejestruję się!" /></td>
  107. </tr>
  108. </table>
  109. </form>
  110. KONIEC;
  111. }
  112.  
  113.  
  114. if ($opcja=="potwierdz") {
  115. // **************************************************
  116. // ********** 3. potwierdzenie rejestracji, uaktywnienie uzytkownika
  117. // **************************************************
  118.  
  119. $kod = htmlspecialchars(stripslashes(trim($_GET["kod"])), ENT_QUOTES);
  120. if ($kod<>"") {
  121. if ($baza = mysql_connect($mysql_host, $mysql_login, $mysql_haslo)) {
  122. if (mysql_select_db($mysql_baza)) {
  123. $wynik = mysql_query("DELETE FROM $mysql_tabela
  124. WHERE data<=DATE_SUB(NOW(),INTERVAL 2 DAY) and status=1");
  125. $wynik = mysql_query("UPDATE $mysql_tabela
  126. SET status='5', data=NOW() WHERE kod='$kod' and status=1");
  127. $wynik = mysql_query("SELECT * FROM $mysql_tabela
  128. WHERE kod='$kod' and status=5");
  129. } else echo "Nie można połączyć się z bazą";
  130. mysql_close($baza);
  131. } else echo "Nie można połączyć się z serwerem MySQL";
  132. if (mysql_num_rows($wynik)==1) {
  133. $dane = mysql_fetch_array($wynik);
  134. echo "<p>Dziękujemy. Rejestracja została zakończona poprawnie.</p>";
  135. }
  136. }
  137. if ($kod=="" or mysql_num_rows($wynik)<>1) {
  138. echo "<p>Rejestracja nie może zostać dokończona -
  139. sprawdź czy link jest poprawny!</p>";
  140. }
  141. }
  142.  
  143.  
  144.  
  145. if ($opcja=="przypomnij") {
  146.  
  147. // **************************************************
  148. // ********** 4. formularz przypominania danych
  149. // **************************************************
  150.  
  151. echo <<<KONIEC
  152. <p>Wpisz login użyty podczas rejestracji.
  153. Po chwili otrzymasz mailem nowe hasło.</p>
  154. <form action="rejestracja.php" method="post">
  155. <input type="hidden" name="opcja" value="wyslijhaslo" />
  156. <table>
  157. <tr>
  158.   <td>login:</td>
  159.   <td><input type="text" name="login" value="$login" /></td>
  160. </tr>
  161. <tr>
  162.   <td> </td>
  163.   <td><input type="submit" value=" przypomnij " /></td>
  164. </tr>
  165. </table>
  166. </form>
  167. KONIEC;
  168. }
  169.  
  170.  
  171. function haslo() {
  172. $min = 6; $max = 12;
  173. for($i=0;$i<rand($min,$max);$i++) {
  174. $znak=chr(rand(48,122));
  175. if (eregi("[0-9a-zA-Z]",$znak)) $haslo .= $znak;
  176. else $i--;
  177. }
  178. return $haslo;
  179. }
  180.  
  181.  
  182. if ($opcja=="wyslijhaslo") {
  183.  
  184. // **************************************************
  185. // ********** 5. zmiana hasla i wyslanie go do uzytkownika
  186. // **************************************************
  187.  
  188. $login = htmlspecialchars(stripslashes(trim($_POST["login"])), ENT_QUOTES);
  189. $hasloczytelne = haslo();
  190. $haslo = md5($hasloczytelne);
  191. if ($login<>"") {
  192. if ($baza = mysql_connect($mysql_host, $mysql_login, $mysql_haslo)) {
  193. if (mysql_select_db($mysql_baza)) {
  194. $wynik = mysql_query("UPDATE $mysql_tabela
  195. SET haslo='$haslo' WHERE login='$login' and status=5");
  196. $wynik = mysql_query("SELECT * FROM $mysql_tabela
  197.  WHERE login='$login' and status=5");
  198. } else echo "Nie można połączyć się z bazą";
  199. mysql_close($baza);
  200. }
  201. if (mysql_num_rows($wynik)==1) {
  202. $dane = mysql_fetch_array($wynik);
  203. $email = $dane["email"];
  204. $list="Oto przypominane haslo: $hasloczytelne";
  205. mail($email, "Przypomnienie hasla", $list,"From: <$twoj_adres>");
  206. echo "<p>Hasło zostało wysłane mailem...</p>";
  207. } else {
  208. echo "<p>Użytkownik o podanym loginie nie istnieje!</p>";
  209. }
  210. }
  211. }
  212. ?>


Problem jest taki że po wpisaniu danych imię zapisuje mi sie w polu miejsce co z tym zrobić??


-------------------------
dodałem [tag] do tematu ponieważ
padły już odpowiedzi
na przyszłość pamiętaj, że dodawanie
[tag]u należy do Ciebie
~Cienki1980
Go to the top of the page
+Quote Post
help_mee
post
Post #2





Grupa: Zarejestrowani
Postów: 244
Pomógł: 21
Dołączył: 10.02.2008
Skąd: Załęcze Wielkie

Ostrzeżenie: (0%)
-----


Spróbuj tak:
  1. <?php
  2. $query = "INSERT INTO com (nazwapola, nazwapola2)".
  3.  "VALUES ('$zmienna1', '$zmienna2');";
  4. $wynik = mysql_query ($query);
  5. ?>

itd.

  1. <?php
  2. $wynik = mysql_query("INSERT INTO $mysql_tabela (login, haslo, kod, status, data, email, imie, miejsce) VALUES('$login', '$haslo', '$kod', '1', NOW(), '$email', '$imie', '$miejsce')");
  3.  
  4. ?>

W twoim przypadku tak ^^

Ten post edytował help_mee 3.04.2008, 20:58:15
Go to the top of the page
+Quote Post
ronia65
post
Post #3





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 25.09.2006

Ostrzeżenie: (0%)
-----


nie za bardzo wiem jak ja mam to zastosować i gdzie, jak byś mógł mi to wytłumaczyć byłbym wdzięczny
Go to the top of the page
+Quote Post
help_mee
post
Post #4





Grupa: Zarejestrowani
Postów: 244
Pomógł: 21
Dołączył: 10.02.2008
Skąd: Załęcze Wielkie

Ostrzeżenie: (0%)
-----


Jest to od 51 linijki skryptu:
  1. <?php
  2. if ($blad==0) {
  3. $kod = uniqid(rand());
  4. $haslo = md5($haslo); // zaszyfrowanie hasla
  5. if ($baza = mysql_connect($mysql_host, $mysql_login, $mysql_haslo)) {
  6. if (mysql_select_db($mysql_baza)) {
  7.  
  8. $wynik = mysql_query("INSERT INTO $mysql_tabela (login, haslo, kod, status, data, email, imie, miejsce) VALUES('$login', '$haslo', '$kod', '1', NOW(), '$email', '$imie', '$miejsce')");
  9. } else echo "Nie można połączyć się z bazą";
  10. mysql_close($baza);
  11. } else echo "Nie można połączyć się z serwerem MySQL";
  12. ?>

spróbuj tak jak powyżej

a masz takie coś jak phpMyAdmin?

Ten post edytował help_mee 3.04.2008, 21:13:14
Go to the top of the page
+Quote Post
maziak
post
Post #5





Grupa: Zarejestrowani
Postów: 155
Pomógł: 17
Dołączył: 9.07.2007

Ostrzeżenie: (0%)
-----


Witaj,
20 i 21 linijka
  1. <?php
  2. $imie = htmlspecialchars(stripslashes(trim($_POST["imie"])), ENT_QUOTES);
  3. $miejsce = htmlspecialchars(stripslashes(trim($_POST["imie"])), ENT_QUOTES);
  4. ?>


dwa razy "imie".

Pozdrawiam.
Go to the top of the page
+Quote Post
ronia65
post
Post #6





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 25.09.2006

Ostrzeżenie: (0%)
-----


teraz działa. dzięki

Ten post edytował ronia65 3.04.2008, 21:29:46
Go to the top of the page
+Quote Post
marcio
post
Post #7





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


  1. <?php
  2. $wynik = mysql_query("INSERT INTO ".$mysql_tabela."(nazwa1,nazwa2,nazwa3,nazwa4,nazwa5,nazwa6,nazwa7,nazwa7)
  3. VALUES('$login', '$haslo', '$kod', 1, NOW(), '$email', '$imie', '$miejsce')");
  4. //lub
  5. $wynik = mysql_query("INSERT INTO nazwa_tabeli(nazwa1,nazwa2,nazwa3,nazwa4,nazwa5,nazwa6,nazwa7,nazwa7)
  6. VALUES('$login', '$haslo', '$kod', 1, NOW(), '$email', '$imie', '$miejsce')");
  7. ?>
Go to the top of the page
+Quote Post
ronia65
post
Post #8





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 25.09.2006

Ostrzeżenie: (0%)
-----


a na jakiej zasadzie zrobić pole płeć

formularz wyglądał by np tak

  1. <?php
  2. <select name="plec" class="SGform">
  3. option value="0">wybierz
  4. </option><option value="1">kobieta
  5. </option><option value="2">mężczyzna
  6. </option></select>
  7. ?>
Go to the top of the page
+Quote Post
marcio
post
Post #9





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Dajesz kolumne plec typu int(1)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 06:57