« 1 2 »
Autor Zpráva
michal454454
Profil
Zdravím mam tady takovy problém s pripojením databaze vypisuje mi to chyby se souborem connect.php a nevím vůbec v cem je problém... toto téma uz tedka resim na PHP registrace a prihlaseni, ale nekteri uzivatele se tam asi nepodivali tak kdyztak dekuji ze kazdou radu moc... :)

vypisuje tyto chyby:
Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in C:\dev\localhost_www\connect.php on line 6

Warning: mysql_connect(): Access denied for user 'root'@'localhost' (using password: YES) in C:\dev\localhost_www\connect.php on line 6

Deprecated: mysql_select_db(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in C:\dev\localhost_www\connect.php on line 7

Warning: mysql_select_db(): Access denied for user ''@'localhost' (using password: NO) in C:\dev\localhost_www\connect.php on line 7

Warning: mysql_select_db(): A link to the server could not be established in C:\dev\localhost_www\connect.php on line 7
Nastala chyba v pripojeni k databazi
jefitto44
Profil
Vyzerá to na zlé heslo/meno/host databázy
a mysql_connect je zastarelé a nezabezpečené pripojenie btw (ale ja ho tiež používam)
michal454454
Profil
a co tedy udelat pro to aby to slo...? :) diky moc
rovi
Profil
Opravdu se jedná o špatné heslo pro přístup do databáze. Funkce mysql_* pro začátek stačí, ale doporučuji nějaký databázový layer. Pusť google a koukni na tutoriály využívání PDO. Nebo tam napiš dibi, která je IMHO na začátek složitá. Doporučuji layer medoo. Je opravdu super. Pokud ovládáš práci s poli.
michal454454
Profil
Tak jsem zadal heslo kterým se normalne prihlasuji na prikazovem radku do databaze a uz mi to vypsalo jen toto:
Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in C:\dev\localhost_www\connect.php on line 6
rovi
Profil
Tak už jsi/jste připojen k databázi. Gratuluji. Opravdu zkuste si stáhnout medoo. Kdyžtak pomůžu s konfigurací...
michal454454
Profil
a co ta chyba tahle ještě jedna? :) co se tam objevuje to je s tou verzi?
David Klouček
Profil
michal454454:
mysql_* funkce jsou zastaralý, použij něco jinýho, mysqli, pdo nebo rovnou přejdi na nějakou knihovnu - třeba Dibi nebo Nette\Database.
rovi
Profil
To není chyba, ale varování. Odstraní se použitím jiných funkcí. Např. rozšíření mysqli místo mysql. Tutoriálů je mnoho... Nebo absurdně brutální řešení pro zasmání - downgrade verze php
michal454454
Profil
takze ted by když na te strance registrace.php zadam udaje tak by se mi měli ulozit do me databaze? :)
rovi
Profil
Pokud máš správně navrhlou tabulku a vkládáš validní údaje, tak ano.
lionel messi
Profil
michal454454:
Ohľadne prechodu z mysql_ na mysqli_ funkcie: www.fisir.tk/itblog/mysql_ — jednoduché a dobré zhrnutie.
michal454454
Profil
tak mam to takhle:
tabulka:
mysql> USE wsalbiondat
Database changed
mysql> describe uzivatele;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int(11)     | NO   | PRI | NULL    | auto_increment |
| login | varchar(40) | YES  |     | NULL    |                |
| heslo | varchar(32) | YES  |     | NULL    |                |
| email | varchar(50) | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
4 rows in set (0.03 sec)

mysql>
a connect.php
<?php
$db_server    = 'localhost';
$db_login     = 'root';
$db_password = "wsalbion789";  
$db_name      = 'wsalbiondat';
$spojeni      = MySQL_Connect($db_server ,$db_login, $db_password);
MySQL_Select_DB($db_name)or die('<p style="color: #CC0000">Nastala chyba v pripojeni k databazi');
mysql_query("set names utf8");
?>
a registrace.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
      <meta http-equiv="content-type" content="text/html; UTF-8">
       <meta name="generator" content="PSPad editor, www.pspad.com">
      <script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
      <script src="jssslider.js"></script>
      <link rel="stylesheet" type="text/css" href="stylefanszona.css">
  <title>WEST SANDWICH ALBION</title>
  </head>
  <body>
  REGISTRACE do FANSZÓNY
<form action="#" method="post">     
  <table>
    <tr>
      <td>Nick: </td>
      <td><input type="text" name="nick" value="<?php if(isset($_POST["nick"])){echo $_POST["nick"];}?>" size="25" tabindex="1" /></td>
    </tr>
    <tr>
      <td>Heslo: </td>
      <td><input type="password" name="heslo" value="" size="25" tabindex="2" /></td>
    </tr>
    <tr>
      <td>Ověření hesla: </td>
      <td><input type="password" name="over_heslo" value="" size="25" tabindex="3" /></td>
    </tr>
    <tr>
      <td>Email: </td>
      <td><input type="text" name="email" value="<?php if(isset($_POST["email"])){echo $_POST["email"];}?>" size="25" tabindex="4" /></td>
    </tr>
    <tr>
      <td colspan="2"><input type="submit" name="submit" value="Registrovat se" /></td>
    </tr>
  </table>
</form>

<?php
include "./connect.php";/* připojení k databázi */
if(isset($_POST['submit'])) {
    $nick = mysql_real_escape_string($_POST['nick']);
    $heslo = mysql_real_escape_string($_POST['heslo']);
    $over_heslo = mysql_real_escape_string($_POST['over_heslo']);
    $md5_heslo = md5($heslo);
    $email = mysql_real_escape_string($_POST['email']);
    /* — KONTROLA ZADANÝCH ÚDAJŮ — */
    $user_check = mysql_query("SELECT login FROM uzivatele WHERE login='".$nick."'");
    if($nick==""){echo"Nebyl vyplněn nick!";}
    else if(mysql_num_rows($user_check)){echo"Tento nick používá již jiný uživatel.";}
    else if($heslo==""){echo"Nebylo vyplněno heslo";}
    else if($over_heslo==""){echo"Nebylo vyplněno ověřovací heslo";}
    else if($heslo!=$over_heslo){echo"Vyplněná hesla se neshodují";}
    else if($email==""){echo"Nebyl vyplněn email";}
    else{
        $sql= mysql_query("INSERT INTO uzivatele VALUES ('','$nick','$md5_heslo','$email')") or die(mysql_error());
        echo"Registrace byla úspěšně dokončena!";
    }
}
?>

  
 
  </body>
</html>
lionel messi
Profil
michal454454:
Máš to ok. Prechod na MySQLi bude vyzerať takto:

connect.php
<?php
$db_server    = 'localhost';
$db_login     = 'root';
$db_password = "wsalbion789";  
$db_name      = 'wsalbiondat';
$spojeni      = MySQLi_Connect($db_server ,$db_login, $db_password, $db_name);
mysqli_query($spojeni, "set names utf8"); //pri každom volaní mysqli_query uvedieš $spojeni ako prvý argument
?>
michal454454
Profil
a co vlastne znamena to MySQLi to je novejsi verze ty databaze MySQL jakoby? :)
rovi
Profil
Vypadá zběžně funkčně ok. Nicméně jak to máš s charset? Vyzkoušej to a pak můžeš debuggovat. Doporučuji jinou konstrukci validátoru, je nepřehledná a dovoluje registraci uživatele jen s mezerou.
lionel messi
Profil
michal454454:
a co vlastne znamena to MySQLi to je novejsi verze ty databaze MySQL jakoby?
Viac-menej áno. To „i“ na konci znamená improved — teda vylepšená, keďže je tam pridaných viacero nových vecí oproti pôvodnému MySQL — objektový prístup, prepared statements a ďalšie.
michal454454
Profil
tak ted mi to po tom co jsem dal registrovat vyhodilo tunu chyb zas.. nebo varovani teda...
Deprecated: mysql_real_escape_string(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in C:\dev\localhost_www\fanszona.php on line 40

Warning: mysql_real_escape_string(): Access denied for user ''@'localhost' (using password: NO) in C:\dev\localhost_www\fanszona.php on line 40

Warning: mysql_real_escape_string(): A link to the server could not be established in C:\dev\localhost_www\fanszona.php on line 40

Deprecated: mysql_real_escape_string(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in C:\dev\localhost_www\fanszona.php on line 41

Warning: mysql_real_escape_string(): Access denied for user ''@'localhost' (using password: NO) in C:\dev\localhost_www\fanszona.php on line 41

Warning: mysql_real_escape_string(): A link to the server could not be established in C:\dev\localhost_www\fanszona.php on line 41

Deprecated: mysql_real_escape_string(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in C:\dev\localhost_www\fanszona.php on line 42

Warning: mysql_real_escape_string(): Access denied for user ''@'localhost' (using password: NO) in C:\dev\localhost_www\fanszona.php on line 42

Warning: mysql_real_escape_string(): A link to the server could not be established in C:\dev\localhost_www\fanszona.php on line 42

Deprecated: mysql_real_escape_string(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in C:\dev\localhost_www\fanszona.php on line 44

Warning: mysql_real_escape_string(): Access denied for user ''@'localhost' (using password: NO) in C:\dev\localhost_www\fanszona.php on line 44

Warning: mysql_real_escape_string(): A link to the server could not be established in C:\dev\localhost_www\fanszona.php on line 44

Deprecated: mysql_query(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in C:\dev\localhost_www\fanszona.php on line 46

Warning: mysql_query(): Access denied for user ''@'localhost' (using password: NO) in C:\dev\localhost_www\fanszona.php on line 46

Warning: mysql_query(): A link to the server could not be established in C:\dev\localhost_www\fanszona.php on line 46
Nebyl vyplněn nick!
rovi
Profil
OT: Škoda, že tu není tlačítko +1, like nebo thx odkaz.

Bylo by možné projekt hodit na free webhosting? Ať se můžem též podívat a lépe poradit?


Zas to heslo...
V connect.php máš údaje pro root. Proč se připojuješ jako user bez hesla?
michal454454
Profil
http://php-zkouskar.wz.cz/
je to tahle adresa...
rovi
Profil
Na wz.cz nemají nainstalovanou podporu mysqli. Stále tuším běží na php4. Doporučuji endora.cz
rychlé, zdarma... A alespoň funkční
michal454454
Profil
http://php-zkouska.8u.cz/
tak tohle no... to je ta endora
rafej
Profil
Pokud chceš místo mysql použít mysqli, musíš to přepsat u všech funkcí!

Kromě toho ti nebude fungovat mysql_real_escape_string, protože u mysqli tato funkce neexistuje a místo toho se používají tzn. prepared statements. Odkaz na vysvětlení a jednoduché příklady máš v příspěvku č. 12
michal454454
Profil
a mohu tedy pouzit jen mysql? a nechat to jak to bylo? :) a mělo by to jit tedy ne potom?
rovi
Profil
Mohl bys ještě povolit na endoře post požadavky ze zahraničí? Takto se nemůžu ani registrovat...
michal454454
Profil
ted jsem to zkusil nechat jen s obycejnym mysql a nefunguje to na ty endore pise to problém s databazi pripojenim


a jak se povoluje ze zahranici? to nechapu..
rovi
Profil
Používat tyto funkce můžeš. Jestli se chceš hlášek zbavit, napiš za tag
<?php
error_reporting(0);
, ale za cenu toho, že neuvidíš, kde máš chybu. Takže až to nebude fungovat, tak to zakomentuj
<?php
//error_reporting(0);
michal454454
Profil
ja furt nechapu proc mi nefunguje to propojenis databazi i když tam nemam MySQLi ale jenom MySQL tak proc to nefunguje... ta registrace ani na localhostu ani na serveru ty endory..
rovi
Profil
Samozřejmě, že se Ti nepodaří připojit k db, protože localhost označuje počítač na kterém běží databáze. Localhost = tento počítač.

Pro webovou prezentaci musíš vytvořit novou databázi a k ní budeš mít nové uživatelské jméno a heslo pro připojení k ní...

Netušil jsem, že neovládáš základní dovednosti a nemáš základní znalosti pojmů...

Mysql a mysqli jsou odlišné implementace pro práci s databází. Tzn, že nemůžeš jen vyměnit mysql_* za mysqli_*
michal454454
Profil
ale ted jsem zaregistroval a vypsalo mi to toto na te mysql samotne:
Incorrect integer value: '' for column 'id' at row 1
« 1 2 »

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

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