tutorials.de Buch-Aktion 05/2012
Like Tree3Danke
  • 1 Beitrag von Anna Bolika
  • 1 Beitrag von Anna Bolika
  • 1 Beitrag von chmee
ERLEDIGT
NEIN
ANTWORTEN
9
ZUGRIFFE
194
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Trash Trash ist offline Mitglied Brokat
    Registriert seit
    Jan 2002
    Beiträge
    400
    Hallo,
    ich habe mich in letzter Zeit etwas dem Thema "Ajax" gewidmet, weil ich mein neues Projekt auf neueren Technologien aufbauen möchte, damit die User Experience angenehm ist.

    Derzeit ist es so, dass der User z.B. eine PW-Vergessen Funktion aufrufen kann. Per Ajax wird das ganze an ein JS-Script geschickt, dieses ruft eine PHP-Funktion auf, die z.B. in der DB nach der E-Mail Adresse sucht. Die Checks, ob überhaupt etwas in das Feld eingetragen wurde und ob es sich dabei um eine E-Mail Adresse handelt, finden derzeit in dem PHP-Skript statt.

    Ist es nicht üblich/gängig aus Ressourcengründen diese Checks vor dem Server-Call mit JS zu prüfen und abzufangen und erst im erfolgreichen Fall die Ajax-Prozedur aufzurufen?

    Danke
     

  2. #2
    Avatar von Anna Bolika
    Anna Bolika Anna Bolika ist offline Mitglied Silber
    Registriert seit
    Jan 2011
    Beiträge
    75
    Natürlich ist das sinnvoll. Aber auf keinen Fall auf die Validierung in Javascript verlassen. Das heißt: PHP muss zusätzlich sicherheitshalber nochmal checken.
    Trash bedankt sich. 

  3. #3
    Trash Trash ist offline Mitglied Brokat
    Registriert seit
    Jan 2002
    Beiträge
    400
    Danke!

    Weißt Du zufällig auch, wie man am besten ein CSS-Popup entwickelt.

    Wenn Du z.B. bei Facebook im Registrierungsformular auf die Erklärung unter dem Geburtstag klickst, öffnet sich eine Div-Box als Overlayer. Ich kann im Code aber nicht erkennen, wie das funktioniert da ich nicht sehe, dass durch JS die Eigenschaften des Divs verändert werden. Der Link zeigt nicht auf einen JS-Code.
     

  4. #4
    Avatar von Anna Bolika
    Anna Bolika Anna Bolika ist offline Mitglied Silber
    Registriert seit
    Jan 2011
    Beiträge
    75
    Das ist ganz sicher nicht nur ein Layer. Die Verzögerung beim Anklicken zeigt, dass hier irgendwas per Ajax nachgeladen wird.

    Ich bin sicher, dass das in Javascript umgesetzt ist. Tippe auf sowas wie (irgendwo zwischen den vielen Facebook-Scripts versteckt):

    document.getElementById("bla").onclick;
    Trash bedankt sich. 

  5. #5
    Trash Trash ist offline Mitglied Brokat
    Registriert seit
    Jan 2002
    Beiträge
    400
    Ich vermute mittlerweile auch folgendes. Das DIV wird per JS geöffnet (wie Du beschrieben hast). Im DIV selber wird aber ein Ajax-Skript ausgeführt. Sonst würde man auch nicht "Loading" im Fenster sehen, wenn man geklickt hat.

    Danke. Ich schaue mir das nachher mal genauer an.
     

  6. #6
    Trash Trash ist offline Mitglied Brokat
    Registriert seit
    Jan 2002
    Beiträge
    400
    Hallo,
    ich habe nochmal eine Frage hierzu.

    Es ist derzeit so, dass ich in einem Formular alle Elemente per GET-Verfahren an einen JavaScript-Check schicke. Die JavaScript-Funktion checkt z.b, ob etwas eingegeben wurde und ob die E-Mail Adresse das richtige Format hat.

    Code :
    1
    
    <form action="javascript:;" method="get" onSubmit="jsLoginCheck(document.getElementById('email').value,MD5(document.getElementById('pw').value),document.getElementById('stayLogin').checked);">

    Ist dies der Fall wird im JS per Ajax eine URL aufgerufen, an die der Username und das verschlüsselte PW gehängt werden.

    Wie kann ich es denn machen, dass die URL, die an mein Ajax-Script geleitet ist unter https:// läuft?

    Derzeit ist es so, dass die URL z.B. folgendermaßen aufgebaut wird:

    Code :
    1
    2
    
    var url = './includes/login.php?email=' + email + '&pw=' + pw;
    ajaxCheck(url);

    Wenn ich nun aber die url oben so bearbeite, dass es eben eine URL mit Domainnamen ist und https:// davor ist, funktioniert das Skript nicht mehr.

    Weiß jemand wie ich das mache?

    Danke
     

  7. #7
    Avatar von chmee
    chmee chmee ist gerade online mod | media
    tutorials.de Moderator
    Registriert seit
    Apr 2004
    Ort
    Berlin bei Potsdam
    Beiträge
    7.630
    Blog-Einträge
    4
    ..funktioniert das Skript nicht mehr.
    Heisst?
    Ist die url falsch?
    Funktioniert https nicht richtig?
    Ist https an einen anderen Server-Ordner gebunden, was nicht unüblich ist..?
    Könntest Du Deine "umgewandelte" url dazu zeigen?

    mfg chmee

    p.s.: Ich bin ein wenig überrascht, dass mehrere JS-Befehle per Kommata getrennt funktionieren sollten..
    Siehe form-action Code-Snippet von Dir.
    Geändert von chmee (02.11.11 um 10:15 Uhr)
    Trash bedankt sich. 
    Mein Blog - VideoFAQ - FotoFAQ - bei Flickr - DSLR Kleinanzeigen
    Benutzt den DANKE-Knopf oder bewertet den Beitrag

    "GEHT NICHT" HILFT NICHT, TESTET EURE CODES ONLINE UND GEBT KLARE INFOS!
    -> Regexp <- -> php <- -> Javascript <-

  8. #8
    Trash Trash ist offline Mitglied Brokat
    Registriert seit
    Jan 2002
    Beiträge
    400
    Moin,
    danke für die Antwort. Die JS-Befehle sind getrennt weil es Werte sind, die an die Funktion die aufgerufen wird (jsLoginCheck) übergeben werden: jsLoginCheck(email, pw, staylogin). Ich bekomme bei dem aufgerufenen AjaxScript dann einen "Error: 0". Ich dachte evtl. funktioniert es nicht, dass mein AjaxScript keine "vollständigen" URL's ausführen kann - oder kann es daran nicht liegen?

    Ich hatte mir die URL ausgegeben und sie war korrekt:

    Code :
    1
    
    https://domain.de/includes/login.php?email=eingegebeneEmail&pw=eingegebenesPW&stayLogin=false
     

  9. #9
    Avatar von chmee
    chmee chmee ist gerade online mod | media
    tutorials.de Moderator
    Registriert seit
    Apr 2004
    Ort
    Berlin bei Potsdam
    Beiträge
    7.630
    Blog-Einträge
    4
    Kommt auf Deine Ajax-Funktion an. Ist die irgendwo einzusehen?

    mfg chmee
     
    Mein Blog - VideoFAQ - FotoFAQ - bei Flickr - DSLR Kleinanzeigen
    Benutzt den DANKE-Knopf oder bewertet den Beitrag

    "GEHT NICHT" HILFT NICHT, TESTET EURE CODES ONLINE UND GEBT KLARE INFOS!
    -> Regexp <- -> php <- -> Javascript <-

  10. #10
    Trash Trash ist offline Mitglied Brokat
    Registriert seit
    Jan 2002
    Beiträge
    400
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    
    function ajaxLoginCheck(url) {
        ajaxObject = false;
     
        if(window.XMLHttpRequest) {
            ajaxObject = new XMLHttpRequest();
            if(ajaxObject.overrideMimeType) {
                ajaxObject.overrideMimeType('text/xml');
            }
        } else if (window.ActiveXObject) {
            try {
                ajaxObject = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try {
                    ajaxObject = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {}
            }
        }
        
        if(!ajaxObject) {
            alert('Sorry, AJAX does not work');
            return false;
        }
     
        ajaxObject.onreadystatechange = ajaxLoginCheckResponse;
     
        document.getElementById('loginBtn').disabled=true;
        document.getElementById('activeJob').innerHTML = '<img src="includes/images/ajax-loader.gif" />';
        document.getElementById('activeJob').style.visibility = 'visible';
        
        ajaxObject.open('GET', url, true);
        ajaxObject.send(null);
     
        return true;
    }
     
    function ajaxLoginCheckResponse() {
        if(ajaxObject.readyState == 4) {
            if(ajaxObject.status == 200) {
                var xmlData = ajaxObject.responseXML.documentElement;
                
                if(xmlData.getElementsByTagName("error")[0].firstChild.data == 'false'){
                    var url = xmlData.getElementsByTagName("url")[0].firstChild.data;
                    window.open(url, "_self");
                } else {
                    document.getElementById('activeJob').innerHTML = '';
                    document.getElementById('loginBtn').disabled= false;
                    var text = xmlData.getElementsByTagName("text")[0].firstChild.data;
                    
                             //.....anzeige des fehlertextes habe ich hier mal entfernt....
                }
            } else {
                alert('error: ' + ajaxObject.status.toString());
                return;
            }
        }
    }
     

Ähnliche Themen

  1. Ajax -> $(ajax) Response Text Leer oder undefined
    Von DiDiJo im Forum Javascript & Ajax
    Antworten: 4
    Letzter Beitrag: 19.11.10, 11:53
  2. Antworten: 13
    Letzter Beitrag: 01.08.07, 00:08
  3. nochmal opener, ich checks net sorry
    Von Phlipmode im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 03.03.05, 11:24
  4. http://validator.w3.org wahr oder nicht wahr?
    Von themonk im Forum HTML & XHTML
    Antworten: 13
    Letzter Beitrag: 09.06.04, 17:36
  5. Ich checks einfach nicht
    Von Benedikt im Forum PHP
    Antworten: 5
    Letzter Beitrag: 28.11.02, 13:16