Autor Zpráva
Mudraon
Profil *
Zdravim ...
Mam tu takovy problem...
Chci si do mysql zapsat nejaky uzivatele ale vubec nevim proc mi to nechce pridavat driv mi tohle problemy nedelalo ale tedka porste nevim co s tim ...

Connect to MySQL
<?php
$mysqlServer = 'localhost';
$mysqlLogin = 'upimage.707.cz';
$mysqlHeslo = '*********';
$mysqlDatabaze = 'upimage_707_cz';
$link = mysql_connect($mysqlServer, $mysqlLogin, $mysqlHeslo);
  if ( $link )
  {
    mysql_select_db( $mysqlDatabaze );
    //echo 'Pripojeno';
  } 
  else 
  {
    Header("Location: ./error/mysql.html");
  }
php?>


a tady je script na pridani do mysql
<? include "include/connect.php" ?>
    <?
      switch ($_GET[pg]) 
      {
        default:
        echo"<a href='?pg=registration'> aaa </a>";
        break;
      
        case 'registration':
        
        if($login=="" or $pass=="" or $email=="")
        {
          echo
          "
          <form method='post'>
          Login : <input type='text' name='login'><br>
          Password : <input type='password' name='pass'><br>
          Email : <input type='text' name='email'><br>
          <input type='submit' value='Registruj se'>
          </form>
          ";
        }
        else
        {
          $user_vyber = MySQL_Query("SELECT * FROM user");
          //-------------------------------------------------------
          while ($user_db = MySQL_Fetch_Array($user_vyber))
          {
            if($login == $user_db[login])
            {
              $exist = "1";
            }
          }
          
          if($exist == "1")
          {
            echo "Tento účet už existuje zvolte prosím jíný";
          }
          else
          {
            echo "Pridano";
            $sha_pass = sha1($pass); 
            $ip = $_SERVER['REMOTE_ADDR'];
            MySQL_Query("INSERT INTO user VALUES('','$login','$sha_pass','$email','$ip')");
          }
        }
        break;
      }
    ?>


Tabulka vypada nasledovne : ID - Login - Password - Email - IP (INT AI - VARCHAR - VARCHAR - VARCHAR - VARCHAR)

Dekuji za vsechny odpovedi...
TomasJ
Profil
V 2. kódu řádek 3. a 29. nemá to být v uvozovkách nebo apostrofech? $_GET['pg'] a $user_db['login'] (nevím zda to být musí nebo ne).
MySQL_Query("INSERT INTO user (ID, Login, Password, Email, IP) VALUES('','$login','$sha_pass','$email','$ip')");
Mudraon
Profil *
TomasJ:
Bohuzel tyto rady nepomohly :-( porad se nic nestane :-(
TomasJ
Profil
Mudraon:
Před MySQL_Query("INSERT INTO..."); dej echo "<br>".mysql_error()."<br>";
A pak napiš co ti to vypsalo.
Tori
Profil
Mudraon:
Řádek 11:
 if($login=="" or $pass=="" or $email=="")
- na tomto hostingu jsou patrně vypnuté register_globals, má to být $_POST['login'] atd.
K ověření existence uživatele: Je zbytečné tahat všechny řádky tabulky, když můžete použít
...WHERE `login` = '$login'
. Najde to buď 1 nebo 0 řádků.

TomasJ:
Pokud neexistuje konstanta login, PHP to vyhodnotí jako nedefinovanou konstantu s hodnotou 'login'. Je samozřejmě lepší psát řetězce do apostrofů/uvozovek.
TomasJ
Profil
Tori:
Pravda, tento kousek kódu mi úplně vypadl :)
Mudraon
Profil *
Tori:
Diky ten register_globals me uplne vypadl taky sem dlouho php nedelal tak me to uplne vypadlo uz mi to vypise pridano ale v db se nic neukaze :-(
Mudraon
Profil *
Pardon pardon ukaze se to tam asi byl nakej skluz uz to tam vidim :) Diky moc za pomoc :)
Mudraon
Profil *
Jen bych mel jeste takovej dotaz jestli ty regoster_globals muzu nejak zapnout ?
TomasJ
Profil
Mudraon:
MySQL_Query("INSERT INTO user (ID, Login, Password, Email, IP) VALUES('','$login','$sha_pass','$email','$ip')");
už jsi zkusil?

EDIT:
Mudraon:
register_globals on do .htaccess, ale nedoporučuji zapínat, jsou nebezpečné.
TomasJ
Profil
Omlouvám se za DP, smaže to prosím někdo z adminů? Děkuji. Původní text tohoto postu je v předchozím pod EDITEM.
Tori
Profil
Mudraon:
Jen bych mel jeste takovej dotaz jestli ty regoster_globals muzu nejak zapnout ?
Je to bezpečnostní riziko, proto jsou už většinou vypnuté. Jestli chcete číst nezávisle z POST i GET, tak použijte $_REQUEST, ale zapnuté globals neradím.
Mudraon
Profil *
TomasJ:
Oki tak nezapinat takze jen takova technicka ...
kdyz pouziju
$neco = $_POST['neco']

tak uz se to da pocitat ze nebezpecne ?
TomasJ
Profil
Mudraon:
Toto už se dá považovat za bezpečné, zápis je správný (až na to že chybí na konci středník (';')). Zpět k tématu, už jde vkládání do mysql?
Mudraon
Profil *
TomasJ:
Ano ano vsechno funguje jak ma :-) Diky moc
btw ano strednik sem v tom zapomnel ;)
1Pupik1989
Profil
Navíc pokud je ID autoincrement, pak se tam nevkládá žádná hodnota a úplně se to vynechá.
MySQL_Query("INSERT INTO user (Login, Password, Email, IP) VALUES('$login','$sha_pass','$email','$ip')");
Tori
Profil
Mudraon:
Ještě by to chtělo ošetřit data, která posíláte do databáze (teda ty z formuláře): mysql_real_escape_string nebo intval.
Kajman_
Profil *
TomasJ:
Toto už se dá považovat za bezpečné
Možná kdyby tam bylo ještě použito mysql_real_escape_string na vkládané řetězce do dotazů.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0