Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] problem z logowaniem
Forum PHP.pl > Forum > Przedszkole
dwar
Witam

mam taki kod logowania:

  1.  
  2. <?php
  3. include('!pliki/funkcje_login.inc.php');
  4. //-- logowanie
  5. if($_POST[logowanie]==1 AND $_POST[log_email]!=null AND $_POST[log_haslo]!=null)
  6. {
  7. //sprawdzam czy jest w bazie
  8. $n1=@mysql_query("SELECT uid,status,haslo,szyfr FROM users WHERE email='".cln($_POST[log_email])."' AND haslo = '".md5(cln($_POST[log_haslo]))."' LIMIT 1");
  9. $n2=@mysql_fetch_array($n1);
  10. $status=$n2[status];
  11. if($status==1)
  12. {
  13. $uid=$n2[uid];
  14. $pass=$n2[haslo];
  15. $szyfr=$n2[szyfr];
  16. $akces=zakoduj("$uid|||$pass|||$szyfr");
  17. setcookie("akces", $akces, time()+900, ".".$domena);
  18. header("LOCATION: $domena/panel/");
  19. exit;// KONIEC LOGOWANIA
  20. }
  21. else
  22. {
  23. $_COOKIE[akces]="";
  24. $nfo='Brak dostępu do konta z przyczyny braku aktywacji lub blokady administratora.';
  25. }
  26. }
  27.  
  28. //-- aktywacja
  29. if($_REQUEST[aktywacja]==1)
  30. {
  31. $szyfr=cln($_REQUEST[szyfr]);
  32. $md5=cln($_REQUEST[md5]);
  33. //--szukam czy jest
  34. $n1=@mysql_query("SELECT email FROM users WHERE szyfr='$szyfr' and haslo = '$md5' and status = 0");
  35. if(@mysql_num_rows($n1)==1){
  36. $nowy=mt_rand(10000,99999);
  37. mysql_query("UPDATE users SET status = 0 WHERE email = '$n2[email]'");
  38. mysql_query("UPDATE users SET status = 1 WHERE email = '$n2[email]' AND haslo = '$md5' AND szyfr = '$szyfr' LIMIT 1");
  39. mysql_query("UPDATE users SET szyfr = '$nowy' WHERE email = '$n2[email]' AND haslo = '$md5' and szyfr='$szyfr'");
  40. $nfo='Konto zostało aktywowane. Możesz sie zalogować';
  41. }else{
  42. $nfo='Już raz dokonałeś aktywacji tym linkiem.';
  43. }
  44. }
  45. //-- rejestracja
  46. //spradzam czy sÄ? dane
  47. if($_POST[email]!=null and $_POST[imnaz]!=null and $_POST[pass1]!=null and $_POST[pass2]!=null and $_POST[rejestracja]==1)
  48. {
  49. //spradzam czy zaakceptowal regulamin
  50. if($_POST[akceptuje]!=1)
  51. {
  52. $er=1;
  53. $nfo.="Aby się zarejestrować musisz zaakceptować regulamin!";
  54. }
  55. //sprawdzam czy email jest juz w bazie
  56. $n1=mysql_query("SELECT uid FROM users WHERE email = '".cln($_POST[email])."' AND status = 1");
  57. if(mysql_num_rows($n1)!=0)
  58. {
  59. $er=1;
  60. $nfo.="Podany email jest już w bazie!";
  61. }
  62. //sprawdzam czy hasla sie zgadzaja
  63. if($_POST[pass1]!=$_POST[pass2])
  64. {
  65. $er=1;
  66. $nfo.="HasĹ?o i jego powtĂłrka nie sÄ? identyczne!";
  67. }
  68. //jeĹ?li nie ma bĹ?Ä?du rejestruje
  69. if($er==null)
  70. {
  71. $num=mt_rand(5000,100000);
  72. $czas=time();
  73. $n3=mysql_query("INSERT INTO users VALUES (NULL,'".cln($_POST[imnaz])."','".cln($_POST[email])."','".md5(cln($_POST[pass1]))."',"",'$czas','$num',0)");
  74. require('regmail.inc.php');
  75. mail(cln($_POST[email]),"Aktywacja konta w".$domena,$wiadomosc,2);
  76. $nfo="Gratulacje! konto zostaĹ?o zaĹ?oĹźone. SprawdĹş teraz swĂłj email i aktywuj dostÄ?p.";
  77. }
  78. }
  79.  
  80.  
  81. ?>
  82. <form id="form" action="login/" enctype="multipart/form-data" name="formlog" method="post"><input type="hidden" name="logowanie" value="1?>
  83. Adres email:
  84. <input type="text" name="log_email" value="<?=cln($_POST[log_email])?>" />
  85. <br />
  86. HasĹ?o:
  87. <input type="password" name="log_haslo" />
  88. <br />
  89. &nbsp;&nbsp;&nbsp;
  90. <strong style="float:right;">
  91. <input type="submit" name="log1? value="zaloguj mnie" style="width: 103px; height: 24px; float:right;margin-top:-10px;margin-right:-6px"></strong><strong style="float:left" style="margin-right:20px"><a href="java script:void(null);" onclick="document.getElementById('form').submit()">
  92. <span class="style2? style="text-decoration:none;font-weight:normal">Nie pamiÄ?tam hasĹ?a</span></a></strong>
  93. </form>


plik funkcje_login.inc :

  1. <?php
  2. require("config/db.php");
  3. //---- zakoduj
  4. function zakoduj($var){
  5. $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
  6. $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
  7. $key = konf('keycode');
  8. $crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $var, MCRYPT_MODE_ECB, $iv);
  9. return base64_encode($crypttext);
  10. }
  11. //---- dekoduj
  12. function dekoduj($var){
  13. $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
  14. $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
  15. $key = konf('keycode');
  16. $var=base64_decode($var);
  17. $crypttext = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $var, MCRYPT_MODE_ECB, $iv);
  18. return trim($crypttext);
  19. }
  20.  
  21. //---- kontrola dostepu do panelu
  22. function kontrola(){
  23. $akces=strip_tags($_COOKIE[akces]);
  24. if(!empty($akces)){
  25. setcookie("akces", $akces, time()+900, "/", ".".$domena);
  26. }
  27. //---- wyciagam uid
  28. function uid(){
  29. $akces=strip_tags($_COOKIE[akces]);
  30. $akces=dekoduj($akces);
  31. $ex=explode("|||",$akces);
  32. $uid=$ex[0];
  33. return trim($uid);
  34. }


i jest błąd :

Parse error: syntax error, unexpected '"' in C:\Program Files\WebServ\httpd-users\tg\login.php on line 73

jak usunę

$n3=mysql_query("INSERT INTO users VALUES (NULL,'".cln($_POST[imnaz])."','".cln($_POST[email])."','".md5(cln($_POST[pass1]))."',"",'$czas','$num',0)");

to jest :
Parse error: syntax error, unexpected $end in C:\Program Files\WebServ\httpd-users\tg\!pliki\funkcje_login.inc.php on line 59
nekomata
Przecież php wywaliło panu : 'Błąd parsowania : błąd składni , niespodziewane '"' w pliku C:\Program Files\WebServ\httpd-users\tg\login.php w linii 73' .
Zatem młody paniczu , zalecam przyjrzenie się tej linijce.
Dodatkowo :
Jak już pisałem w innym poscie :
Jeśli używasz " (cudzysłów) to nie musisz przerywać (cudzysłów -> kropka -> zmienna -> kropka -> cudzysłów ) możesz bezpośrednio wstawić zmienną i PHP ją podmieni .
Taką praktykę stosujesz w apostrofach w których php pomija zmienne.

Mały tip co do używania tablic :
nie $_POST[cos_z_tablicy] a $_POST['cos_z_tablicy'] .
wookieb
Forum to nie parser. Zainstaluj edytor (IDE) ze sprawdzaniem składni (np Netbeans).
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.