Avatar billede bjering Nybegynder
22. oktober 2007 - 17:25 Der er 6 kommentarer og
1 løsning

Java skal hente fra mysql ved at loade en php side

Hejsa eksperter.

Har et lille problem her...

Jeg vil gerne have java til at "køre" den her php side, og så returnere om brugeren eksisterer eller ikke.

<-- check brugernavn siden i php -->
<?
$username = $_GET['name'];
$q=mysql_query("select * from aion_login WHERE username='$username'") or die(mysql_error());
 
while ($row = mysql_fetch_array($q))
{
  if (mysql_num_rows($q) ==0)
  {
      echo"<div id='mysqlMsg'>valid</div>";
  }
  else
  {
      echo"<div id='mysqlMsg'>invalid</div>";
  }
}
?>

det den skal gøre er :

open checkbruger.php?name=brugernavnet
returnere valid eller invalid (eller true, false) ligemeget.

men UDEN at den åbner en side i browseren overhovedet.

kan man ikke loade sidens data ind i en temp buffer ellers sådan noget og så se om den er der eller ikke ?

var temp;
temp = open..blabla
if(temp == "valid")

brugerens input bliver tjekket i et javascript

function checkThenSubmitForm(form)
{
  <!-- form checking instructions -->; 


masser af ting


  // check if username is taken
  if(!CheckUserName(form.username.value))
  {

      return false;
  }
}

function CheckUserName(name)
{
//her skal den tjekke..
//f.eks :

load php siden uden af viseden
<- php's responce ind i buffer
tjek bufferens data her, return false eller true

}

nogen ideer ?
Avatar billede olebole Juniormester
22. oktober 2007 - 19:40 #1
<ole>

En ganske enkel løsning kunne være, hvis du i HTML-dokumentet skriver:

<script type="text/JavaScript">
function checkServer(oInp) {
    var oScr = document.getElementsByTagName("script")[0].cloneNode(false);
    oScr.setAttribute("src", "http://www.domain.dk/sti/til/fil.php?contxt=checkUser&username=" + encodeURIComponent(oInp.value));
    document.getElementsByTagName("head")[0].appendChild(oScr);
}
function callback(sMsg) {
    if (sMsg=="") return;
    var oInp, oDv = document.createElement("div");
    oInp = document.getElementsByName("username")[0];
    oDv.appendChild( document.createTextNode(sMsg) );
    oDv.className = "msgDiv";
    oInp.parentNode.insertBefore(oDv, oInp);
}
</script>

<input name="username" onchange="checkServer(this)" type="text">

- så kan du i PHP-dokumentet 'fil.php' skrive noget à la:

<?php
function checkUser($username) {
    // Check DB her
    if ( BRUGER_FINDES ) {
        return "Brugernavnet findes. Vælg et andet ...";
    }
    return "";
}

if ( isset($_GET["contxt"]) ) {
    switch ($_GET["contxt"]) {
        case "checkUser":
            print "callback('".checkUser($_GET["username"])."')";
        break;
    }
}
?>

/mvh
</bole>
Avatar billede w13 Novice
23. oktober 2007 - 03:32 #2
Bjering>> Men det er selvfølgelig en javascript-løsning og ikke en java-løsning. =)
Avatar billede bjering Nybegynder
23. oktober 2007 - 04:56 #3
det virker fint :)

dog lidt overkill, skulle kun bruge

function checkServer(oInp)
{
    var oScr = document.getElementsByTagName("script")[0].cloneNode(false);
    oScr.setAttribute("src", "checkusername.php?contxt=checkUser&username=" + oInp.value);
    document.getElementsByTagName("head")[0].appendChild(oScr);
}

function callback(sMsg) {
    if (sMsg=="") return;
    ReturnMsg = sMsg;   
}

tak :) smid et svar olebole
Avatar billede olebole Juniormester
23. oktober 2007 - 09:58 #4
Fino ... hellere lidt at pille af, end lidt for lidt  ;o)
Avatar billede bjering Nybegynder
23. oktober 2007 - 10:08 #5
nemlig rigtig :)
Avatar billede olebole Juniormester
23. oktober 2007 - 10:37 #6
Tak for points  :)
Avatar billede bjering Nybegynder
23. oktober 2007 - 12:24 #7
jeg vil lige pointere at det ikke virker i firefox :o
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester