PHP Mehrere URL Parameter auf der Server Seite in ein PHP Array speichern

775726

Cadet 2nd Year
Registriert
Jan. 2009
Beiträge
25
Ich habe folgendes Problem ich möchte mehrere URL Parameter auf der Server Seite in ein PHP Array speichern. Die Parameter kommen auch auf der Serverseite an mein Problem ist das pushen der Parameter in die Array variable. Folgendes habe ich schon aber das tut halt nicht das was ich möchte.
Danke jetzt schonmal


PHP:
$PermissionFriends[] = $_REQUEST['PermissionFriends'];
 
Was genau geht nicht? Ist die Variable leer? Gibts Fehlermeldungen?
Wenn du weißt ob es nur GET oder POST etc sein kann würde ich das nehmen und nicht REQUEST.

Ansich spricht denke ich nichts gegen:


Code:
$param = $_REQUEST["param"];
 
http://localhost/project/Modells/se...Settings=First Name !&PermissionFriends=59,45

Das ist die URL die ich per GET aufrufe

Auf der Server Seite ist dieser PHP Code.


PHP:
$backusername = $_REQUEST['backusername'];
$currentPermissionSettings = $_REQUEST['currentPermissionSettings'];
$PermissionFriends[] = $_REQUEST['PermissionFriends'];
...


...
$anzahl = count ( $PermissionFriends );
echo "<p>Es gibt $anzahl Einträge</p>";


foreach($PermissionFriends as $ID)
	   {
		    echo "$ID\n";
			
		 
		 
		   $insert = "insert into  `sqrightsusers` (`ID`,`rightID`,`UserID`,`art`) VALUES (NULL,'" . $lastrightsID . "','" . $ID . "','r')";
		   echo  $insert;
		
		  $query = mysql_query($insert) or die ("Error: ".mysql_error()); 
		  
		  }

Jetzt noch mal zum meinem Problem:
Es darum das die zwei Parameter Werte(59,45) von der Parameter Variable PermissionFriends in eine PHP Array Variable zu speichern um dann am Ende des Skriptes per foreach schleife mehrere Datenbank inserts auszuführen.
Momentan sieht meine php echo ausgabe so aus

Es gibt 1 Einträge
59,45 insert into `sqrightsusers` (`ID`,`rightID`,`UserID`,`art`) VALUES (NULL,'450','59,45','r')


Die Ausgabe zeigt halt das mit der Initialisierung der Array variable $PermissionFriends[] etwas nicht stimmen kann.
 
Für mich siehts so aus, dass die Werte 59,45 einfach als String zusammengesetzt ankommen. Dann musst Du sie anhand des Kommas splitten. Die PHP Funktion dafür musst Du Dir selbst raussuchen, in C# wärs string.split(). Über das gesplittete Ergebnis kannst dann mit foreach drübergehen.

Hier noch ein paar Hinweise.
1. Echo Debugging ist Müll. Ich empfehle mal nen Entwicklungsumgebung mit Debuger, z.B. Ecplipcse und xDebug, wenns kostenlos sein sollen. Mit Debugger kannst Dir Deine Daten dann aufs genauste anschauen.
2. Traue niemals externen Daten. Benutzte $_GET, $_POST, regex, mysql_real_escape_string etc. um validierte und saubere Daten zu bekommen, sonst ist Deine Anwendung in 0,Nix gehackt.

Edit: Zum Splitten in PHP ist wohl explode das Stichwort.
Edit2: Achso oben steht ja auch die URL mit Parameterübergabe. Dann ist es wirklich so wie gesagt habe, nur weil nen Komma in der URL heisst es nicht, das 2 getrennte Werte ankommen...
 
Zuletzt bearbeitet:
Genau wie Drexel schreibt, wenn du wenig ändern willst nimm explode() und GET, wenn du keine COOKIES/POSTs erwartest.
Es kommt noch etwas drauf an wo "PermissionFriends" herkommt etc. du könntest das dann auch per $_SESSION machen da hast du mit dem Speichern und Weiterverwenden von Arrays gar kein Problem.

Es funktioniert im Grunde auch mit "...url...etc...&PermissionFriends[]=59&PermissionFriends[]=45"
Da sollte es dann so funktionieren, wie du das vermutlich wolltest -> PermissionFriends[0] = 59 und PermissionFriends[1] = 45
Oder mal serialize/unserialize anschauen.
Kommt halt auch drauf an wo die Werte herkommen, was da Sinn macht/sich gut umsetzen lässt.

Hauptsache du überprüfst das ganze noch.
 
Zurück
Oben