API Session ID mitsenden?

02/06/2019 16:29 Cc_Cc_Cc#1
Hi,

ich habe eine Api wo man etwas eingibt, und dann halt die Personen erscheinen mit den Buchstaben die man eingibt. Wie z.b eine Person-Suche.

Jetzt wollte ich alle Nutzer zeigen außer die man blockiert hat.

Der SQL-Code würde jetzt wie folgt aussehen:
(API.PHP):

Benutzer schreiben & api ausführen:
(Index.php)

Wie sende ich die SessionID jetzt noch mit?
02/06/2019 18:10 False#2
Mag sein das ich gerade auf dem Schlauch stehe was deine Anforderungen sind.
Wo genau willst du die Session ID (Denke du meinst $_SESSION['id'], was laut der Benamung im Sql eine User ID wäre) mitgeben ?

Im PHP hast du die Id ja eh schon, daher gehe ich mal davon aus das du die im Javascript haben willst (?).
Wenn das der Fall ist solltest du soweit eigentlich schon alles haben, da du im SQL schon die UserId mit auswählst.
Code:
`user`.`id` AS user_ident
Somit solltest du in den Funktionen formatRepo und formatRepoSelection auf die Id mit "rep.user_ident" zugreifen können (Sofern du auch alles im PHP ausgibst was du im SQL auswählst).

Zum debuggen kannst du in den Funktionen auch einfach folgendes nutzen:
Code:
console.log(repo)
02/06/2019 19:38 Cc_Cc_Cc#3
Quote:
Originally Posted by False View Post
Mag sein das ich gerade auf dem Schlauch stehe was deine Anforderungen sind.
Wo genau willst du die Session ID (Denke du meinst $_SESSION['id'], was laut der Benamung im Sql eine User ID wäre) mitgeben ?

Im PHP hast du die Id ja eh schon, daher gehe ich mal davon aus das du die im Javascript haben willst (?).
Wenn das der Fall ist solltest du soweit eigentlich schon alles haben, da du im SQL schon die UserId mit auswählst.
Code:
`user`.`id` AS user_ident
Somit solltest du in den Funktionen formatRepo und formatRepoSelection auf die Id mit "rep.user_ident" zugreifen können (Sofern du auch alles im PHP ausgibst was du im SQL auswählst).

Zum debuggen kannst du in den Funktionen auch einfach folgendes nutzen:
Code:
console.log(repo)
Hast mich richtig verstanden^^.

Ich brauch aber die UserID, welche der User grad besitzt.

User 2 ist eingeloggt. Er hat Person 3 blockiert.

Jetzt muss ich die ID 2 irgendwie zur Api senden sowie, wenn ich den z.b Nutzernamen zur Api sende:

(z.b index.php?q=Nutzername&currentID=2)

So als Beispiel, aber eventuell wenn möglich einen anderen weg Finden, da man in der URL die ID ändern könnte
02/06/2019 19:42 type.#4
Quote:
Originally Posted by Cc_Cc_Cc View Post
So als Beispiel, aber eventuell wenn möglich einen anderen weg Finden, da man in der URL die ID ändern könnte
Einfach statt einer Get- eine Postrequest senden; dann tauchen die Parameter nicht in der URL auf. c:
02/06/2019 19:50 False#5
Quote:
Originally Posted by Cc_Cc_Cc View Post
Hast mich richtig verstanden^^.

Ich brauch aber die UserID, welche der User grad besitzt.

User 2 ist eingeloggt. Er hat Person 3 blockiert.

Jetzt muss ich die ID 2 irgendwie zur Api senden sowie, wenn ich den z.b Nutzernamen zur Api sende:

(z.b index.php?q=Nutzername&currentID=2)

So als Beispiel, aber eventuell wenn möglich einen anderen weg Finden, da man in der URL die ID ändern könnte
In einem SQL oben hast du die ID doch schon aus der Session geholt.
Code:
$param = ["session_id" => "{$_SESSION['id']}", "q" => "{$q}%"];
Also musst du es im Javascript nicht übergeben, wenn ich was übersehe und du musst das dennoch machen...
Dann kannst du beim laden der Seite einfach die Id in einer Javascript Variable speichern
also z.b.
Code:
<script>
   let userId = "<?=$_SESSION['id']?>";
</script>
In deiner Javascript Datei kannst du dann ganz normal auf dei Variable zugreifen, kannst es also z.B. so mit an die Api senden.
Code:
data: function (params) {
      return {
        q: params.term, // search term
        currentID: userId 
      };
    },
02/06/2019 20:01 elmarcia#6
Quote:
Originally Posted by Cc_Cc_Cc View Post
Hi,

ich habe eine Api wo man etwas eingibt, und dann halt die Personen erscheinen mit den Buchstaben die man eingibt. Wie z.b eine Person-Suche.

Jetzt wollte ich alle Nutzer zeigen außer die man blockiert hat.

Der SQL-Code würde jetzt wie folgt aussehen:
(API.PHP):

Benutzer schreiben & api ausführen:
(Index.php)

Wie sende ich die SessionID jetzt noch mit?
If u want your sessionID, u need to send the cookie to the server when sending the request
Code:
ajax: {
    url: "pages/person_api.php",
    dataType: 'json',
    delay: 250,
    data: function (params) {
      return {
        q: params.term, // search term
      },
//send cookie
     xhrFields: {
      withCredentials: true
   }
    }
02/06/2019 20:18 False#7
Quote:
Originally Posted by elmarcia View Post
If u want your sessionID, u need to send the cookie to the server when sending the request
Code:
ajax: {
    url: "pages/person_api.php",
    dataType: 'json',
    delay: 250,
    data: function (params) {
      return {
        q: params.term, // search term
      },
//send cookie
     xhrFields: {
      withCredentials: true
   }
    }
WithCredentials is only nessesary for cross-site requests, but the url is a relative path (same domain).