Προς το περιεχόμενο

ajax αποστολη σε PHP και επιστροφη στην ajax...


chrism4111

Προτεινόμενες αναρτήσεις

Δημοσ.

Συγγνωμη για τον τιτλο αλλα δεν μπορουσα να σκεφτω πως να περιγραψω αυτο που θέλω..

 

Εχω λοιπον μια συναρτηση Javascript (ajax) ας πουμε την παρακάτω...

 

>
function Login(username,password)
       {
       var xmlhttp;
       if (window.XMLHttpRequest)
         {// code for IE7+, Firefox, Chrome, Opera, Safari
         xmlhttp=new XMLHttpRequest();
         }
       else
         {// code for IE6, IE5
         xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
         }
       xmlhttp.onreadystatechange=function()
         {
         if (xmlhttp.readyState==4 && xmlhttp.status==200)
           {
           document.getElementById("LoginResult").innerHTML=xmlhttp.responseText;
           }
         }
       xmlhttp.open("GET","include/loginRun.php?username="+username+"&password="+password,false);
       xmlhttp.send();
       }

 

Οπως φαινετε αυτη η συναρτηση στέλνει κάποια δεδομενα σε ενα PHP script..

ας πουμε το σκριπτ ειναι το παρακάτω ..

 

>
<?php 
if($_GET['username'] == "chrism4111")
{
 echo 'true';
}
else
{
  echo 'false';
}
?>

 

Τωρα εγω εχω και μια δευτερη συναρτηση javascript (jQuery) την οποία θέλω και αυτην να την τρέξω ασυγχρονα μονο και μονο αν αυτο που εκτυπωνει το PHP scrpt ειναι true

 

Πως μπορώ να πετύχω κατι τέτοιο;;....

Δημοσ.

Καταρχήν, πέτα αυτόν τον κώδικα που έχεις μέσα στη Login() και χρησιμοποίησε κάποια από τις jQuery AJAX functions όπως την get, η οποία μου φαίνεται και η πιο κατάλληλη γι' αυτό που κάνεις. Υπάρχουν πολλά πλεονεκτήματα και κανένα μειονέκτημα έναντι του κώδικα που έχεις τώρα δεδομένου ότι ήδη χρησιμοποιείς jQuery (π.χ. ο κώδικας που έχεις τώρα δε θα κάνει απολύτως τίποτα αν για οποιοδήποτε λόγο το request δεν πετύχει, ενώ με jQuery μπορείς να το ρυθμίσεις όπως θες).

 

Στη συνέχεια πρέπει να κανονίσεις (κι αν δεν πρέπει αυτή τη στιγμή θα σου χρειαστεί σχεδόν σίγουρα λίγο παρακάτω οπότε κάντο από τώρα) να "επιστρέφεις" από το PHP script σου παραπάνω από μία τιμές. Ο ευκολότερος τρόπος να γίνει αυτό είναι να επιστρέφεις JSON δεδομένα, το οποίο γίνεται ως εξής:

 

PHP:

><?php 
$results = array();

$results['userIsChris'] = $_GET['username'] == "chrism4111"; // true/false
$results['moreData'] = '<div>Hello world!</div>';

// Μπορείς να προσθέσεις κι άλλα πράγματα στο $results εδώ

header('Content-Type: application/json'); // Επιστρέφουμε JSON
echo json_encode($results);
die;

 

Προσοχή, τα δεδομένα που περνάς στην json_encode πρέπει να είναι encoded σε UTF-8.

 

Οπότε μετά έχεις στη Javascript:

 

>
function Login(username, password) {
   // Αυτή εδώ είναι η function που καλείται όταν επιστραφούν τα
   // δεδομένα από την PHP. Όπως βλέπεις έχεις όλες τις τιμές που
   // έβαλες στον PHP array διαθέσιμες σε ένα Javascript object,
   // που έχει properties με τα ίδια ακριβώς ονόματα. Μπορείς εδώ
   // να κάνεις ό,τι θέλεις με όσες από τις τιμές θέλεις, πχ:
   var responseHandler = function(result) {
       if(result.userIsChris) {
           alert("User is chris!");
           // Τρέξε την άλλη JS function που έχεις εδώ
       }

       $("#LoginResult").html(result.moreData);
   };

   // Και ο κώδικας που κάνει το AJAX call:
   $.get("include/loginRun.php", {username: username, password: password}, responseHandler);
}

Δημοσ.

 

Καταρχήν, πέτα αυτόν τον κώδικα που έχεις μέσα στη Login() και χρησιμοποίησε κάποια από τις jQuery AJAX functions όπως την get, η οποία μου φαίνεται και η πιο κατάλληλη γι' αυτό που κάνεις. Υπάρχουν πολλά πλεονεκτήματα και κανένα μειονέκτημα έναντι του κώδικα που έχεις τώρα δεδομένου ότι ήδη χρησιμοποιείς jQuery (π.χ. ο κώδικας που έχεις τώρα δε θα κάνει απολύτως τίποτα αν για οποιοδήποτε λόγο το request δεν πετύχει, ενώ με jQuery μπορείς να το ρυθμίσεις όπως θες).

 

Στη συνέχεια πρέπει να κανονίσεις (κι αν δεν πρέπει αυτή τη στιγμή θα σου χρειαστεί σχεδόν σίγουρα λίγο παρακάτω οπότε κάντο από τώρα) να "επιστρέφεις" από το PHP script σου παραπάνω από μία τιμές. Ο ευκολότερος τρόπος να γίνει αυτό είναι να επιστρέφεις JSON δεδομένα, το οποίο γίνεται ως εξής:

 

PHP:

><?php 
$results = array();

$results['userIsChris'] = $_GET['username'] == "chrism4111"; // true/false
$results['moreData'] = '<div>Hello world!</div>';

// Μπορείς να προσθέσεις κι άλλα πράγματα στο $results εδώ

header('Content-Type: application/json'); // Επιστρέφουμε JSON
echo json_encode($results);
die;

 

Προσοχή, τα δεδομένα που περνάς στην json_encode πρέπει να είναι encoded σε UTF-8.

 

Οπότε μετά έχεις στη Javascript:

 

>
function Login(username, password) {
   // Αυτή εδώ είναι η function που καλείται όταν επιστραφούν τα
   // δεδομένα από την PHP. Όπως βλέπεις έχεις όλες τις τιμές που
   // έβαλες στον PHP array διαθέσιμες σε ένα Javascript object,
   // που έχει properties με τα ίδια ακριβώς ονόματα. Μπορείς εδώ
   // να κάνεις ό,τι θέλεις με όσες από τις τιμές θέλεις, πχ:
   var responseHandler = function(result) {
       if(result.userIsChris) {
           alert("User is chris!");
           // Τρέξε την άλλη JS function που έχεις εδώ
       }

       $("#LoginResult").html(result.moreData);
   };

   // Και ο κώδικας που κάνει το AJAX call:
   $.get("include/loginRun.php", {username: username, password: password}, responseHandler);
}

 

 

 

 

Δεν έχω ασχοληθει με JSON και Jquery.Ajax ακόμα.... μάλλον ήρθε ο καιρος για να το κάνω...

Σας ευχαριστώ παιδια για τις απαντήσεις............

Δημοσ.

>
function Login(username,password)
       {
       var xmlhttp;
       if (window.XMLHttpRequest)
         {// code for IE7+, Firefox, Chrome, Opera, Safari
         xmlhttp=new XMLHttpRequest();
         }
       else
         {// code for IE6, IE5
         xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
         }
       xmlhttp.onreadystatechange=function()
         {
         if (xmlhttp.readyState==4 && xmlhttp.status==200)
          {
             document.getElementById("LoginResult").innerHTML=xmlhttp.responseText;
             if (xmlhttp.responseText == "true")
             {
                 yourfunction(); 
             }
          }
          else
          {
             <!-- Πρόβλημα στο GET -->
          }
         }
       xmlhttp.open("GET","include/loginRun.php?username="+username+"&password="+password,false);
       xmlhttp.send();
       }

 

Και σε πρίπτωση που θες να γεμίσεις όχι 1 div αλλά 10 μία μεθοδολογία είναι στην php που καλείς να χωρίσεις τα αποτελέσματα που θες με ένα διαχωριστικό π.χ. echo "!#!".

 

Επομένως μετά γράφεις

>
var mydata = xmlhttp.responseText.split("!#!");
document.getElementById("div0").innerHTML = mydata[0];
document.getElementById("div1").innerHTML = mydata[1];
document.getElementById("div2").innerHTML = mydata[2];

 

Τέλος, επειδή δεν έχει ρυθμίσει κάτι δεν σημαίνει ότι δεν το κάνει...

Δημοσ.

>
if (xmlhttp.readyState==4 && xmlhttp.status==200)
          {
             document.getElementById("LoginResult").innerHTML=xmlhttp.responseText;
             if (xmlhttp.responseText == "true")
             {
                 yourfunction(); 
             }
          }
          else
          {
             <!-- Πρόβλημα στο GET -->
          }

 

Γι' αυτόν ακριβώς το λόγο πρότεινα jQuery αντί για customιες: ο κώδικας που έχεις είναι λάθος (συγκεκριμένα, το branch "πρόβλημα στο GET" θα κάνει fire τουλάχιστον 3 φορές για κάθε επιτυχημένο request και πιθανόν πάνω από μία ακόμα και στα αποτυχημένα requests όπου όντως υπήρξε πρόβλημα). Επίσης, εξακολουθεί να παραμένει το προϋπάρχον bug πως αν επιστραφεί οποιοδήποτε HTTP response code εκτός από 200 (πράγμα που στην προκειμένη περίπτωση δε θα συμβεί βέβαια) ο κώδικας δε θα κάνει τίποτα.

 

Δε νομίζω ότι χρειάζεται να πούμε περισσότερα επί τούτου: αν ο κώδικάς σου είναι χειρότερος από το jQuery δεν πρέπει να τον χρησιμοποιείς. Αν είναι ισάξιος δε χρειάζεται να κάνεις τον κόπο να τον γράψεις. Κι αν είναι καλύτερος είσαι σε λάθος forum.

 

Και σε πρίπτωση που θες να γεμίσεις όχι 1 div αλλά 10 μία μεθοδολογία είναι στην php που καλείς να χωρίσεις τα αποτελέσματα που θες με ένα διαχωριστικό π.χ. echo "!#!".

 

Μέχρι την ημέρα που θα βρεις το διαχωριστικό μέσα στο κείμενο που επιστρέφεις και θα χαλάσει το γλυκό. Καταλαβαίνω πως η συγκεκριμένη λύση είναι μια απλή και πρακτική προσέγγιση. Αυτό που δεν καταλαβαίνω είναι γιατί να την προτείνει κανείς όταν ήδη έχουν πέσει στο τραπέζι πιο "σωστές" επιλογές.

Δημοσ.

Συμφωνώ μαζί σου εν μέρει..

 

Υπάρχουν διάφοροι τρόποι για να κάνεις ajax.

Απλώς εγώ πρότεινα στον φίλο μας τι μπορεί να κάνει σε αυτό που έχει γράψει.

Επίσης δεν καταλαβαίνω γιατί κάνοντας ajax με jquery είναι καλύτερο από αυτό που έγραψε ο φίλος μας;

 

Και οι customies υπάρχουν παντού, Εάν σου γυρίσει ΚΑΠΟΙΟ error, μπορείς να γράψεις τι θα κάνεις όπως θα έκανες και με jquery.

 

Όσον αφορά αυτό που είπα για το διαχωριστικό είναι αντί να κάνεις 2 ajax για να γεμίσεις 2 div, μπορείς να κάνεις 1 ajax και απλώς τα αποτελέσματα θα τα ξεχωρίσεις με κάτι για ευκολία δικιά σου.

 

Στην jquery πως θα το έκανες αυτό;

Προφανώς ότι μπορείς να κάνεις με την jquery μπορείς να κάνεις και με ajax που είχε γράψει στην αρχή ο φίλος.

 

Τέλος, για κάθε ένα πρόβλημα υπάρχουν πολλοί τρόποι επίλυσής τους. Δεν σημαίνει ότι δεν θα λέμε τις γνώμες μας και το εάν θα ποστάρουμε ή όχι ή εάν παρακολουθούμε αυτό το φόρουμ.

Χαλάρωσε φίλε...

Για εσένα είναι αυτός ο καλύτερος τρόπος, για άλλον είναι κάποιος άλλος

Δημοσ.

Λοίπον παίδια το εκανα και με τους δυο τρόπους....Αυτο που παρατηρησα ειναι οτι και οι δυο τρόποι έχουν τα καλα τους και τα κακα τους..

 

Ας τα πάρω απο την αρχη ο τροπος με τον οποίο ξεκινησα το θέμα είναι κατα πολυ πιο γρήγορος απο την jquery.ajax...

Αλλα για να κάνω echo απο php κάποιο αποτελεσμα με html κωδικα θα πρεπει να γραφτεί jquery με την συναρτηση live() απαραιτητα... γιατι αλλιως δεν βλέπει τον κώδικα που προσθέτω μετα το κάλεσμα της ajax... Βεβαια ο πρωτος τρόπος μου είναι πιο κατανοητος και γιατι όλα ειναι σε μια σειρα...

 

Τωρα στην jquery.ajax που ανταποκρίνετε με μια καθυστερηση και δεν μπορω να κατλάβω που αφείλετε αυτο...εχω να πω ενα καλο και ενα κακο... Το καλό είναι οτι σε καθε αποτελεσμα που θα επιστρέφεις η jquery βλέπει τα πάντα χωρίς την live(). To κακό ειναι οτι μπαινουν

πολλα ajax καλεσματα μεσα στις συναρτησεις και μετα η μπάλα χάνετε...

 

Η απόφαση πάρθηκε πάντως. Θα το αφησω με jquery.ajax και ας έιναι λιγο πιο αργο :)...

 

ααααα Αλλη μια διαφορα ειναι οτι εγραψα λιγότερο κωδικα με jquery....

Δημοσ.

Ας τα πάρω απο την αρχη ο τροπος με τον οποίο ξεκινησα το θέμα είναι κατα πολυ πιο γρήγορος απο την jquery.ajax...

Αλλα για να κάνω echo απο php κάποιο αποτελεσμα με html κωδικα θα πρεπει να γραφτεί jquery με την συναρτηση live() απαραιτητα... γιατι αλλιως δεν βλέπει τον κώδικα που προσθέτω μετα το κάλεσμα της ajax... Βεβαια ο πρωτος τρόπος μου είναι πιο κατανοητος και γιατι όλα ειναι σε μια σειρα...

 

Νομίζω πως κάτι άλλο συμβαίνει που καταλήγει σε διαφορετικές ταχύτητες. Σε οποιοδήποτε σημερινό υπολογιστή με σημερινό browser δεν υπάρχει περίπτωση να δεις διαφορά στην ταχύτητα σε κάτι τόσο απλό.

 

Επίσης, μη ξεχνάς ότι δεν είναι εντελώς απαραίτητο να χρησιμοποιήσεις την live(). Αν το θεωρείς σκόπιμο μπορείς μαζί με την HTML που θα γυρίσεις να συμπεριλάβεις και <script> tags τα οποία θα καλούν jQuery για να βάλουν event handlers στα elements που έρχονται "στο ίδιο πακέτο". Δεν είναι απαραίτητο να το κάνεις στην "αρχική" σου HTML με live() -- αν και σε αρκετές περιπτώσεις μπορεί αυτή η λύση να είναι όντως βολικότερη. Έχω γράψει μια web εφαρμογή στην οποία χρησιμοποιώ και τις 2 τεχνικές σε διαφορετικές περιπτώσεις.

Δημοσ.

Νομίζω πως κάτι άλλο συμβαίνει που καταλήγει σε διαφορετικές ταχύτητες. Σε οποιοδήποτε σημερινό υπολογιστή με σημερινό browser δεν υπάρχει περίπτωση να δεις διαφορά στην ταχύτητα σε κάτι τόσο απλό.

 

Επίσης, μη ξεχνάς ότι δεν είναι εντελώς απαραίτητο να χρησιμοποιήσεις την live(). Αν το θεωρείς σκόπιμο μπορείς μαζί με την HTML που θα γυρίσεις να συμπεριλάβεις και <script> tags τα οποία θα καλούν jQuery για να βάλουν event handlers στα elements που έρχονται "στο ίδιο πακέτο". Δεν είναι απαραίτητο να το κάνεις στην "αρχική" σου HTML με live() -- αν και σε αρκετές περιπτώσεις μπορεί αυτή η λύση να είναι όντως βολικότερη. Έχω γράψει μια web εφαρμογή στην οποία χρησιμοποιώ και τις 2 τεχνικές σε διαφορετικές περιπτώσεις.

 

Ναι όντως μπορείς να επιστρέφεις τα σκριπτ στο πακέτο... Αλλά τωρα να γράφείς Javascript μεσα σε print και echo είναι λίγο τυρανία (οπως είπες δεν ειναι βολικο και οχι μόνο επειδη βαριέμαι αλλα περισσοτερο για σωστη διατυπωση και μελλοντική επεξεργασια)...

 

Κατι αλλο τωρα...

Οπως καταλαβες το script που μου εφτιαξες και του προσθεσα ακομα καμποσες γραμμες ουσιαστηκά κάνει το Login ενος χρήστη....

θα εχω ασφαλεία αν χρησιμοποιησω την referrer, για να μην τρέχει, (το php script που κανει ερωτημα στην βάση δεδομένων και μετα αφου ελέγχει τα στοιχεια κανει αποθήκευση ενα SESSION), κάποιος ο οποιος θα μπει στο firebug και θα δει που γίνετε response και κανει οτιδηποτε σε αυτον τον συνδεσμο;

Δημοσ.

Ναι όντως μπορείς να επιστρέφεις τα σκριπτ στο πακέτο... Αλλά τωρα να γράφείς Javascript μεσα σε print και echo είναι λίγο τυρανία (οπως είπες δεν ειναι βολικο και οχι μόνο επειδη βαριέμαι αλλα περισσοτερο για σωστη διατυπωση και μελλοντική επεξεργασια)...

 

Κατι αλλο τωρα...

Οπως καταλαβες το script που μου εφτιαξες και του προσθεσα ακομα καμποσες γραμμες ουσιαστηκά κάνει το Login ενος χρήστη....

θα εχω ασφαλεία αν χρησιμοποιησω την referrer, για να μην τρέχει, (το php script που κανει ερωτημα στην βάση δεδομένων και μετα αφου ελέγχει τα στοιχεια κανει αποθήκευση ενα SESSION), κάποιος ο οποιος θα μπει στο firebug και θα δει που γίνετε response και κανει οτιδηποτε σε αυτον τον συνδεσμο;

 

Σε web εφαρμογή δε μπορείς να έχεις ασφάλεια κατ' αυτή την έννοια. Κανείς δεν εμποδίζει όποιον θέλει να χρησιμοποιήσει την εφαρμογή σου κανονικά και με το νόμο, να δει με οποιοδήποτε σχετικό tool ακριβώς πώς είναι τα HTTP requests/responses που γίνονται και κατ' επέκταση να κάνει πλήρες reverse engineer του οποιουδήποτε συστήματος βάλεις. Επομένως από άποψη ασφαλείας δεν κερδίζεις κάτι. Επίσης αν αρχίσεις να απαιτείς συγκεκριμένους HTTP headers (όπως ο referer) τότε μπορεί να αρχίσεις να δημιουργείς προβλήματα σε "έντιμους" χρήστες οι οποίο χρησιμοποιούν κάποιου είδους internet security λογισμικό που αφαιρεί αυτούς τους headers.

 

Γενικά στις web εφαρμογές πρέπει πάντα να υποθέτεις πως ο οποιοσδήποτε attacker μπορεί να σου στείλει οποιοδήποτε HTTP request φτιαγμένο όπως θέλει. Η ασφάλειά σου (στην PHP πλευρά) θα πρέπει να είναι ικανή να τα βγάλει πέρα με οποιοδήποτε υποθετικό σενάριο.

Δημοσ.

Όπως λέει και ο defacer είναι δύσκολο να κατάλαβες διαφορά ταχύτητας σε κάτι τόσο απλό.

 

Και να σημειώσω κάτι τελευταίο. Ο σωστός κώδικας για να χρησιμοποιήσεις ajax(χωρίς jQuery) είναι ο εξής:

 

Δημιουργείς στο .js την παρακάτω function

>
function GetXmlHttpObject()
{
var xmlHttp=null;
try
	{
		// Firefox, Opera 8.0+, Safari
		xmlHttp=new XMLHttpRequest();
	}
catch (e)
	{
		//Internet Explorer
	try
	{
		xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
	}
	catch (e)
	{
		xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
	}
}
return xmlHttp;
}

 

Μετά για κάθε ajax που θες να κάνεις γράφεις:

>
function myfunction1(myvra1, myvar2)
{	
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
	{
	 alert ("Browser does not support HTTP Request")
		return
	}

xmlHttp.open("POST", "myphp1.php", true);
   xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;  charset=UTF-8');
   xmlHttp.send("myvra1="+myvra1+"&myvar2="+myvar2);
   xmlHttp.onreadystatechange = function () {
	
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
 	{
		var data = xmlHttp.responseText;
		document.getElementById("myid1").innerHTML = data;
	}
}
}

function myfunction2(myvra1, myvar2, myvar3, myvar4)
{	
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
	{
	 alert ("Browser does not support HTTP Request")
		return
	}

xmlHttp.open("POST", "myphp2.php", true);
   xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;  charset=UTF-8');
   xmlHttp.send("myvra1="+myvra1+"&myvar2="+myvar2+"&myvar3="+myvar3+"&myvar4="+myvar4);
   xmlHttp.onreadystatechange = function () {
	
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
 	{
		var data = xmlHttp.responseText;
		document.getElementById("myid2").innerHTML = data;
	}
}
}

 

Σε κάθε function μου καλώ την xmlHttp=GetXmlHttpObject(), για να μην γράφω κάθε φορά τον ίδιο κώδικα.

Χρησιμοποιώ POST και όχι GET.

Και πως γεμίζω με ένα κάλεσμα AJAX πολλά διαφορετικά div το έχω αναφέρει σε προηγούμενο ποστ μου.

 

Το θέμα είναι ότι κατάφερες αυτό που ήθελες ;)

Δημοσ.

Άκυρο το θέμα τις ταχύτητας...

Οφειλόταν σε ένα μια συνθήκη if που είχα βάλει αρά τωρα μου τρέχει πολυ καλυτερα και πιο γρήγορα...

 

Απο Uberalles_gr:

>Το θέμα είναι ότι κατάφερες αυτό που ήθελες

 

Και είμαι πολύ ικανοποιημένος με το αποτέλεσμα

 

Το μόνο που μένει ειναι να ασφαλήσω των κωδικα απο διάφορες επιθέσεις ... Είχα σκεφτεί με ΗΤΤP_REFERRER αλλά έχει μειονεκτηματα...

 

θα κάνω τον παλιό τροπο που ακολουθουσα με real_escape_string για την ωρα:

 

$myusername = stripslashes($myusername);

$mypassword = stripslashes($mypassword);

$myusername = mysql_real_escape_string($myusername);

$mypassword = mysql_real_escape_string($mypassword);

Δημοσ.

θα κάνω τον παλιό τροπο που ακολουθουσα με real_escape_string για την ωρα:

 

$myusername = stripslashes($myusername);

$mypassword = stripslashes($mypassword);

$myusername = mysql_real_escape_string($myusername);

$mypassword = mysql_real_escape_string($mypassword);

 

Αυτά τα stripslashes τι σκοπό εξυπηρετούν; (έτσι όπως είναι ο κώδικας είναι λάθος).

 

Πιθανώς να ήθελες να γράψεις κάτι τέτοιο:

 

><?php
function stripslashes_safe($string) {
   return get_magic_quotes_gpc() ? stripslashes($string) : $string;
}

$myusername = stripslashes_safe($myusername);
$mypassword = stripslashes_safe($mypassword);

// και τα υπόλοιπα όπως τα έχεις

 

Για την ασφάλεια: πρέπει να έχεις υπόψη ότι άλλο πράγμα η ασφάλεια ως προστασία της εφαρμογής σου από κακόβουλα δεδομένα (αυτό που κάνεις με τη mysql_real_escape_string δηλαδή) και άλλο η ασφάλεια της εφαρμογής σου ως εφαρμογή κάποιων κανόνων πρόσβασης (π.χ. δεν επιτρέπουμε να κάνεις edit αν δεν είσαι logged in). Για το πρώτο υπάρχει τυφλοσούρτης, για το δεύτερο όμως χρειάζεται καθαρή σκέψη και προσοχή.

Δημοσ.

Ναι οντως μου εφυγε μια if ....

 

function stripslashes_safe($string)

{

if(get_magic_quotes_gpc())

{

$string = stripslashes($string);

}

else

{

$string = $string;

}

return $string;

}

 

με αυτήν εχω διαβάσει οτι αποφεύγουμε τα sql injection ;

 

Βλέπω χρησιμοποιεις τον ternary operator το κάνεις απλα για να γλυτωνείς τις if και τις else ή εξευπηρετεί κάπου αλλου ?

Δεν θα έλεγα οτι είμαι εντελώς noob αλλα θα έλεγα οτι είμαι ενα στάδιο μετα απο αυτο. Απλα μελετάω εδω και 1,5 χρόνο την PHP και τωρα θάλω να χωθω λγιο πιο βαθια ..... :)

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...