Autor | Zpráva | ||
---|---|---|---|
Peter2 Profil * |
#1 · Zasláno: 18. 9. 2014, 20:50:22
Chcem sa spytat, mam v podstate ten isty problem avsak k db sa mi pripojit podarilo ale teras mi necita udaje z tabulky...vypisuje chyby:
Deprecated: mysql_query(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in Warning: mysql_query(): Access denied for user ''@'10.10.8.3' (using password: NO) in Warning: mysql_query(): A link to the server could not be established in Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in ked zamenim vsetky mysql_query za mysqli_query tak to zas hadze dalsie chyby ale uz len dve: Warning: mysqli_query() expects at least 2 parameters, 1 given in Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, null given in Neviem si stym rady, pripajam aj kod ktory bezne pouzivam na taketo prkotiny <?php require("auth.php"); $table="stranka"; $editQuery="SELECT * FROM $table"; if ($pridaj) { $ins = mysqli_query("INSERT INTO $table VALUES ('' )"); if ($ins) $message="Pridaný záznam."; else $error=mysql_error(); } if ($delete) { $del = mysql_query("DELETE FROM $table WHERE id = '$id'"); if ($del) $error="Záznam id.$id bol vymazaný."; else $error=mysql_error(); $stop=1; } if ($process && $stop==0) { $home= $_POST['FCKeditor0'] ; $kontakt= $_POST['FCKeditor1'] ; $upp = "home = '$home', kontakt = '$kontakt' "; $ins = mysql_query("UPDATE $table SET $upp WHERE id = '$id'"); if ($ins) $message="Záznam id.$id bol zmenený..."; else $error=mysql_error(); } ?> <div class="error"> <?php echo $error; ?> </div> <div class="success"> <?php echo $message; ?> </div> <?php $srchQ = $editQuery; $srch = mysql_query($srchQ); $rows = mysql_Num_Rows($srch); ?> <?php for ($i2=0;$i2<$rows;$i2++): $zaznam = mysql_Fetch_Array($srch); ?> |
||
lionel messi Profil |
Peter2:
Uprav súbor auth.php nejako takto: $server = "adresa.servera"; //nahraď adresou servera $login = "Peter2"; //nahraď prihlasovacím menom $password = "123456"; //nahraď svojím helsom k db $db_name = "Petrova_db" //nahraď svojím menom db $link = mysqli_connect($server, $login, $password, $db_name) Samotný kód, vyznačil som, kde máš robiť zmeny: <?php require "auth.php"; $table="stranka"; $editQuery="SELECT * FROM $table"; if ($pridaj) { $ins = mysqli_query($link, "INSERT INTO $table VALUES ('' )"); if ($ins) $message="Pridaný záznam."; else $error=mysqli_error(); } if ($delete) { $del = mysqli_query($link, "DELETE FROM $table WHERE id = '$id'"); if ($del) $error="Záznam id.$id bol vymazaný."; else $error=mysqli_error(); $stop=1; } if ($process && $stop==0) { $home= $_POST['FCKeditor0'] ; $kontakt= $_POST['FCKeditor1'] ; $upp = "home = '$home', kontakt = '$kontakt' "; $ins = mysqli_query($link, "UPDATE $table SET $upp WHERE id = '$id'"); if ($ins) $message="Záznam id.$id bol zmenený..."; else $error=mysqli_error(); } ?> <div class="error"> <?php echo $error; ?> </div> <div class="success"> <?php echo $message; ?> </div> <?php $srchQ = $editQuery; $srch = mysqli_query($srchQ); $rows = mysqli_Num_Rows($link, $srch); ?> <?php for ($i2=0;$i2<$rows;$i2++): $zaznam = mysqli_Fetch_Array($srch); ?> Poznámka: prehľadnosť kódu je poslabšia, niektoré veci by sa dali urobiť aj inak, ale riešim len prechod na MySQLi. Odporúčam článok: www.fisir.tk/itblog/mysql_, kde získaš o tomto prechode lepší prehľad. |
||
Peter2 Profil * |
#3 · Zasláno: 18. 9. 2014, 21:12:16
auth.php je takyto:
<?php $link = mysqli_connect('localhost', 'login', 'pass', 'db_name'); if (!$link) { die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error()); } echo 'Success... ' . mysqli_get_host_info($link) . "\n"; mysqli_close($link); ?> spravil som zmeny ale stale sa to odvolava sem: Warning: mysqli_query() expects at least 2 parameters, 1 given in Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, null given in $srch = mysqli_query($srchQ); $rows = mysqli_Num_Rows($srch); |
||
lionel messi Profil |
Peter2:
Mal som tam chybu, svoj príspevok som upravil, pozri vyššie, už je to ok, ospravedlňujem sa. Pre istotu ešte raz: $srch = mysqli_query($link, $srchQ); .
Druhý riadok ok. Ešte dodám, že volanie mysqli_close je v súbore auth.php podľa mňa úplne zbytočné.
|
||
Peter2 Profil * |
#5 · Zasláno: 18. 9. 2014, 21:26:10
aaa ten mysqli_close robil sarapatu po odstraneni vse funguje teda aspon zatial...samozrejme s tvojou upravou.Just to skusim dat na povodny kod ci to pojde...Zatial ale vrela vdaka
|
||
Alphard Profil |
#6 · Zasláno: 18. 9. 2014, 21:28:47
Až zajistíte samotnou funkčnost, můžete začít studovat zabezpečení. Vstupní data do databáze by se měla escapovat.
|
||
Peter2 Profil * |
#7 · Zasláno: 18. 9. 2014, 21:32:41 · Upravil/a: Peter2
Dik za radu, zabezpecenie som studoval samozrejme nevenujem sa tomu az tolko...No tento konkretny kod je len tak narychlo a pouzivam ho len pre seba...
Tak a este jedna vec, vsade mi to hadze tuto hlasku Success... Localhost via UNIX socket jak to odstranim? Odstranene slepy som... |
||
rovi Profil |
#8 · Zasláno: 18. 9. 2014, 23:37:59
Logicky v auth.php neechuj, ale třeba použij return a pak to zpracuj jako hlášku tzv. flash message pomocí session. Alespoň pochopíš práci se sessions, pokud to ještě neznáš...
|
||
Časová prodleva: 11 let
|
0