Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: jak zdefiniowac zmienne
Forum PHP.pl > Forum > PHP
endriut
taki oto skrypt :

  1. <?php
  2.  $location_ = "localhost";
  3.  $username_ = "xxx";
  4.  $password_ = "xxx";
  5.  $database_ = "xxx";
  6.  //------//--------//-------//--------//----------//-----------
  7.  $polaczenie = mysql_connect("$location_","$username_","$password_");
  8.  if (!$polaczenie){die ("<br>Nie można było się polaczyc z baza danych!<br>");}
  9.  else{mysql_select_db($database_,$polaczenie) or die ("Nie dalo rady otworzyc bazy :(");}
  10.  //------//-------//--------//--------//------------//-----------
  11.  
  12.  
  13. if ($_GET['potw'] != "" && $_GET['l'] != "" ) {//tu jest aktywacja konta:
  14. //---->>>KROK 3<<<--------
  15. //tu dla potwierdzenia rejestracji:
  16.  $zapytanie = "SELECT * FROM eit4_users WHERE username = '".$_GET['l']."'";
  17.  $wynik = mysql_query ($zapytanie) or die ("Zapytanie zakończone niepowodzeniem :(<br>");
  18.  
  19.  if ($user = mysql_fetch_array($wynik, MYSQL_ASSOC)) {//gdy user podany w url istnieje:
  20.  
  21. if ($user['status'] == "Nieaktywny"){//i gdy nie zostal aktywowany:
  22.  
  23.  if (encrypt($user['password']) == $_GET['potw']) {//i gdy haslo sie zgadaza:
  24.  
  25. $insert = "UPDATE eit4_users SET status = 'Użytkownik' WHERE username = '".$_GET['l']."'";//to go uaktywniamy
  26.  
  27. if (!mysql_query($insert)) {
  28.  
  29.  msgbox("Błąd", "Nieoczekiwany błąd. aktywować konta<br>.", " ", "", "");
  30.  
  31. } else {
  32.  msgbox("OK", "Konto zostało aktywowane :)", " ", "", "");
  33. }
  34.  
  35.  } else {//tu gdy jest user ale haslo sie nei zgadza
  36.  
  37. msgbox("Błąd", "Coś poszło nie tak, nieprawidłowe dane aktywacyjne.", " ", "", "");
  38.  }
  39.  
  40. } else {//tu gdy aktywuje aktywne konto (np 2gi raz kliknol w link):
  41.  msgbox("Błąd", "Konto użytkownika było już aktywowane.", " ", "", "");
  42. }
  43.  
  44.  } else {//gdy user w URLu nie istnieje:
  45. msgbox("Błąd", "Coś poszło nie tak, użytkownik o nazwie ".$_GET['l']." nie został zaerjestrowany.", " ", "", "");
  46.  }
  47.  
  48.  
  49.  
  50. } else {//gdy poprostu otwarcie strony to pokazujemy formularz:
  51.  if ($_POST['rejestruj'] != "rejestruj"){
  52.  //---->>>KROK 1<<<--------
  53. include 'formularz_rejestracji.inc';
  54.  
  55.  }else {//tu rejestracja, tzn wywolanie strony za pomoca formularza:
  56.  //---->>>KROK 2<<<--------
  57.  //i sprawdzanie czy poprawnie wypelnil pola:
  58. if ($_POST['login'] == "") {
  59. //spr czy podal login:
  60.  msgbox("Błąd", "Nie podałeś loginu.", "powrot", "", "");
  61. } else if ($_POST['email'] == "" || strpos($_POST['email'], "@") === false ) {
  62. //spr czy podal majl i czy majl zawiera malpke:
  63.  msgbox("Błąd", "Nie podałeś (lub podałeś błędny) adresu e-mail.", "powrot", "", "");
  64. } else if ($_POST['haslo1'] == "") {
  65. //spr czy podal haslo:
  66.  msgbox("Błąd", "Hasło nie może być puste.", "powrot", "", "");
  67. } else if ($_POST['haslo1'] != $_POST['haslo2']) {
  68. //spr czy hasla podane sa takie same:
  69.  msgbox("Błąd", "Błędnie powtórzyłeś hasło.", "powrot", "", "");
  70. } else {
  71. //gdy ok to przetwarzamy dane:
  72.  $login = htmlspecialchars($_POST['login']);//usuwamy html
  73.  $email = htmlspecialchars($_POST['email']);//z jego danych
  74.  $haslo = $_POST['haslo1'];//nie wiem czy z emajla trzeba bylo
  75.  $komunikator = htmlspecialchars($_POST['komunikator']);//ale na wszelki wypadek;)
  76.  
  77.  //teraz najpierw spr czy czasem juz nie bylo takiego majla w bazie:
  78.  $zapytanie = "SELECT * FROM eit4_users WHERE email = '$email'";
  79.  $wynik = mysql_query ($zapytanie) or die ("<br />Zapytanie zakończone niepowodzeniem<br>(1)");
  80.  while ($line = mysql_fetch_array($wynik, MYSQL_ASSOC)){
  81. $wyniki_email[] = $line;
  82.  }
  83.  mysql_free_result($wynik);
  84.  
  85.  //spr czy czasem juz nie bylo takiego usera:
  86.  $zapytanie = "SELECT * FROM eit4_users WHERE username = '$login'";
  87.  $wynik = mysql_query ($zapytanie) or die ("<br />Zapytanie zakończone niepowodzeniem<br>(1)");
  88.  while ($line = mysql_fetch_array($wynik, MYSQL_ASSOC)){
  89. $wyniki_login[] = $line;
  90.  }
  91.  mysql_free_result($wynik);
  92.  
  93.  //spr czy czasem juz nie bylo takiego komunikatora:
  94.  $zapytanie = "SELECT * FROM eit4_users WHERE komunikator = '$komunikator'";
  95.  $wynik = mysql_query ($zapytanie) or die ("<br />Zapytanie zakończone niepowodzeniem<br>(1)");
  96.  while ($line = mysql_fetch_array($wynik, MYSQL_ASSOC)){
  97. $wyniki_komunikator[] = $line;
  98.  }
  99.  mysql_free_result($wynik);
  100.  
  101.  //tam tylko bylo pobieranie danych z bazy, teraz sprawdzamy i reagujemy:
  102.  if (count($wyniki_login)>0) {
  103. msgbox("Błąd", "Niestety użtykownik o podanej nazwie już jest zarejestrowany, musisz podać inną nazwę.", "powrot", "", "");
  104.  } else if (count($wyniki_email)>0) {
  105. msgbox("Błąd", "Niestety jest już użytkownik o podanym adresie e-mail.", "powrot", "", "");
  106.  } else if (count($wyniki_komunikator)>0) {
  107. msgbox("Błąd", "Niestety jest już zarejestrowany użytkownik używający takiego id/numeru komunikatora jak podany przez Ciebie.", "powrot", "", "");
  108.  } else {
  109. //gdy wszystko ok dodajemy usera do bazy:
  110. $insert = "INSERT INTO eit4_users (username, password, status, email, komunikator, data_zalozenia) VALUES ('$login', '".encrypt($haslo)."', 'Nieaktywny', '$email', '$komunikator', '".time()."')";
  111. if (!mysql_query($insert)) {
  112.  msgbox("Błąd", "Niestety wystąpił nieznany błąd, nie powiodło się dodanie użytkownika do bazy.<br>".mysql_error(), "powrot", "", "");
  113.  exit();
  114. }
  115.  
  116. //i wysylamy mu majla:
  117. $tresc = "REJESTRACJA NA WWW.EIT4.ABC.PLnn";
  118. $tresc .= "To jest email aktywujący twoje konto na stronie <a href="http://www.eit4.abc.pln";" target="_blank">http://www.eit4.abc.pln";</a>
  119. $tresc .= "Jeżeli nie dokonywałeś takiej rejestracji to znaczy, że możesz spokojnie go usunąć.nn";
  120. $tresc .= "Twoje dane:n";
  121. $tresc .= "--------------------n";
  122. $tresc .= "login: $login n";
  123. $tresc .= "hasło: $haslo n";
  124. $tresc .= "--------------------nn";
  125. $tresc .= "Aby aktywowac twoje konto kliknij w ten link: <a href="http://www.pogodanet.pl".$_SERVER" target="_blank">http://www.pogodanet.pl".$_SERVER</a>['PHP_SELF']."?dzial=rejestracja&l=$login&potw=".encrypt(encrypt($haslo))." ";
  126. $tresc .= "nnnNie aktywowanie konta spowoduje jego usunięcie w ciągu kilku dni.";
  127. if (mail($email, "Aktywacja konta na www.eit4.abc.pl", $tresc)) {
  128.  msgbox("OK", "Pierwsza część rejestracji zakończona.<br>Teraz sprawdź pocztę i kliknij w link w mejlu aktywacyjnym by dokończyć rejestrację.", " ", "", "");
  129. } else {
  130.  msgbox("Błąd", "Niestety wystąpiły problemy z wysłaniem e-maila aktywacyjnego.<br>Spróbuj ponowić aktywację później lub napisz o tym incydencie na adres gruszek@polsl.gliwice.pl.", "powrot", "", "");
  131. }
  132.  }
  133. }
  134.  }
  135. }
  136.  
  137.  
  138. function encrypt($string) {
  139.  $crypted = crypt(md5($string), md5($string));
  140.  return $crypted;
  141. }
  142. function msgbox($tytul, $tresc, $przyciski, $user, $haslo)
  143. {
  144.  echo "<div style="text-align: center; width: 100%; margin: 0 auto"><br /><br />";
  145.  echo "<table style="margin: auto auto auto auto; width: 370px; border-color:#A3BC3D; border-style: solid; border-width: 1px;" cellspacing="0"><tr><td style="background-color: #A3BC3D; color: #FFFFFF; "><strong>$tytul</strong></td></tr><tr>";
  146.  echo "<td style="border-style: none; text-align:center; padding-left:8px; padding-right:8px;">";
  147.  echo "<br/><br /><strong>$tresc</strong><br /><br />";
  148.  if ($przyciski == "powrot")
  149.  {
  150. echo "<INPUT type="submit" value="Popraw" onClick="java script:history.back();" onKeyPress="java script:history.back();">";
  151.  }
  152.  else if ($przyciski == "ok")
  153.  {
  154. echo "<form ACTION="".$_SERVER['PHP_SELF']."?dzial=linki" method="post" style="display: inline;">";
  155. echo "<input type="hidden" name="user" value="$user" />";
  156. echo "<input type="hidden" name="haslo" value="$haslo" />";
  157. echo "<INPUT type="submit" value="OK" style="width:70px"></form>";
  158.  }
  159.  else
  160.  {
  161. echo ($przyciski);
  162.  }
  163.  echo "<br /> </td>";
  164.  echo "</tr></table></div>";
  165. }
  166. ?>



nie dziala :/ blad w 13 lini :
if ($_GET['potw'] != "" && $_GET['l'] != "" )




jak zdefiniwac zmienna GET




i jaka bazę do tego ? musze sie tego nauczyc a na jakims przykladzie najlepiej.... nie chcem gotowcow tylko wskazowki..... dzieki za pomoc
Tibod
Napisz może komunikat tego błędu...
krowal
Zmienna $_GET to tablica danych przesyłanych do skryptu za pomocą linku np, jeśli masz link w takiej postaci:
  1. jakas_strona.pl/skrypt.php?zmienna1=costam1&zmienna2=costam2

to później w pliku skrypt.php możesz wyciągnąć wartości tych zmiennych odwołując się właśnie do tej tablicy $_GET w taki sposób:

  1. <?php
  2. echo $_GET['zmienna1']; //wyswietli 'costam1'
  3. echo $_GET['zmienna2']; //wyswietli 'costam2'
  4. ?>


Jeżeli zaś odwołujesz się do tej tablicy ale nie przekazałeś do strony żadnych danych za pośrednictwem linka czy też formularza to wtedy dostaniesz ostrzeżenie (WARNING) że próbujesz się odwołać do niezadeklarowanej zmiennej.
MiFlo
na pewno warning ? a nie NOTICE ?
krowal
Może i Notice smile.gif
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.