get variable geht nicht

hups1803

Erfahrenes Mitglied
hallo,
ich habe folgendes script:
Code:
// Check name /code, set cookie, show field to add chat
function setNameC(frm) {
var inputval = frm.cod.value;
$.ajax({
  type: "GET",
  async: false,
  url: '../../ajax.php',
  data: 'md5='+inputval+'&user='+userid,
  success: function(data){
  userpass=data;
  }
});
alert(userpass);
       
  // If name not contains only: Letters, Numbers, Space, dash, and "_", between 2 and 12 characters. Or starts /ends with space
  if (chatuser.match(/^[a-z0-9 _-]{2,12}$/ig) == null || chatuser[0] == ' ' || chatuser[chatuser.length - 1] == ' ') {
  alert(texts.err_name);
  frm.chatuser.focus();
  return false;
  }
  // If incorrect code
  else if (frm.cod.value.length<2 || frm.cod.value != userpass) {
  alert(texts.err_vcode+'f'+userpass);
  document.getElementById('code_ch').style.color = 'red';
  frm.cod.focus();
  frm.cod.select();
  return false;
  }
  else if (checkNameC(chatuser)==1) {
  alert(chatuser+texts.err_nameused);
  frm.chatuser.select();
  }
  // If correct code and name
  else {
  // Sets data for cookie
  var name_cookie = 'name_c';
  var val_cookie = chatuser;
  var oned = 24*60*60*1000;  // Cookie expiration, one day in milliseconds
  var expDate = new Date();
  expDate.setTime(expDate.getTime()+oned);

  document.cookie = name_cookie + "=" + escape(val_cookie) + "; expires=" + expDate.toGMTString();  // sets cookie

  // Hides name /code, show field to add text chat, delete the code
  document.getElementById('name_code').style.display = 'none';
  document.getElementById('chatadd').style.display = 'block';
  frm.cod.value = '';
  logoutchat = 0;  // set to not delete the user from list
  refresh_usrs = 0;  // sets to can refresh online users list
  return chatuserset = 1;
  }
}
es geht um diese zeile
Code:
$.ajax({
  type: "GET",
  async: false,
  url: '../../ajax.php',
  data: 'md5='+inputval+'&user='+userid,
  success: function(data){
  userpass=data;
  }
});
alert(userpass);

das alert vom get stimmt =1234
Code:
// If incorrect code
  else if (frm.cod.value.length<2 || frm.cod.value != userpass) {
  alert(userpass);
das alert vom else if ist auch 1234,

und da liegt der hund begraben das else if alert dürfte er garnicht anzeigen da beide 1234 sind

was ist denn hier nicht richtig

Code:
frm.cod.value != userpass
 
Es wundert mich, dass er da überhaupt etwas sinnvolles ausführt, denn Du solltest das alles über Callbacks lösen, denn sonst ist nicht sichergestellt, dass die Variable userpass mit dem gewünschten Wert belegt ist, wenn Du sie abrufst.
 
habe das ganze mal sep umgebaut

Code:
function setpass(){    
     var inputval = $("#cod").val();
     $.ajax({
        type: "GET",
        async: false,
        url: "../../ajax.php",
        data: "md5="+inputval+"&user="+userid,
        success: function(data){
               data=data.trim();
               $("#code_ch").html(data);        
                var pass= "'.$pass.'";
            alert($.trim(pass)+"="+ $.trim(data))
        if( data == pass){
                       $("#chatadd").show();
                      $("#name_code").hide();
                 }else{
                       alert(false)
                 }  
        }
       });
     }

das alert
Code:
alert($.trim(pass)+"="+ $.trim(data))
gibt aus 1234=1234


dieser abschnitt
Code:
if( data == pass){
                 $("#chatadd").show();
                 $("#name_code").hide();
             }else{
                    alert(false)
                    }

das gibt aber trotzdem false aus . Finde den fehler nicht sitz jetzt schon std da drann please help.
 
habe es hinbekommen danke

Code:
function setpass(){
     $.ajax({
        type: "GET",
        async: false,
        url: "../../ajax.php",
        data: "userpass="+userid,
        success: function(response){   
        var pass= $("#cod").val();
        if( $.trim(pass) == $.trim(response)){
                   $("#chatadd").show();
                   $("#name_code").hide();
                 }else{
                   alert("Falsches Passwort");
                   }
        }
       });
     }
 
Zurück