Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Problem Z Systemem Logowania
AgeraR
post
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 18.09.2017

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


Witam,
Ostatnio napisałem skrypt do logowania i rejestracji i on nie działa pomoże mi ktoś?
Błędy to:

Notice: Undefined index: login in /var/www/vhosts/muxiu.5v.pl/httpdocs/Skrypty/register.php on line 3

Notice: Undefined index: haslo in /var/www/vhosts/muxiu.5v.pl/httpdocs/Skrypty/register.php on line 4

Fatal error: Function name must be a string in /var/www/vhosts/muxiu.5v.pl/httpdocs/Skrypty/register.php on line 5

A kod:
Tylko rejestracja*(Edit)

  1. <!--c1--><div class='codetop'>Kod</div><div class='codemain'><!--ec1--><?PHP
  2.  
  3. $user = $_POST['login'];
  4. $pass = $_POST['haslo'];
  5. $email = $_POST['email'];
  6.  
  7. $con = mysql_connect("****","****","****") or ("Blad polaczenia: "  . mysql_error());
  8. if (!$con)
  9.     die('Nie mozna polaczayc: ' . mysql_error());
  10.     
  11. mysql_select_db("****" , $con) or die ("Nie mozna wczytac bazy danych" . mysql_error());
  12.  
  13. $check = mysql_query("SELECT * FROM Konta WHERE `login`='".$user."'");
  14. $numrows = mysql_num_rows($check);
  15. if ($numrows == 0)
  16. {
  17.     $pass = md5($pass);
  18.     $ins = mysql_query("INSERT INTO  `Konta` (`login` , `haslo` , 'email') VALUES ('".$user."' ,  '".$pass."' ,  '".$email."'); ");
  19.     if ($ins)
  20.         die ("Register-SUCCESS");
  21.     else
  22.         die ("Blad: " . mysql_error());
  23. }
  24. else
  25. {
  26.     die("Podany login juz istnieje!");
  27. }
  28.  
  29.  
  30. ?><!--c2--></div><!--ec2-->


Proszę o pomoc
Z góry dziękuje.
:-)

Ten post edytował AgeraR 18.09.2017, 19:38:00
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #2





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Notice to nie błąd a informacja, że zmienna nie istnieje. Będzie istniała, jak wyślesz formularz... Można zablokować wyświetlanie tych informacji, ale lepszym wyjściem jest napisanie kodu tak, żeby sam skrypt zapobiegał ich wyświetlaniu.
Go to the top of the page
+Quote Post
AgeraR
post
Post #3





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 18.09.2017

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


Cytat(Kshyhoo @ 18.09.2017, 20:45:53 ) *
Notice to nie błąd a informacja, że zmienna nie istnieje. Będzie istniała, jak wyślesz formularz... Można zablokować wyświetlanie tych informacji, ale lepszym wyjściem jest napisanie kodu tak, żeby sam skrypt zapobiegał ich wyświetlaniu.

Dobra ale po
1: Jak napisać to
2: Tam jest jeszcze Fatal Error
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #4





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Ja nie widzę w linii 5 funkcji o nazwie "name"... wogóle takiej funkcji nie widzę!
Go to the top of the page
+Quote Post
viking
post
Post #5





Grupa: Zarejestrowani
Postów: 6 381
Pomógł: 1116
Dołączył: 30.08.2006

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


Cały ten kod jest do przepisania. Stare rozszerzenie mysql, pełno dziur, md5 do hasła. Może kilka lat temu było poprawnie. Poczytaj o PDO, isset / ?? (PHP7).
Go to the top of the page
+Quote Post
AgeraR
post
Post #6





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 18.09.2017

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


To co mam zrobić żeby ten Fatal error nie wyskakiwał i hasła sie zapisywały do bazy?
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #7





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Nazwa funkcji musi być stringiem i wydaje się, że jest...
Go to the top of the page
+Quote Post
AgeraR
post
Post #8





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 18.09.2017

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


Cytat(Kshyhoo @ 18.09.2017, 21:04:32 ) *
Nazwa funkcji musi być stringiem i wydaje się, że jest...

No to jak jest wszystko poprawnie napisane no to dlaczego mi to nie działa?
Go to the top of the page
+Quote Post
Pyton_000
post
Post #9





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


zgubiłeś die w 5 linijce.

@Kshyhoo Notice to też błąd. Ma niski priorytet ale ma.
Go to the top of the page
+Quote Post
AgeraR
post
Post #10





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 18.09.2017

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


Cytat(Pyton_000 @ 18.09.2017, 21:22:19 ) *
zgubiłeś die w 5 linijce.

@Kshyhoo Notice to też błąd. Ma niski priorytet ale ma.

Dodałem die

Teraz Błąd

Parse error: syntax error, unexpected '$email' (T_VARIABLE) in /var/www/vhosts/muxiu.5v.pl/httpdocs/Skrypty/register.php on line 5

Wyskakuje ;(

Nikt już nie pomoże?
Go to the top of the page
+Quote Post
Pyton_000
post
Post #11





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Sorka. Mój błąd. To nie w 5 linijce a 7.

Wklej cały kod gdzieś np http://bin.devsphp.pl i daj go tu
Go to the top of the page
+Quote Post
emillo91
post
Post #12





Grupa: Zarejestrowani
Postów: 129
Pomógł: 13
Dołączył: 29.03.2012

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


Te błędy występują dlatego że jak wyżej wspomniano nie ma akcji dla $_POST. Musisz zrobić warunek przed przypisaniem metody $_POST do zmiennych $user, $pass, $email. Najpierw sprawdź czy istnieją zmienne $_POST. Jeżeli nie to $user = null, $pass = null, $email = null, inaczej przypisz metodę $_POST do zmiennych.
Odnośnie zapytań do bazy danych to wyrzuć podwójne apostrofy oraz kropki przy zmiennych $user, $pass, $email, gdyż są zbędne.
Go to the top of the page
+Quote Post
AgeraR
post
Post #13





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 18.09.2017

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


Cytat(Pyton_000 @ 19.09.2017, 11:27:48 ) *
Sorka. Mój błąd. To nie w 5 linijce a 7.

Wklej cały kod gdzieś np http://bin.devsphp.pl i daj go tu

Zmienione teraz wyskakuje błąd:

Parse error: syntax error, unexpected '$con' (T_VARIABLE) in /var/www/vhosts/muxiu.5v.pl/httpdocs/Skrypty/register.php on line 7

Tu masz Kod
Go to the top of the page
+Quote Post
trueblue
post
Post #14





Grupa: Zarejestrowani
Postów: 6 809
Pomógł: 1828
Dołączył: 11.03.2014

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


O kurczaki...
Go to the top of the page
+Quote Post
emillo91
post
Post #15





Grupa: Zarejestrowani
Postów: 129
Pomógł: 13
Dołączył: 29.03.2012

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


Namieszałeś w warunkach przy łączeniu z bazą danych w tej linii.
Go to the top of the page
+Quote Post
AgeraR
post
Post #16





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 18.09.2017

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


Cytat(emillo91 @ 19.09.2017, 16:30:20 ) *
Namieszałeś w warunkach przy łączeniu z bazą danych w tej linii.

Tam gdzie jest napisane Host itd?
jak tak to to jest specjalnie zeby nie bylo widac (IMG:style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post
emillo91
post
Post #17





Grupa: Zarejestrowani
Postów: 129
Pomógł: 13
Dołączył: 29.03.2012

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


Usuń warunki w tej linii i zobacz czy się łączy z bazą
Go to the top of the page
+Quote Post
programistaarek
post
Post #18





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 1.02.2015

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


  1. <?
  2. $mysql_host = 'host';
  3. $port = '3306';
  4. $username = 'nazwa użytkownika';
  5. $password = 'hasło bazy danych';
  6. $database = 'nazwa bazy danych';
  7.  
  8. try{
  9. $pdo = new PDO('mysql:host='.$mysql_host.';dbname='.$database.';port='.$port, $username, $password );
  10.  
  11. }catch(PDOException $e){
  12. echo 'Połączenie nie mogło zostać utworzone.';
  13. }
  14.  
  15. @mysql_query("set names 'utf8'");
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22. $email = substr($_POST['email'],0,32);
  23. $pos = strpos($email, "@");
  24. $pos2 = strpos($email, ".");
  25.  
  26. //WYBIERAMY USTAWIENIA Z BAZY
  27.  
  28. //JEŚLI KLIKNIĘTO WYŚLIJ
  29. if(isset($_POST['send'])){
  30.  
  31.  
  32. if($pos == false OR $pos2 == false){
  33. echo "
  34. <script type='text/javascript'>window.alert('Niepoprawny adres e-mail');document.location.href = 'index.php';</script>
  35. ";
  36. EXIT();
  37.  
  38. }else{
  39. $login = trim($_POST['imie']);
  40. $email = trim($_POST['email']);
  41. $errors = NULL;
  42. if(strlen($login)<6) $errors .= 'Login musi zawierać co najmniej 6 znaków<br>';
  43. if(!preg_match('/\@/', $email) || strlen($email)<5) $errors .= 'Podany adres e-mail jest nieprawidłowy<br>';
  44. $stmt = $pdo->prepare("SELECT COUNT(id) FROM Konta WHERE login=:login");
  45. $stmt->bindValue(":login", $login, PDO::PARAM_STR);
  46. $stmt->execute();
  47. $row = $stmt->fetch();
  48. if($row[0]>0) $errors .= 'Konto o takim loginie już istnieje<br>';
  49. $stmt2 = $pdo->prepare("SELECT COUNT(id) FROM uzytkownicy WHERE email=:email");
  50. $stmt2->bindValue(":email", $email, PDO::PARAM_STR);
  51. $stmt2->execute();
  52. $row2 = $stmt2->fetch();
  53.  
  54. if(empty($row2[0]>0)){
  55. function passwordGenerator($length) {
  56. $uppercase = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'R', 'S', 'T', 'U', 'W', 'Y', 'Z');
  57. $lowercase = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u', 'w', 'y', 'z');
  58. $number = array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9);
  59. $password = NULL;
  60. for ($i = 0; $i < $length; $i++) {
  61. $password .= $uppercase[rand(0, count($uppercase) - 1)];
  62. $password .= $lowercase[rand(0, count($lowercase) - 1)];
  63. $password .= $number[rand(0, count($number) - 1)];
  64. }
  65. return substr($password, 0, $length);
  66. }
  67. $kod = rand(11111111,99999999);
  68. $wzrost = rand(165,210);
  69. $waga = rand(60,120);
  70. //WYGENEROWANE HASLO
  71. $myPassword = passwordGenerator(8);
  72. $myPassword1 = sha1($myPassword);
  73. $repka = rand(1,64);
  74. $data = date("Y-m-d H:i:s");
  75.  
  76. $dodaj = $pdo->prepare("INSERT INTO `Konta`(login, haslo, email) VALUES(:login, :haslo, :email)");
  77. $dodaj->bindValue(":login", $login, PDO::PARAM_STR);
  78. $dodaj->bindValue(":haslo", $myPassword1, PDO::PARAM_STR);
  79. $dodaj->bindValue(":email", $email, PDO::PARAM_STR);
  80. $dodaj->execute();
  81.  
  82.  
  83. echo "
  84. <script type='text/javascript'>window.alert('Utworzono konto sprawdź swoją skrzynke pocztową na nią wysłaliśmy Ci wygenerowane hasło !!!!');document.location.href = 'index.php';</script>
  85. ";
  86.  
  87.  
  88. /// poniżej funkcja mail() wysyła na pocztę dane do logowania !!
  89.  
  90. $to = ''.$_POST['email'].'';
  91. $subject = 'Rejestracja Serwisie';
  92. $message = "Witaj ".$_POST['login']."!
  93.  
  94. Twoje dane w serwisie to::
  95. Login: ".$_POST['login']."
  96. E-mail: ".$_POST['email']."
  97. Hasło: ".$myPassword."
  98.  
  99.  
  100. Wiadomość wygenerowana automatycznie, prosimy nie odpowiadać.
  101. Pozdrawiamy,
  102. Administracja Serwisu";
  103. $headers = 'From: SERWIS XYZ' . "\r\n" .
  104. 'Reply-To: noreply@serwis.xyz' . "\r\n" .
  105. 'X-Mailer: PHP/' . phpversion();
  106.  
  107. mail($to, $subject, $message, $headers);
  108.  
  109. }else{
  110. echo "
  111. <script type='text/javascript'>window.alert('Konto o takim adresie e-mail już istnieje');document.location.href = 'index.php';</script>
  112. ";
  113.  
  114. }
  115. }
  116.  
  117.  
  118.  
  119. }
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127. ?>
  128.  
  129. <html>
  130. <head>
  131. <title> Rejestarcja w serwisie</title>
  132. </head>
  133. <body>
  134.  
  135. <form action="index.php" method="POST" class="cd-form">
  136. <p class="fieldset">
  137. <label>Login</label>
  138. <input name="imie" type="text" placeholder="Login">
  139.  
  140. </p>
  141.  
  142. <p class="fieldset">
  143. <label>E-mail</label>
  144. <input name="email" type="email" placeholder="E-mail">
  145. </p>
  146.  
  147.  
  148. <p class="fieldset">
  149. <input type="submit" name="send" value="Załóż konto">
  150. </p>
  151. </form>
  152.  
  153. </body>
  154.  
  155.  
  156.  
  157.  
  158. </html>
  159.  
  160.  
  161.  



W bazie danych ustaw haslo,email oraz login jako varchar i np daj im 255 znaków. W tym skrypcie tylko sobie zamień dane do połączenia z bazą. Tu masz już PDO. Pamiętaj!
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: 20.12.2025 - 14:53