Kjapp og trygg hosting for Wordpress

Problemer med $_GET for å hente brukernavn i SESSION

KFlash32

Medlem
Hei

Noen som har noen gode ideer her? Holder på å bli gal.

Jeg lager en nettside med brukerprofiler, for å hente sidene bruker jeg en funksjon som en kompis utviklet før han døde. Denne er slik:

/**
* This method gets the area the user requested::
*/
public function getUserView($location=0,$username=NULL)
{
$location = strtolower(strip_tags($location));
if($username == true)
{
switch($location)
{
case 'profile':
include './profile.php';

OSV OSV.

For å hente en nettside, skriver en da "<a href="?locale=home""


PROBLEMET ER!!!

Hvordan benytte denne funksjonen slik at jeg kan bruke $_GET for å hente username istede for ID fra databasen, for så å se på en annen brukers profil?

Jeg har prøvd alle mulige vinklinger, men må snart gi tapt.

$location = $System->getUserView(@$_GET['location'],@$_SESSION['member_username']);

Er nærmeste jeg kommer - her er da System navnet på class hvor funksjonen ligger.

MEN fra dette steget, hvordan i alle dager få vist en brukers profil???

Enda værre. Hvis jeg skal lage en søkefunksjon og få listet opp brukerne - noe jeg da har gjort - så kan jeg heller ikke her komme inn på andre profiler - IKKE EN GANG MIN EGEN!!

En løsning på dette hadde vært fint!!!

Kan sikkert betale noen kroner også hvis det skulle vise seg at det er en avansert løsning.
 

Pong

Jeg selger sʇɥƃıluʍop :)
Jeg forstår ikke helt problemet... Er det noe som dette du vil ha?
$location = $System->getUserView(@$_GET['location'],@$_GET['ID']);

Prøv å ikke løse for mange problem samtidig. Det gjør det vanskeligere å beskrive (og forstå).
 

KFlash32

Medlem
Jeg forstår ikke helt problemet... Er det noe som dette du vil ha?
$location = $System->getUserView(@$_GET['location'],@$_GET['ID']);

Prøv å ikke løse for mange problem samtidig. Det gjør det vanskeligere å beskrive (og forstå).

Nei, det som jeg skrev bak $location er korrekt, men jeg får ikke til å ta steget derfra - altså fra
$location til å vise en profil basert på "Username"

Som jeg skrev, for å vise min egen profil, skriver jeg:

<a href="?location=profile" /a>

og den vises

MEN så problemet. Basert på dette, hvordan få vist en annens profil?

har prøvd følgende kommandoer

URL: < location>
Header < location>

Siste jeg prøvde var nå dette:

<a href="?$location = $System->getUserView(@$_GET['location'],@$_GET['ID']); /a>

og

<a href="?location" /a>

MEN ingenting av dette gjør at brukers profil blir synlig.

I fleste tilfeller, ender jeg opp med en merkelig adresse i nettleseren, eller en blank side osv.

Håper jeg forklarte dette godt nok.

Prøver bare å få vist en annen brukers profil
 

Pong

Jeg selger sʇɥƃıluʍop :)
I $_SESSION ligger member_username, som blir satt - sannsynligvis - etter pålogging. Sålenge den ikke endres til noen annen sitt username, blir kun din egen profil vist.

Du kan hente username fra databasen, f.eks.
Kode:
SELECT username FROM members

og så loope gjennom result-settet.
I skriptet lager du da en lenk til profilen:
Kode:
echo '<a href="?locale=home&member_username=' .$rs['username'] .'">' .$rs['username'] .'</a>';

Og så plukker du opp $_GET['member_username'] i stedenfor den som ligger i $_SESSION.
 

KFlash32

Medlem
PONG!

Hadde det nå endelig vært så veldig enkelt =) Men dessverre. Dette fungerte heller ikke. Så selv om det er lagt ned mye arbeid i dette her, kommer jeg nok til å slette hele skiten og programmere fra starten.

FOR, som du ikke vet, $_GET['member_username'] blir også hentet fra et sted.

Kompisen min gjorde noen endringer i .htaccess også, så man kunne få noen pretty URL. Bare skrive inn brukernavnet.

Men denne er halvferdig gjort. Det eneste som mangler her, er å kunne gå til den profilen man skriver inn navnet på. Lyder problemet kjent? hmm, samme problem IGJEN.


Følgende kode er skrevet i Index.php





<?php if(isset($_SESSION['initiated']) && (isset($_SESSION['member_username'])) || (isset($_GET['location']))): ?>
<?php
// Choose what to display on members screen::
require_once 'classes/System.php';
$System = new System;
$location = $System->getUserView(@$_GET['location'],@$_SESSION['member_username']);

?>
<?php elseif(isset($_GET['username'])): ?>
<h2><?php echo $_GET['username']; ?></h2>

<p>
I know you have entered a username and you are expecting a users profile, but this section is not complete yet. Please
bare with me it will be completed very soon. Unfortunately we have other important things to attend to first.
</p>

<?php else: ?>


Og her stopper det, for da daua kreket.

Men username blir altså her hentet inn, og det skulle altså være NULL PROBLEM å åpne en annens profil.

Men igjen, dette går absolutt IKKE.

Noen flere forslag?
 

KFlash32

Medlem
Oppdatering!

Det er kun når man IKKE er logget på at brukernavnet og meldingen ovenfor vises. Skriver man brukernavn i adresse feltet når man er logget på, vises ingenting.

PONG! Jeg har prøvd det du skrev internt også, og hentet fra database.

Uansett hva man gjør her, virker det som scriptet har bestemt seg for IKKE å fungere.

Så er nok bare å slette dette her ja ... =(
 

KFlash32

Medlem
Er det noen som kan bistå med en løsning her? Ser det er mange som leser denne tråden.

Jeg betaler glatt 500 kr for en SNARLIG løsning, for begynner å bli rimelig forbannet her!

Jeg for min del bruker noen timer til på dette, så sletter jeg hele scriptet og starter fra begynnelsen av.
 

Pong

Jeg selger sʇɥƃıluʍop :)
Jeg kan godt hjelpe deg - ikke noe problem. Kan ta det i morgen eller i kveld.
Må da ha tilgang. Du har forklart problemet godt nok, men må kunne se alle detaljer og skript :p
Ser ellers ut at kompisen din gjorde en ok jobb.
 
Topp