Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] error przy if
Forum PHP.pl > Forum > Przedszkole
GoOx
Witam ostatnio troszeczke poduczyłem się i wiem conieco zorbić smile.gif

ale mam problem a mianowicie robię skrypt rejestracji lecz gdy wgrałem go na mój server mam errory

mój kod:

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  2. "http://www.w3.org/TR/html4/loose.dtd">
  3. <html>
  4. <head>
  5. <title>Untitled Document</title>
  6. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  7. </head>
  8. <body>
  9. Rejstracja:
  10. Login:<input type="text" name="login"></br>
  11. Haslo:<input type="text" name="haslo"></br>
  12. <input type="submit" name="rejestruj" value="Rejestruj">
  13. <?
  14. $loginr = $_POST['login'];
  15. $haslor = $_POST['haslo'];
  16. include('polaczenie.php');
  17. $dodaj = "INSERT INTO `uzytkownicy` set `nick` = '$loginr' , `haslo` = '$haslor'";
  18. if(!mysql_query($dodaj, $db_lnk))
  19. {
  20. echo('Wystapil blad. Konto nie zostalo utworzone<br>');
  21. }
  22. Else
  23. {
  24. echo('Konto zostalo pomyslnie utworzone<br>');
  25. }
  26. ?>
  27. </body>
  28. </html>
  29.  

a to mój error

Parse error: syntax error, unexpected T_STRING in /home/ecompute/public_html/przyklady/skrypt/rejestracja.php on line 17
toffiak
  1. $dodaj = 'INSERT INTO `uzytkownicy` set `nick` = '.$loginr.' , `haslo` = '.$haslor;


GoOx
Ok dzięki erroru nie ma zapomniałem tez action...

ale gdy próbuje się rejestrować to wyskakuje mi że wystąpił błąd itd...

poprawiony kod:

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  2. "http://www.w3.org/TR/html4/loose.dtd">
  3. <html>
  4. <head>
  5. <title>Untitled Document</title>
  6. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  7. </head>
  8. <body>
  9. Rejstracja:
  10. <form action="rejestracja.php?rejestruje" method="post">
  11. Login:<input type="text" name="login"></br>
  12. Haslo:<input type="text" name="haslo"></br>
  13. <input type="submit" name="rejestruj" value="Rejestruj">
  14. </form>
  15. <?
  16. $loginr = $_POST['login'];
  17. $haslor = $_POST['haslo'];
  18. include('polaczenie.php');
  19. $dodaj = 'INSERT INTO `uzytkownicy` set `nick` = '.$loginr.' , `haslo` = '.$haslor;
  20. if(isset($_POST['rejestruj']))
  21. if(!mysql_query($dodaj, $db_lnk))
  22. {
  23. {
  24. echo('Wystapil blad. Konto nie zostalo utworzone<br>');
  25. }
  26. }
  27. Else
  28. {
  29. echo('Konto zostalo pomyslnie utworzone<br>');
  30. }
  31. ?>
  32. </body>
  33. </html>
  34.  


proszę o pomoc.

jeśli ktoś chce to tu jest demo: http://e-computer.xaa.pl/przyklady/skrypt/rejestracja.php
ublizzard
  1. $loginr = $_POST['login'];
  2. $haslor = $_POST['haslo'];
  3. include('polaczenie.php');
  4. $dodaj = 'INSERT INTO `uzytkownicy` set `nick` = '.$loginr.' , `haslo` = '.$haslor;
  5. if(isset($_POST['rejestruj'])){
  6. if(!mysql_query($dodaj, $db_lnk))
  7. {
  8. echo('Wystapil blad. Konto nie zostalo utworzone<br>');
  9. }
  10. Else
  11. {
  12. echo('Konto zostalo pomyslnie utworzone<br>');
  13. }
  14. }
  15. ?>
  16. </body>
  17. </html>
darko
Spróbuj tak:
  1. $dodaj = "INSERT INTO uzytkownicy (nick, haslo) values('$loginr' , md5('$haslor'))";
  2. if(isset($_POST['rejestruj']))
  3. {
  4. $result = mysql_query($dodaj, $db_lnk) or die(mysql_error());
  5. if(!$result)
  6. {
  7. echo('Wystapil blad. Konto nie zostalo utworzone<br>');
  8. }
  9. else
  10. {
  11. echo('Konto zostalo pomyslnie utworzone<br>');
  12. }
  13. }

Używaj PDO
GoOx
darko juz prawie działa biggrin.gif jak klikam rejestruj to mam taki error:

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/ecompute/public_html/przyklady/skrypt/rejestracja.php on line 19

PS co oznacza też wykrzyknik w if ? bo to się używa ale tak naprawdę nie wiem co to daje.
ublizzard
wykrzyknik oznacza negację.
Twój błąd kryje się w linii 19.
mortus
Błąd oznacza, że zmienna $db_lnk nie jest zasobem połączenia z bazą danych, czyli brakuje gdzieś tego:
  1. $db_lnk = mysql_connect('username','password');

albo przypisujesz zmiennej nie to, co trzeba.

Wykrzyknik w instrukcji warunkowej oznacza zaprzeczenie/negację, np. !true to zaprzeczenie prawdy, czyli nieprawda.
GoOx
ach no tak zapomniałem dać include do pliku z połączeniem

ech ;/ rejestracja działa ale do bazy danych zapisuje tylko haslo z nick nie zapisuje.
mortus
A może kolumna nazywa się login lub username, a nie nick. Sprawdź to.
GoOx
to moja struktura bazy danych.

  1. CREATE TABLE `obrazki` (
  2. `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
  3. `nick` VARCHAR( 255 ) NOT NULL
  4. `haslo` VARCHAR( 255 ) NOT NULL
  5. ) ENGINE = MYISAM ;


i jeszcze przed chwilą zaważyłem że jak wpisuję hasło to w wszystkich kontach hasło w md5 jest identyczne.
mortus
To przed wysłaniem zapytania sprawdź, co kryje się w $_POST['login']: var_dump($_POST['login']);.
darko
Zamykaj inputy w formularzu: <input type="text" name="login" />
Spróbuj tak:

  1. $loginr = mysql_real_escape_string($_POST['login']);
  2. $haslor = md5(mysql_real_escape_string($_POST['haslo']));
  3. $dodaj = "INSERT INTO uzytkownicy (nick, haslo) values('$loginr' , '$haslor')";


I sprawdzaj przynajmniej długość przesyłanych zmiennych jak nie możesz/nie chcesz używać PDO. Dla pola hasło użyj input type="password"
GoOx
ahh moja wina wcześniej przez przypadek skasowałem to:

  1. $loginr = $_POST['login'];
  2. $haslor = $_POST['haslo'];


wraz z include z polaczeniem

można zamknąć skrypt działa
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.