| 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: 12 let
|
|||
0