Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php/sql]problem ze skryptem
Forum PHP.pl > Forum > Przedszkole
ronia65
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
help_mee
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 ^^
ronia65
nie za bardzo wiem jak ja mam to zastosować i gdzie, jak byś mógł mi to wytłumaczyć byłbym wdzięczny
help_mee
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?
maziak
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.
ronia65
teraz działa. dzięki
marcio
  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. ?>
ronia65
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. ?>
marcio
Dajesz kolumne plec typu int(1)
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.