• Liebe User, bitte beachtet folgendes Thema: Was im Forum passiert, bleibt im Forum! Danke!
  • Hallo Gemeinde! Das Problem leidet zurzeit unter technischen Problemen. Wir sind da dran, aber das Zeitkontingent ist begrenzt. In der Zwischenzeit dürfte den meisten aufgefallen sein, dass das Erstellen von Posts funktioniert, auch wenn das Forum erstmal eine Fehlermeldung wirft. Um unseren Löschaufwand zu minimieren, bitten wir euch darum, nicht mehrmals auf 'Post Reply' zu klicken, da das zur Mehrfachposts führt. Grußworte.

mySQL 4.1 + phpMyAdmin

Mitglied seit
19.09.2001
Beiträge
2.532
Reaktionen
0
MySQL said:
#1251 - Client does not support authentication protocol requested by server; consider upgrading MySQL client

Sagt mir MySQLAdmin.
Was tun?

Windows XP SP2
Apache 1.3
mySQL 4.1
PHP 4.3.5
phpMyAdmin 2.6.0-pl3

Aus den Google-Lösungen werd ich nicht schlau bzw die funktioneren nicht, und die phpMyAdmin-FAQ will mir erzählen ich soll ne DLL neu kompilieren :stupid:
 
Mitglied seit
19.09.2001
Beiträge
2.532
Reaktionen
0
Habs nun. Der "mySQL Client" ist also PHP, ein Upgrade auf 5.0.3 löst das Problem.

Kann geschlossen werden!
 
Mitglied seit
12.01.2004
Beiträge
8.557
Reaktionen
0
Ort
Gießem
naja ich häng mich mal dran

hab gerade die 2.60 version vom pma installiert... db zugriff funzt zwar, aber wenn ich im sql field ne anweisung rausschicken will á

SELECT *
FROM `user`
WHERE name = 'xxx'
LIMIT 0 , 30


sagt er mir folgendes:

#1267 - Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='

kann mir jemand bitte helfen und sagen wo ich da was einstellen muss :confused:
 
Mitglied seit
12.01.2004
Beiträge
8.557
Reaktionen
0
Ort
Gießem
also im ersten link hamse gesagt der bug wurde gefixt mit pma 2.6.0 pl3 - die hab ich auch. mysql server vers: 4.1.7-nt

auf die bugs.mysql.com komm ich nicht. da kaggt der iexplore ab o_O

naja in dem anderen board ham die ja gesagt, folgendes in die my.ini hauen:

set-variable=default-character-set=latin1
set-variable=default-collation=latin1_german1_ci
set-variable=collation_server=latin1_german1_ci

gesagt, getan. trotzdem bleibt der fehler in pma. naja hab mir ne ältere version 2.3.0-rc2 drauf gemacht, und keine probs mehr :D

aber nun folgendes problem. ich will für unser kolloquium am donnerstag ne script insertion zeigen. dazu habe ich nen webshop programmiert. hat schonmal gefunzt, jetzt mit mysql server upgrade und neuerer php version (4.3.9) funzt es nichtmehr! hüülfe!!!
also hab da ne tabelle user. habe in meinem shop als login 2 eingabefelder, name und password. der einfachheit halber hab ich register_globals=off und alles von magic_quotes=off (in der php.ini)

hier mal der source code von der verarbeitenden datei:

PHP:
<?PHP
if(!isset($nickname) || !isset($password))
{
?>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td width="55%"><table width="100%" border="0" cellspacing="0" cellpadding="0">
        <tr> 
		<form name="form1" method="post" action="">
          <td width="40%" valign="top"><strong>:: </strong>Benutzername</td>
          <td width="60%" valign="top">
<input name="nickname" type="text" class="txt" id="nickname"
 onFocus="this.style.backgroundColor='#FFEAEA'" 
onBlur="this.style.backgroundColor='#ffffff'"></td>
        </tr>
        <tr> 
          <td valign="top"><strong>:: </strong>Passwort</td>
          <td valign="top"> 
<input name="password" type="password" class="txt" 
id="password" 
onFocus="this.style.backgroundColor='#FFEAEA'"
 onBlur="this.style.backgroundColor='#ffffff'"></td>
        </tr>
        <tr> 
          <td valign="top"> </td>
          <td valign="top">
              <input type="submit" name="Submit" value="Login" class=submit>
            </form></td>
        </tr>
      </table></td>
    <td width="45%" valign="top">Sie 
      sind noch nicht <a href="index.php?showid=05" class="pl">registriert?</a></td>
  </tr>
</table>
<p> </p>
<?PHP
}
else
{

$conn = mysql_connect(HOST, ID, PW) or die("Cannot establish connection");
mysql_select_db(DB, $conn);

$sql = "SELECT * FROM user WHERE name='".$nickname."' AND password='".$password."'";
echo "<br>".$sql."<br>";

$result = mysql_query($sql);
//echo mysql_error($conn);

if(mysql_num_rows($result) > 0)
{
	while($us = mysql_fetch_array($result))
	{
			echo "Willkommen, ".$us['name'].". Sie können nun Ihren Einkauf durchführen.";
	}
}
else echo "Dieser Benutzername existiert nicht oder Sie haben ein falsches Passwort eingegeben.";
}
?>

so. nun gebe ich im $password irgendwas ein und im $nickname input field folgendes: Admin'; #

bei "echo $sql" gibt er mir also dann folgendes aus: SELECT * FROM user WHERE name='Admin'; # ' AND password='xx'

meine phpmyadmin liefert mir ein ergebnis zurück (also der user.name "Admin" existiert in der table!). Mein script sagt mir halt das was im else steht...
log ich mich aber "richtig" ein, also mit korrektem namen und password, gehts einwandfrei. bitte helft mir :)
 

cart

Technik/Software Forum
Mitglied seit
01.08.2002
Beiträge
4.873
Reaktionen
0
Ort
New York
Scheinbar korrigiert die pma Version deinen Eingabefehler. Warum auch immer. Erscheint mir auch sehr seltsam... Naja...
Auf jeden Fall solltest du einige Dinge in dem Script ändern. Dann schaut das schöner aus und lässt sich auch schöner zeigen ;)

1. $_POST['nickname']
2. if ( (!isset($var)) ) <- zusätzliche Klammern um das !isset
3. mach den PHP-Teil nicht zu, sondern arbeite mit echo"";
4. inputs kannst du im CSS-Teil allgemein definieren, dann musst du nicht jedem input eine Klasse extra zuweisen
 
Mitglied seit
12.01.2004
Beiträge
8.557
Reaktionen
0
Ort
Gießem
Original geschrieben von cart
Scheinbar korrigiert die pma Version deinen Eingabefehler. Warum auch immer. Erscheint mir auch sehr seltsam... Naja...
Auf jeden Fall solltest du einige Dinge in dem Script ändern. Dann schaut das schöner aus und lässt sich auch schöner zeigen ;)

1. $_POST['nickname']
2. if ( (!isset($var)) ) <- zusätzliche Klammern um das !isset
3. mach den PHP-Teil nicht zu, sondern arbeite mit echo"";
4. inputs kannst du im CSS-Teil allgemein definieren, dann musst du nicht jedem input eine Klasse extra zuweisen

zu 1: is mir selber klar, nur gehts ja dadrum zu zeigen was unsicheres programmieren ausmacht...
zu 2: wozu? zu viel schreibarbeit ^^
zu 3: is doch auch erstmal egal ;)
zu 4: siehe 3 ^^

wo bitte habe ich einen eingabefehler? alles was dasteht is so gewollt und hat schonmal funktioniert. nur jetzt nimmer o_O
 

cart

Technik/Software Forum
Mitglied seit
01.08.2002
Beiträge
4.873
Reaktionen
0
Ort
New York
Hmm mir ist vorhin beim arbeiten was eingefallen:
Nutzt pma vllt zur Abfrage mysql_escape_string oder mysql_real_escape_string? Wenn ja, werden ja die Sonderzeich ('; #) escaped. Das würde erklären, wieso die Abfrage im pma geht und in deinem Script nicht. Dein Script escaped ja nicht!

zu 1: is mir selber klar, nur gehts ja dadrum zu zeigen was unsicheres programmieren ausmacht...
zu 2: wozu? zu viel schreibarbeit ^^

wo bitte habe ich einen eingabefehler? alles was dasteht is so gewollt und hat schonmal funktioniert. nur jetzt nimmer o_O

zu 1/2: Wenn es um unsicheres programmieren gehen soll, dann lass es so ;)

Eingabefehler war das falsche Wort. Sorry :)
 
Mitglied seit
12.01.2004
Beiträge
8.557
Reaktionen
0
Ort
Gießem
hab das problem gelöst... lag an dem semikolon

=> ich muss folgendes ins input geben: Admin' #

dadurch komm ich also zu folgender abfrage, die mein script GENAUSO an den mysql server schickt: SELECT * FROM user WHERE name='Admin' #' AND password='xx'

... das erstaunliche resultat (für die laien): durch die eingabe kann man sich ohne passwort als admin einloggen.aber halt nur bei unsauberer programmierung ;)

also das kolloquium is am donnerstag. wir werden das ganze wohl auch per cam aufnehmen und bearbeiten, danach online stellen. ich geb nochma bescheid wenns fertig is *g*
atm quäl ich mich mit powerpoint rum :rolleyes:

wer schon interesse an der arbeit an sich hat: www.st-freaks.de/sfa/sfa.pdf (~1.5mb)
meine parts ==> Patrick Klein. die arbeit is für mich mit 14 punkten ausgegangen ;)
 
Oben