Validation form - ajax - php - header(location)

Κώδικας, πληροφορίες, ερωτήσεις και απαντήσεις σχετικές με την JavaScript.

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Άβαταρ μέλους
diti
Δημοσιεύσεις: 54
Εγγραφή: 09 Ιαν 2004 17:41
Τοποθεσία: ΘΕΣΣΑΛΟΝΙΚΗ
Επικοινωνία:

Validation form - ajax - php - header(location)

Δημοσίευση από diti » 27 Νοέμ 2009 23:41

Καλησπέρα. Είχα κάνει ένα πρόγραμμα που έδινε ο χρήστης username, password και χρησιμοποιώντας php (ελέγχους και διάβασμα πίνακα βάσης) καλούσα στη συνέχεια την επόμενη σελίδα με header(location....) και όλα ήταν μια χαρά.
Τώρα στο πρόγραμμα αυτό χρησιμοποιώ ajax, php. Ο κώδικας που έχω παρακάτω τρέχει μια χαρά. Δηλαδή, δίνει ο χρήστης uername, password, γίνονται έλεγχοι, διαβάζω τον πίνακα από τη βάση μου μέσω ajax. Το πρόβλημα μου είναι είναι όταν θέλω να καλέσω την επόμενη σελίδα π.χ. main.php δεν ξέρω πως να καλέσω το header("location:main.php") αφού πρέπει να είναι σε κώδικα php. Δηλαδή σε ποιο σημείο και με ποιον τρόπο.

Αν κάποιος μπορεί να βοηθήσει. Σας ευχαριστώ πολύ.


κώδικας index.php



<html>
<head>
<title>Είσοδος</title>

<style type="text/css">
<!--
body {
background-color: #99CCCC;
}
body,td,th {
color: #336699;
font-size: 18;
}
.style5 {font-size: 24px}
.style8 {font-size: 18px; font-weight: bold;}
-->
</style>


<script language="javascript">

// εμφανίζει μηνύματα λάθους όταν το username και password είναι κενά
function data_control()
{
var contr=1;

var uname = document.getElementById("username");
var divn = document.getElementById("divname");
var passw = document.getElementById("password");
var divp = document.getElementById("divpass");
if (uname.value=="")
{
divn.innerHTML="give login";
contr=0;
}

if (passw.value=="")
{
divp.innerHTML="give password";
contr=0;
}

if (contr==0)
return;

GetHttpRequest();



}

function GetHttpRequest()
{

var XMLHttpRequestObject=false;
if (window.XMLHttpRequest)
{
XMLHttpRequestObject = new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
}

if (XMLHttpRequestObject)
{

var obj=document.getElementById("targetDiv");

XMLHttpRequestObject.open("POST", "data_users.php");


XMLHttpRequestObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

XMLHttpRequestObject.onreadystatechange = function()
{


if(XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200)
{

var rec = XMLHttpRequestObject.responseText.split(",");
var rusername=rec[0];
var rpassword=rec[1];
obj.innerHTML=rec;
if (rusername=="")
{
alert("Ο χρήστης δεν υπάρχει");
return;

}
if (rpassword != document.getElementById("password").value)
{
alert("Το password δεν είναι σωστό");
return;
}

}
}


XMLHttpRequestObject.send("username="+document.getElementById("username").value);


}

}

// βάζει κενά στα μηνύματα λάθους
function space_message()
{
var divn = document.getElementById("divname");
var divp = document.getElementById("divpass");
divn.innerHTML="";
divp.innerHTML="";
}
</script>


</head>



<body>

<p>&nbsp;</p>
<br>

<center>

<h1 align="center"><strong><font size=8><i>Self </i> </font></strong></h1>
<br>
<span class="style5"><strong>Calendar Application </strong></span><br>
<br><br><br>
<span class="style8">Please login</span> <br>

<form name="form1" method="post" action="<?php echo($_SERVER['PHP_SELF']);?>">
<table width="40%" border="0" bordercolor="#336699" bgcolor="#7DBDC8">
<tr><tr><tr height="40" >
<td align="right"><strong>Login:</strong>
<td width="30%"><input name="username" type="text" size="20" maxlength="20" onclick="space_message()">
<td width="30%"> <div id="divname" style="color:red; text-align:left" ></div>

<tr height="40" >
<td align="right"><b>Password:</b>
<td width="30%"><input name="password" id="password" type="password" size="20" maxlength="20" onclick="space_message()">
<td width="30%"> <div id="divpass" style="color:red" ></div>

<tr height="70" >
<td>
<td><input name="ulogin" type="submit" value="Login" onclick="data_control();">
<input name="sign" type="button" id="sign" value="Sign_Up">
</table>
</form>

<div id="targetDiv">
<p> The fetched message will apear here. </p>
</div>


<p><br></p>

</body>
</html>


κώδικας data_users.php:


<?php

// Σύνδεση με τον server - Επιλογή βάσης δεδομένων
$conn = mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("movieclub",$conn) or die(mysql_error());
mysql_query('set character set greek',$conn);
mysql_query("SET NAMES 'greek'",$conn);


// Βάζουμε σε μεταβλητές τις τιμές των πεδίων φόρμας
$username=$_POST["username"];

// Δημιουργία ερωτήματος σε μεταβλητή - έλεγχος αν υπάρχει ο χρήστης
$sql = "select * from users where users.username = '$username'";

// Εκτέλεση ερωτήματος
$result = mysql_query($sql);

$row=mysql_fetch_array($result);
echo $row["username"].",".$row["password"];

$_SESSION["username"]=$row["username"];

?>

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Validation form - ajax - php - header(location)

Δημοσίευση από korgr » 28 Νοέμ 2009 08:23

Απο τη στιγμη που εχεις το αποτελεσμα του login σε javascript (ajax), γιατι δεν χρησιμοποιεις στην ιδια την javascript το:

Κώδικας: Επιλογή όλων

document.location="newpage.php";

Άβαταρ μέλους
diti
Δημοσιεύσεις: 54
Εγγραφή: 09 Ιαν 2004 17:41
Τοποθεσία: ΘΕΣΣΑΛΟΝΙΚΗ
Επικοινωνία:

Validation form - ajax - php - header(location)

Δημοσίευση από diti » 28 Νοέμ 2009 11:39

Ήταν τόσο απλό. Είχα κολλήσει και σκεφτόμουν πώς θα το κάνω μέσα από την php.

Σ' ευχαριστώ πάρα πολύ.
:D

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

Validation form - ajax - php - header(location)

Δημοσίευση από dva_dev » 14 Δεκ 2011 06:24

diti έγραψε: var rec = XMLHttpRequestObject.responseText.split(",");
var rusername=rec[0];
var rpassword=rec[1];

obj.innerHTML=rec;
if (rusername=="")
{
alert("Ο χρήστης δεν υπάρχει");
return;

}
if (rpassword != document.getElementById("password").value)
{
alert("Το password δεν είναι σωστό");
return;
}
Αυτό δεν μου φαίνεται και πολύ ασφαλές για να χρησιμοποιηθεί σε κάποια ιστοσελίδα.

Απάντηση

Επιστροφή στο “JavaScript και Frameworks”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες