PHP: Skicka vidare parametrar till annan fil.

Trädvy Permalänk
Medlem
Plats
Helsingborg
Registrerad
Sep 2002

PHP: Skicka vidare parametrar till annan fil.

Jag har ett litet skript där man skickar in lite parametrar via GET. Samtidigt så har jag vissa en del parametrar som är unik för varje fil.

Ex:

user1.php $params = array(); $params["userName"] = "user1"; $params["passWord"] = ""; if(empty($_GET["value1"])){ $params["value1"] = "default"; } else { $params["values1"] = $_GET["value1"]; } Massa annan kod som är samma för alla user2.php $params = array(); $params["userName"] = "user2"; $params["passWord"] = ""; if(empty($_GET["value1"])){ $params["value1"] = "default"; } else { $params["values1"] = $_GET["value1"]; } Massa annan kod som är samma för alla

Jag skulle vilja göra om det typ så här:

main.php if(empty($_GET["value1"])){ $params["value1"] = "default"; } else { $params["values1"] = $_GET["value1"]; } Massa annan kod som är samma för alla user1.php: $params["userName"] = "user1"; $params["passWord"] = "pass1"; Kör main.php och skicka in $_GET user2.php: $params["userName"] = "user2"; $params["passWord"] = "pass2"; Kör main.php och skicka in $_GET

Så frågan är, vad är den korrekta PHP-syntaxen för att göra det som jag vill?

Dator: i7-3770, MSI Gaming GTX 970, 16GB RAM, Win10 och Debian
Server: Intel NUC i5-4250U, 16GB RAM, Debian

Trädvy Permalänk
Medlem
Plats
stockholm
Registrerad
Okt 2007

Är ingen hejare på php, men $_GET är väl variabeln som hämtar värde från webbadressen? Det borde ju bara vara att redirecta till main.php?value=värdet . Eller har jag helt fel?

Trädvy Permalänk
Medlem
Plats
Helsingborg
Registrerad
Sep 2002
Citat:

Ursprungligen inskrivet av ulf5
Är ingen hejare på php, men $_GET är väl variabeln som hämtar värde från webbadressen? Det borde ju bara vara att redirecta till main.php?value=värdet . Eller har jag helt fel?

Jo, precis $_GET är variabler från webbadressen, i samband med att man gör en HTTP GET.
Det borde ju vara något sånt enkelt men jag vill inte sitta och skriva in alla parametrarna manuellt i alla filer :/

Dator: i7-3770, MSI Gaming GTX 970, 16GB RAM, Win10 och Debian
Server: Intel NUC i5-4250U, 16GB RAM, Debian

Trädvy Permalänk
Medlem
Plats
Borlänge
Registrerad
Mar 2005

Inkludera main.php (men kalla den något annat) i user1.php och user2.php så slipper du anropa ett annat script.

Bra, snabbt, billigt; välj två.

Ljud
PC → ODAC → Objective2 → Sennheiser HD650/Ultrasone PRO 900
Portabelt → Sennheiser Momentum/Sennheiser Urbanite XL/Sennheiser Momentum In-Ear

Trädvy Permalänk
Medlem
Plats
i din garderob
Registrerad
Sep 2007

eller så gör du en if-sats i main.php och inkluderar antingen user1 eller user2. require kanske är mer korrekt..

Bilanaloger är som Volvo — varenda svenne kör med dem

Trädvy Permalänk
Medlem
Plats
Sundsvall
Registrerad
Jul 2003

Jag förstår inte riktigt vad du vill uppnå

men du skulle ju kunna använda en till get för usern?

typ så här i mainen

main.php
if(empty($_GET["value1"]) and empty($_GET['user']){
$params["value1"] = "default";
} else {
$params["values1"] = $_GET["value1"];

switch($_GET['user']) //så här skulle du kunna göra
{
case '1': //första användaren
$params["userName"] = "user1";
$params["passWord"] = "";
break;
case '2':
$params["userName"] = "user2";
$params["passWord"] = "";
break;
}

$params["userName"] = "user".$_GET['user']; //eller så gör du såhär

}
Massa annan kod som är samma för alla och sedan skiter du i user1.php och user2.php

mvh
sebbe

Trädvy Permalänk
Medlem
Plats
Helsingborg
Registrerad
Sep 2002
Citat:

Ursprungligen inskrivet av sebbe2
Jag förstår inte riktigt vad du vill uppnå

men du skulle ju kunna använda en till get för usern?

typ så här i mainen

main.php
if(empty($_GET["value1"]) and empty($_GET['user']){
$params["value1"] = "default";
} else {
$params["values1"] = $_GET["value1"];

switch($_GET['user']) //så här skulle du kunna göra
{
case '1': //första användaren
$params["userName"] = "user1";
$params["passWord"] = "";
break;
case '2':
$params["userName"] = "user2";
$params["passWord"] = "";
break;
}

$params["userName"] = "user".$_GET['user']; //eller så gör du såhär

}
Massa annan kod som är samma för alla och sedan skiter du i user1.php och user2.php

mvh
sebbe

Grejen är att jag inte har två users utan åtta i dagsläget. De ska inte hantera sina användaruppgifter utan bara ha egna sidor som de kan köra mot.

Jag har inte hunnit testa de andra lösningarna ännu.

Dator: i7-3770, MSI Gaming GTX 970, 16GB RAM, Win10 och Debian
Server: Intel NUC i5-4250U, 16GB RAM, Debian

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Jan 2004

Om du absolut måste köra userX.php så kan du ju köra rewrite så att alla anrop går via ett enda script. Om du fortfarande inte inser varför ska du nog langa iväg en 50:- till någon som kan koda åt dig.

Trädvy Permalänk
Medlem
Plats
Sundsvall
Registrerad
Jul 2003

okej? så de ska ha egna sidor men de ska inte vara skyddade på något sätt?

Du kan lägga till ett case för varje user om du vill, detta är dock inte världens snyggaste sätt att lösa saker på men eftersom jag fortfarande inte fattar exakt vad du vill så spinner jag vidare på det du har gjort.

Om du vill kan vi säkert komma överens om något bra pris så kan jag koda det åt dig så fakturerar jag dig sedan..

mvh
sebastian

Trädvy Permalänk
Medlem
Plats
Sthlm
Registrerad
Okt 2003

Det är ett inloggningssystem "of sorts" eller? Där olika användare har access till olika sidor eller dylikt?

user1.php och user2.php är helt öppna för utomstående att köra, de behöver inte logga in ens engång, allt är ju hard-coded i dessa filer.

Skapa ett formulär med användarnamn och lösenord som du "post:ar", därefter binder du user input till två variabler. Kolla att

1) Användaren angett användarnamn och lösenord
2) Begränsa längden till max 15 tecken för att minska risken för fula injections
3) "Tvätta" variablerna med preg_replace, str_replace för att minska risken för fula injections och kör även mysql_real_escape_string.

verifiera sedan användarnamn och lösenord mot dina användardata som antingen är

1) hardcoded (angivna i PHP filen)
2) lagrade i en flat file aschii fil (fattigmans databas - ifall du inte har en databas)
3) hämtade från databas, ex MySQL.

Starta en session ifall uppgifterna stämmer, annars slänger du dem tillbaka till inloggningssidan med felmeddelandet att att antingen användarnamn eller lösenord är felaktigt (ange aldrig exakt vad som är fel - inge ingen förhoppning om att det hela är en enkel gissningslek).

På varje enskild .PHP sida stoppar du med session och dubbelkollar så att den som försöker acess:a sidan verkligen är inloggad, annars sparkar du ut dem till inloggingsformuläret bums. Detta så att alla sidor mm är skyddade för intrång.

I databas osv för användare mm kan du ju ha fält för rättigheter, accessnivå och mycket annat som du kan hämta hem vid verifieringen av användaren. Det gör att du kan anpassa sidorna utefter vilken accessnivå en användare har och mycket annat.

...

Här är en enkel guide om du kör mot MySQL

http://www.phpportalen.net/wiki/index.php?page=Enkel+Inloggni...

www.faihido.com - Musikgrupp jag grundat med min bror
www.mathiaskholm.se - Personlig hemsida
www.faihidoadministration.se - Administrativa vårdtjänster på distans
www.medicinsksekreterare.se - Samlad information för vårdadministratörer/medicinska sekreterare