Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 17 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.01.07
Prihlásený: 29.03.20
Príspevky: 660
Témy: 53
Príspevok NapísalOffline : 13.08.2007 19:15

S MySQL som síce začiatočník, no šiel som presne podľa knihy, avšak stále sa neviem vysporiadať s jednou chybou. Vytváram si admin pre web a používam prihlasénie cez MySQL. Vždy, keď sa pokúsim prihlásiť a zadávam pri tom na 100% správne údaje, vypíše mi túto chybu:

Kód:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in ***\index.php on line 37


tu je kód od 33 po 56:

Kód:
if ($heslo_ok && $nick_ok) {

$poziadavka = "SELECT nick FROM admin WHERE nick='$nick' AND heslo=PASSWORD('$heslo')";
$vysledok = @mysql_query($poziadavka);
$riadok = mysql_fetch_array ($vysledok, MYSQL_NUM);

if ($riadok) {

ini_set('session.use_trans_sid', '1');
session_name('sid');
session_start();
$_SESSION['nick'] = $riadok[0];
header('Location: index.php?pid=logged');
exit();

}

else {

echo ('<h3>Zadali ste zlé prihlasovacie údaje! Svoj pokus zopakujte prosím.</h3>');

}

}


viete niekto čo s tým?
(tabuľka admin obsahuje iba jeden riadok, kde práve stĺpec nick a heslo)


Offline

Skúsený užívateľ
Skúsený užívateľ
Chyba MySQL

Registrovaný: 30.05.06
Prihlásený: 08.10.14
Príspevky: 1756
Témy: 35
Bydlisko: BA - WESTSIDE
Príspevok NapísalOffline : 13.08.2007 19:33

Máš zle zostavený SQL query. Pridal som ti riadok do toho kódu na podrobný popis chyby, tak to spusti a napíš, čo ti to povedalo...
Kód:
if ($heslo_ok && $nick_ok) {

$poziadavka = "SELECT nick FROM admin WHERE nick='$nick' AND heslo=PASSWORD('$heslo')";
$vysledok = @mysql_query($poziadavka);

// TOTO SI TAM PRIDAJ A POVEDZ, CO TI NAPISALO
if (!$vysledok) { echo mysql_error();}

$riadok = mysql_fetch_array ($vysledok, MYSQL_NUM);

if ($riadok) {

ini_set('session.use_trans_sid', '1');
session_name('sid');
session_start();
$_SESSION['nick'] = $riadok[0];
header('Location: index.php?pid=logged');
exit();

}

else {

echo ('<h3>Zadali ste zlé prihlasovacie údaje! Svoj pokus zopakujte prosím.</h3>');

}

}







_________________
A. S. Tanenbaum píše:
The terms LF, MF, and HF refer to low, medium, and high frequency, respectively. Clearly, when the names were assigned, nobody expected to go above 10 MHz, so the higher bands were later named the Very, Ultra, Super, Extremely, and Tremendously High Frequency bands. Beyond that there are no names, but Incredibly, Astonishingly, and Prodigiously high frequency (IHF, AHF, and PHF) would sound nice.
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.01.07
Prihlásený: 29.03.20
Príspevky: 660
Témy: 53
Príspevok Napísal autor témyOffline : 13.08.2007 19:44

Kód:
Illegal mix of collations (cp1250_bin,IMPLICIT) and (latin1_swedish_ci,COERCIBLE) for operation '='


Offline

Skúsený užívateľ
Skúsený užívateľ
Chyba MySQL

Registrovaný: 30.05.06
Prihlásený: 08.10.14
Príspevky: 1756
Témy: 35
Bydlisko: BA - WESTSIDE
Príspevok NapísalOffline : 13.08.2007 20:03

Fíha, s týmto som sa ešte nestretol :) .


... 5 min hľadanie v Googli ...


Ok, zdá sa, že to mám... Na základe tejto diskusie http://lists.mysql.com/mysql/187156 si myslím, že spustenie tohoto kódu v MySQL
Kód:
SET NAMES 'cp1250_bin';
ti môže pomôcť...

Ešte ak by si sem napísal, čo ti vráti MySQL po spustení kódu
Kód:
SHOW VARIABLES LIKE ''%char%;


Ešte aby som to upresnil, SQL query máš zostavený dobre :) .







_________________
A. S. Tanenbaum píše:
The terms LF, MF, and HF refer to low, medium, and high frequency, respectively. Clearly, when the names were assigned, nobody expected to go above 10 MHz, so the higher bands were later named the Very, Ultra, Super, Extremely, and Tremendously High Frequency bands. Beyond that there are no names, but Incredibly, Astonishingly, and Prodigiously high frequency (IHF, AHF, and PHF) would sound nice.
Offline

Užívateľ
Užívateľ
Chyba MySQL

Registrovaný: 22.11.05
Prihlásený: 29.01.23
Príspevky: 712
Témy: 25
Bydlisko: SK-Martin
Príspevok NapísalOffline : 14.08.2007 7:29

pepek92 píše:
Kód:
Illegal mix of collations (cp1250_bin,IMPLICIT) and (latin1_swedish_ci,COERCIBLE) for operation '='

základná a najbežnejšia chyba o ktorej sa v knihách zrejme hneď tak skoro nedočítaš,
je to klasický problém, nemáš správne nastavené kodovanie, presnejšie máš to pomiešané a to ešte nedovoleným spôsobom,
collate čiže porovnanie má byť nastavené na takú hodnotu v akom je uložený ten skript, čiže keď si skript po vytvorení ukladáš, tak nastavíš napríklad kodovanie windows-1250, potom v DB musíš nastaviť "collate"(EN) alebo "porovnání"(CZ) alebo "zotriedenie"(SK) na "cp1250_bin"

namiesto cp1250_bin môžeš použiť aj "cp1250_general_ci"

set names 'cp1250_bin'; si pridaj do skriptu ak máš v DB nastavenú položku "Overenie MySQL spojenia: cp1250_bin"
ak si na hostingu, kde toto nastavenie sa nedá zmeniť, a spravidla je defaultne nastavené na utf8_unicode_ci, tak musíš napísať aj set names 'utf8';

snáď sa ti podarí rozlúsknuť tento problém, ono to je zložitejšie ako sa zdá,
takže pre teba neostáva nič iné len pokusy a pokusy až kým to nepochopíš a skript nerozbeháš,

na písanie a ukladanie skriptov doporučujem PSPad alebo notepad++, klasický notepad z Windowsu má v veľmi obmedzené možnosti a preto je na takúto prácu nevhodný

do budúcna však doporučujem používať rašej UTF-8 znakovú sadu/kodovanie, predídeš tým mnohým problémom

pri písaní skriptov doporučujem, tak ako to písal aj p360t, doplniť skript chybovými hláškami, po každom dopyte na DB treba jeho overenie či sa vôbec vykonal, a ak nie, tak prečo (vypíše chybovú hlášku, na základe tohto výpisu môžeš potom odstraňovať chyby)


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.01.07
Prihlásený: 29.03.20
Príspevky: 660
Témy: 53
Príspevok Napísal autor témyOffline : 14.08.2007 11:04

Ďakujem, už to ide, zmenil som formát db na utf aj celý web a je všetko v 100% poriadku :)


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.01.07
Prihlásený: 29.03.20
Príspevky: 660
Témy: 53
Príspevok Napísal autor témyOffline : 14.08.2007 19:45

Nechcem kvôli tomu zakladať novú tému, tak sa pýtam opäť tu. Vložil som do databázy s kódovaním UTF8_bin text zo stránky s kódovaním tiež UTF-8. Po načítaní textu na stránke sa namiesto znakov s mäkčeňmi zobrazovali čierne kosoštvorce s otáznikmi. Neviete prečo to robí? Ďakujem


Offline

Užívateľ
Užívateľ
Chyba MySQL

Registrovaný: 22.11.05
Prihlásený: 29.01.23
Príspevky: 712
Témy: 25
Bydlisko: SK-Martin
Príspevok NapísalOffline : 15.08.2007 7:40

a v DB máš ten text s diakritikou?
a pozri si ešte raz môj predošlý príspevok, najmä to o "Overenie MySQL spojenia"
ide o to, či máš naozaj úplne všetko riadne nastavené, alebo si na niečo zabudol
alebo ešte skús dať namiesto "utf8_bin" toto: "utf8_unicode_ci",


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.01.07
Prihlásený: 29.03.20
Príspevky: 660
Témy: 53
Príspevok Napísal autor témyOffline : 15.08.2007 11:41

Skúšal som a dospel som k záveru, že jediné písmeno, ktoré takto robí neplechu je malé "č" (veľké nie) skúšal som úplne všetko a nič. Na webe je utf8 a v databáze utf8_unicode_ci :roll:


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.01.07
Prihlásený: 29.03.20
Príspevky: 660
Témy: 53
Príspevok Napísal autor témyOffline : 15.08.2007 13:02

Vyriešil som to aj keď nepriamo, ale predsa. Vždy pri pridávaní textu do db sa najskôr skontroluje, či je v texte písmeno "č" a následne sa premenuje na *c*:

Kód:
ereg_replace("č", "*c*", $data)


Potom, v prípade výberu textu z databázy bude fungovať opačný proces:

Kód:
ereg_replace("\*c\*", "č", $riadok["1"])


Offline

Správca fóra
Správca fóra
Chyba MySQL

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51
Bydlisko: Bratislava
Príspevok NapísalOffline : 15.08.2007 13:15

skus napr. utf8_general_ci


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.01.07
Prihlásený: 29.03.20
Príspevky: 660
Témy: 53
Príspevok Napísal autor témyOffline : 15.08.2007 13:17

pepek92 píše:
Na webe je utf8 a v databáze utf8_unicode_ci :roll:


Je to už jedno, ide to pomocou môjho spôsobu, ale aj tak ďakujem za pomoc :).


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.01.07
Prihlásený: 29.03.20
Príspevky: 660
Témy: 53
Príspevok Napísal autor témyOffline : 16.09.2007 10:24

Opäť sa obraciam na vás, zase si neviem rady. Budujem novú verziu jedného môjho webu, a zatiaľ len skúšam. Vytvoril som si testovaciu tabuľku v databázy (zotriedenie cp1250_bin) a web je tiež v windows-1250. Pomocou jednoduchého formulára som skúšal pridávať slová a efekt bol taký, že písmenká ľ, ť, č, ď a ň mi zobrazovalo ako ?. Skúšal som všetko, čo ma napadlo, viete mi s tým niekto poradiť. Už som z toho zúfalí (o utf nechcem ani počuť).


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.01.07
Prihlásený: 29.03.20
Príspevky: 660
Témy: 53
Príspevok Napísal autor témyOffline : 16.09.2007 10:44

Už som to vyriešil, do skriptu som pridal

Citácia:
mysql_query("SET CHARACTER SET cp1250", $mysql_connect);


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.01.07
Prihlásený: 29.03.20
Príspevky: 660
Témy: 53
Príspevok Napísal autor témyOffline : 03.10.2007 16:55

Tak, mám opäť otázku. Skúsil som zálohovať aktuálnu databázu na mojom phpBB2 fóre (cp1250) a potom som ju dal do fóra, ktoré mám na localhost-e v mojom počítači. Všetko ide v poriadku, no na fóre sa mi ukazuje namiesto č otáznik. V databáze je to správne. Skúsil som príkaz:

Kód:
SET CHARACTER SET cp1250


a to pomohlo. Prečo mi predtým ukazovalo namiesto "č" iba "?". Chyba bola na fóre alebo kde potom?


Offline

Užívateľ
Užívateľ
Chyba MySQL

Registrovaný: 22.11.05
Prihlásený: 29.01.23
Príspevky: 712
Témy: 25
Bydlisko: SK-Martin
Príspevok NapísalOffline : 03.10.2007 23:02

to nás skúšaš či čo? alebo trpíš "samovravou"?
set charakter set ti zabezpečuje komunikáciu scriptu s db v správnom kódovaní, novšie mysql(tuším od verzie 4.2.x) toto vyžadujú


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.01.07
Prihlásený: 29.03.20
Príspevky: 660
Témy: 53
Príspevok Napísal autor témyOffline : 04.10.2007 14:07

mokus píše:
novšie mysql(tuším od verzie 4.2.x) toto vyžadujú


toto som chcel vedieť, totiž nechápal som prečo mi to na hostingu nerobilo a u mňa už hej, dakujem


Odpovedať na tému [ Príspevkov: 17 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. chyba mysql

v Databázy

5

344

29.01.2013 10:35

Josh Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Chyba MySQL

v Správy pre vedenie fóra

1

1060

20.02.2008 18:36

JanoF Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Chyba v MySQL

v Databázy

2

308

18.12.2012 16:35

mayo505 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. CHYBA MYSQL vo Viste

v Operačné systémy Microsoft

0

358

13.06.2008 15:41

allan Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. CMS alebo MySQL chyba

v Redakčné systémy

4

727

14.08.2008 9:55

Toxic Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. mysql chyba -> presmerovanie

v Databázy

1

589

19.01.2011 21:08

emer Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. chyba pri spusteni mysql

v Databázy

0

562

10.06.2010 15:09

myxall Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. syntax chyba Mysql UPDATE

v PHP, ASP

8

869

11.04.2008 20:50

bruno.b Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Kde je chyba ? mysql

v Databázy

4

669

21.05.2008 19:46

tommy70777 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Mysql chyba pri importe

v Databázy

11

846

09.03.2011 21:30

coldak Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. chyba pri presune fóra-MySQL

v Redakčné systémy

5

619

16.07.2011 18:13

psichac Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Chyba pri odoslaní údajov do MySQL

v PHP, ASP

5

405

22.04.2014 16:59

Ďuri Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Častá chyba načítania stránky (...dočasná chyba DNS).

v Poskytovatelia internetu

14

1328

29.05.2019 11:48

Jaro_N Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Chyba 101 (net::ERR_CONNECTION_RESET): Neznáma chyba.

v Sieťové a internetové programy

0

2812

26.02.2011 11:36

000kiko000 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. MySql

v Databázy

15

2229

26.03.2008 12:48

marekkk Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. MySQL

v Databázy

0

762

04.11.2020 15:19

jumper Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra