Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Skrypt rejestracji = problem
Forum PHP.pl > Forum > Przedszkole
webświr
Witam

Otóż jak w temacie napisałem skrypt rejestracji ( rodem z toturialu ) niestety nie dodaje mi rekordów do tabeli, wiem że mam połączenie z bazą danych, ale nie wiem w czym tkwi problem

  1. <?php
  2. //Rejestracja
  3. require 'polaczenie.inc.php';
  4.  
  5. if (isset($_POST['uzytkownik'])&&
  6. isset($_POST['haslo'])&&
  7. isset($_POST['haslo2'])&&
  8. isset($_POST['email'])) {
  9. $uzy = $_POST['uzytkownik'];
  10. $has = $_POST['haslo'];
  11. $ha2 = $_POST['haslo2'];
  12. $ema = $_POST['email'];
  13. // hasło na hasha
  14. $has_hash = sha1($has); // 40 znaków generuje sha1
  15. if( !empty($uzy)&&
  16. !empty($has)&&
  17. !empty($ha2)&&
  18. !empty($ema)){
  19. if ($has != $ha2){
  20. echo 'hasła nie są takie same';
  21. }else{
  22. $q = sprintf("SELECT 'id' FROM 'uzytkownicy' WHERE 'uzytkownik'='".mysql_real_escape_string($uzy)."'");
  23. if($wQ = mysql_query($q)){
  24. $wQr = mysql_num_rows($wQ);
  25. if($wQr == 1){
  26. echo 'taki użytkownik już istnieje';
  27. }else if ($wQr == 0){
  28. $q = sprintf("INSERT INTO 'uzytkownicy' VALUES (' ','".mysql_real_escape_string($uzy)."','".mysql_real_escape_string($has_hash)."','".mysql_real_escape_string($ema)."')");
  29. if(mysql_query($q)){
  30. echo 'zostałeś zarejestrowany pomyślnie';
  31. }else{
  32. echo 'spróbuj ponownie później';
  33.  
  34. }
  35. }
  36. }
  37. }
  38. }else{
  39. echo 'musisz wypełni㇠wszyskie pola';
  40. }
  41.  
  42. }
  43. ?>


Tak sobie myślę że może problemem jest źle skonstruowana tabelka więc podaję screena http://zapodaj.net/0757312451fa.png.html
Kostek.88
w 29. linijce daj



i pokaż co wyszło na ekranie.
hind
Przedewszystkim złe maskowanie nazw kolumn i tablic. Zamiast ' (apostrof) użyj ` (to pod [esc] a nad lewym [tab])
webświr
Cytat(Kostek.88 @ 6.04.2012, 01:52:35 ) *
w 29. linijce daj



i pokaż co wyszło na ekranie.


Zrobiłem tak

  1. $q = sprintf("INSERT INTO 'uzytkownicy' VALUES (' ','".mysql_real_escape_string($uzy)."','".mysql_real_escape_string($has_hash)."','".mysql_real_escape_string($ema)."')");
  2.  
  3. print_r($q); exit;


Po wciśnięciu zarejestruj nic nie wyświetla na ekranie ( nie wyświetla $q)
Lorum3
Dodaj do każdego zapytania -

  1.  
  2. or die( mysql_error());
  3.  
  4. // czyli na przykład:
  5.  
  6. mysql_query("SELECT * FROM `test` WHERE `id` = '1'") or die( mysql_error());
  7.  
webświr
po wstawieniu
  1. require 'polaczenie.inc.php' or die( mysql_error());


nie wyświetla nic. tzn. nie ma formularza i nie ma żadnego numeru błędu jedyne co się wyświetla to reklama cba - ale to raczej nieistotne

Problem rozwiązany wszystko przez apostrofy
-adriano-
witam !

prosze o pomoc mam skryp rejestracji wszystko ok tylko ze wywala mi notice i niewiem dlaczego .

podaje błedy

Notice: Undefined index: akcja in C:\xampp\htdocs\register.php on line 6

Notice: Use of undefined constant wykonaj - assumed 'wykonaj' in C:\xampp\htdocs\register.php on line 7

i kod

  1. <?php header('Content-type: text/html; charset=utf-8'); ?>
  2. <?php include("include/dbconfig.php");
  3.  
  4. $ip = $_SERVER['REMOTE_ADDR'];
  5.  
  6. $akcja = $_GET['akcja'];
  7. if ($akcja == wykonaj) {
  8. //
  9. $nick = substr(addslashes(htmlspecialchars($_POST['nick'])),0,32);
  10. $haslo = substr(addslashes($_POST['haslo']),0,32);
  11. $vhaslo = substr($_POST['vhaslo'],0,32);
  12. $email = substr($_POST['email'],0,32);
  13. $vemail = substr($_POST['vemail'],0,32);
  14. $nick = trim($nick);
  15. //kilka sprawdzen co do nicku i maila
  16. $spr1 = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM uzytkownicy WHERE nick='$nick' LIMIT 1")); //czy user o takim nicku istnieje
  17. $spr2 = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM uzytkownicy WHERE email='$email' LIMIT 1")); // czy user o takim emailu istnieje
  18. $pos = strpos($email, "@");
  19. $pos2 = strpos($email, ".");
  20. $emailx = explode("@", $email);
  21. if ($emailx[1] == 'o2.pl') {
  22. $emailx1 = $emailx[0].'@go2.pl';
  23. $emailx2 = $emailx[0].'@tlen.pl';
  24. $spr3 = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM uzytkownicy WHERE email='$emailx1' OR `email`='$emailx2' LIMIT 1"));
  25. }elseif ($emailx[1] == 'go2.pl') {
  26. $emailx1 = $emailx[0].'@o2.pl';
  27. $emailx2 = $emailx[0].'@tlen.pl';
  28. $spr3 = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM uzytkownicy WHERE email='$emailx1' OR `email`='$emailx2' LIMIT 1"));
  29. }elseif ($emailx[1] == 'tlen.pl') {
  30. $emailx1 = $emailx[0].'@go2.pl';
  31. $emailx2 = $emailx[0].'@o2.pl';
  32. $spr3 = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM uzytkownicy WHERE email='$emailx1' OR `email`='$emailx2' LIMIT 1"));
  33. }
  34. $komunikaty = '';
  35. $spr4 = strlen($nick);
  36. $spr5 = strlen($haslo);
  37. //sprawdzenie co uzytkownik zle zrobil
  38. if (!$nick || !$email || !$haslo || !$vhaslo || !$vemail ) {
  39. $komunikaty .= "Musisz wypełnić wszystkie pola!<br>"; }
  40. if ($spr4 < 4) {
  41. $komunikaty .= "Login musi mieć przynajmniej 4 znaki<br>"; }
  42. if ($spr5 < 4) {
  43. $komunikaty .= "Hasło musi mieć przynajmniej 4 znaki<br>"; }
  44. if ($spr1[0] >= 1) {
  45. $komunikaty .= "Ten login jest zajęty!<br>"; }
  46. if ($spr2[0] >= 1) {
  47. $komunikaty .= "Ten e-mail jest już używany!<br>"; }
  48. if ($email != $vemail) {
  49. $komunikaty .= "E-maile się nie zgadzajš ...<br>";}
  50. if ($haslo != $vhaslo) {
  51. $komunikaty .= "Hasła się nie zgadzajš ...<br>";}
  52. if ($pos == false OR $pos2 == false) {
  53. $komunikaty .= "Nieprawidłowy adres e-mail<br>"; }
  54. if ($spr3[0] >= 1) {
  55. $komunikaty .= "Nie można zarejestrować kilku kont na jednš pocztę o2.<br>"; }
  56.  
  57. //jesli cos jest nie tak to blokuje rejestracje i wyswietla bledy
  58. if ($komunikaty) {
  59. <b>Rejestracja nie powiodła się, popraw następujšce błędy:</b><br>
  60. '.$komunikaty.'<br>';
  61. } else {
  62. //jesli wszystko jest ok dodaje uzytkownika i wyswietla informacje
  63. $nick = str_replace ( ' ','', $nick );
  64. $haslo = md5($haslo); //szyfrowanie hasla
  65.  
  66. mysql_query("INSERT INTO `uzytkownicy` (nick, email, haslo, ip) VALUES('$nick','$email','$haslo','$ip')") or die("Nie mogłem Cie zarejestrować!");
  67.  
  68. echo '<br><span style="color: green; font-weight: bold;">Zostałeœ zarejestrowany '.$nick.'. Teraz możesz się zalogować</span><br>';
  69. echo '<br><a href="logowanie.php">Logowanie</a>';
  70. }
  71. }
  72. ?>
  73.  
  74. <form method="post" action="rejestracja.php?akcja=wykonaj">
  75. <table>
  76. <tr class="tlo-b"><td>Nick:</td>
  77. <td><input maxlength="18" type="text" name="nick" value="<?=$nick?>"></td></tr>
  78. <tr class="tlek"><td>Hasło:</td>
  79. <td><input maxlength="32" type="password" name="haslo"></td></tr>
  80. <tr class="tlo-b"><td>Powtórz hasło:</td>
  81. <td><input maxlength="32" type="password" name="vhaslo"></td></tr>
  82. <tr class="tlo-b"><td>E-mail:</td>
  83. <td><input type="text" name="email" maxlength="50" value="<?=$email?>"></td></tr>
  84. <tr class="tlek"><td>Powtórz E-mail:</td>
  85. <td><input type="text" maxlength="50" name="vemail" value="<?=$vemail?>"></span></td></tr>
  86.  
  87.  
  88. <tr><td colspan="2" align="center"><input type="submit" value="Zarejestruj"></td></tr>
  89. </table></form>
Niktoś
Wysyłasz formularz metodą post a chcesz pobrać dane z tablicy get-chyba tak nie idzie.

greycoffey
Niktoś, dane pobiera z POST, w GET jest akcja która została zdefiniowana w parametrze action formularza.

A tak po drugie, wpisz treści tych błędów do Google, to naprawdę już było (w języku polskim, inne tematy z tym samym problemem).
-kobi-
witam

prosze o pomoc mam malutki problem ze skryptem pokazuje mi błąd i nie moge dojść do tego jak to poprawić .
prubowałem juz pare zeczy i nadal to samo .

pokazuje mi błąd :


Strict Standards: Non-static method user::isLogged() should not be called statically in C:\xampp\htdocs\index.php on line 17

  1. <?php
  2. /**
  3.  * Demonstracja możliwoœci skryptu
  4.  * @author Sobak
  5.  * @package User System
  6.  */
  7.  
  8. require 'header.php';
  9. require 'config.php';
  10. require_once 'user.class.php';
  11. ?>
  12.  
  13. <p>Oto krótka prezentacja możliwoœci napisanego przeze mnie skryptu użytkowników.</p>
  14.  
  15. <?php
  16. if (user::isLogged()) {
  17. // Widok dla użytkownika zalogowanego
  18.  
  19. // Pobierz dane o użytkowniku i zapisz je do zmiennej $user
  20. $user = user::getData('', '');
  21.  
  22. echo '<p>Jesteœ zalogowany, witaj '.$user['login'].'!</p>';
  23. echo '<p>Możesz zobaczyć swój <a href="profile.php?id='.$user['id'].'">profil</a> albo się <a href="logout.php">wylogować</a></p>';
  24. }
  25.  
  26. else {
  27. // Widok dla użytkownika niezalogowanego
  28. echo '<p>Nie jesteœ zalogowany.<br /><a href="login.php">Zaloguj</a> się lub <a href="register.php">zarejestruj</a> jeœli jeszcze nie masz konta.</p>';
  29. }
  30.  
  31. require 'footer.php';
  32.  
  33. ?>
Mephistofeles
Znaczy to tyle, że wywołujesz metodę niestatyczną jak statyczną. Naucz się podstaw obiektowego programowania, jak wygląda wtedy składnia...
To co ty zrobiłeś, to nie obiekt, a worek na funkcje.
csharp
w linii 17 - klasa do której się odwołujesz nie jest statyczna

  1. if (user::isLogged())


dodaj do klasy
przed funkcją.

Nie za dużo można powiedzieć jeśli sie nie widzi zdefiniowanej klasy.
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.