Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]Porownywanie rekordow
Forum PHP.pl > Forum > Przedszkole
xSlash
Musze zrobic cos takiego, aby pobieralo kolumne z bazy danych i porownywało ją z wpisaną wartoscią i pokazywac czy jest ona w bazie czy nie.


Napisalem cos takiego:

Kod
<? 
   echo('<form action="" method="POST">

<input type="text" name="adresat"
           <input type="submit" name="ok" value="Wyslij">
 </form>');

    $lista = mysql_fetch_row(mysql_query("SELECT `login` FROM `loginy`"));
    $adresat = $_POST['adresat'];
    
  if(isset($_POST['ok']))
   {
   if($lista == $adresat)
    {
     die('tak');
    }
     else
    {
     die('nie');
    }
   }
?>


Jednakze za kazdym razem pokazuje die "nie". Z czego wynika, ze jest nierownosc miedzy $lista a $adresat. $adresat jest na 100% dobrze... Obstawiam blad w 
Cytat
$lista = mysql_fetch_row(mysql_query("SELECT `login` FROM `loginy`"));



ale nie jestem pewnien... kto wprowadzi poprawki? Please ;]  wstydnis.gif
porady-it.pl
Witam,

Troszeczkę ze złego założenia wyszedłeś ponieważ należy wykorzystać bazę do zweryfikowania czy podany login już istnieje. Można to zrobić w następujący sposób:
  1. <form action="" method="post">
  2. <input type="text" name="login" /><br /><input type="submit" value="Wyslij" />
  3. </form>

  1. <?php
  2.  
  3. $conn=@mysql_connect("xxx","xxx","xxx");
  4. @mysql_select_db("xxx",$conn);
  5.  
  6.  
  7. $tablica = mysql_fetch_assoc(mysql_query("SELECT COUNT(*) ilosc FROM loginy WHERE login = '{$_POST['login']}'"));
  8.  
  9. if($tablica['ilosc']) {
  10.    echo 'Login istnieje';
  11. } else {
  12.    echo 'Login nie istnieje';
  13. }
  14.  
  15. ?>
Spawnm
  1. <?php
  2. $tablica = mysql_fetch_assoc(mysql_query("SELECT COUNT(*) ilosc FROM loginy WHERE login = '{$_POST['login']}'"));
  3. ?>


tiaaa a o sql injection to słyszałeś ?
nexis
  1. <form action="<?= $_SERVER['PHP_SELF'] ?>" method="post">
  2.    <input type="text" name="adresat" />
  3.    <input type="submit" value="Wyślij" />
  4. </form>
  5. <?php
  6. if (isset($_POST['adresat'])) {
  7.    $query = sprintf
  8.        (
  9.            "SELECT COUNT(*) FROM `loginy` WHERE `login` = '%s'",
  10.            mysql_real_escape_string($_POST['adresat'])
  11.        );
  12.    $query  = mysql_query($query);
  13.    $result = mysql_fetch_row($query);
  14.    if ($result[0] == 1) {
  15.        echo 'tak';
  16.    } else {
  17.        echo 'nie';
  18.    }
  19. }
  20. ?>
porady-it.pl
Spawnm, pytanie było o rozwiązanie problemu sprawdzania, a nie zabezpieczanie skryptu przed SQL Inject. Mógłbym równie dobrze pokazać jak zrobić to w PDO i "podpiąć" parametry pod zapytanie eliminując problem SQL Inject jednak nie to było problemem. Celem mojego rozwiązania było jedynie zaprezentowanie jak można sprawdzać istnienie loginu, a jak ktoś zweryfikuje przesłane dane to jego sprawa winksmiley.jpg

Pozdrawiam,
Marcin
xSlash
Nie wiem czy inne działały, ale najbardziej zachecająco i najbardziej rozumiałem kolege nexisa. Dzieki gosciu... dostałes "pomaga" haha.gif ^^ I Buzi tongue.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.