Gå til innhold

Hvordan plukke ut alle, og ikke bare én ?


Anbefalte innlegg

Jeg henter ut brukernavn fra en .inc-fil der brukernavnene er skilt med ":"

 

// Henter ut brukernavnene til de som har stemt
$filsjekk = file('poll/logg.inc');
foreach($filsjekk as $element)
{
$nestesjekk = explode(":", $element);
$stemtbruker = $nestesjekk[?];
}

// Sjekker om brukeren har stemt før
if($stemtbruker != $bruker)
{

 

Problemet mitt er denne linja her:

$stemtbruker = $nestesjekk[?];

 

Setter jeg "$nestesjekk[0];" der så henter den ut det aller første brukernavnet i fila og setter jeg "$nestesjekk[2];" der så henter den ut brukernavn nummer tre!

 

Problemet er:

Hva skal jeg skrive? jeg har prøvd disse to, men ingen av dem funka:

$nestesjekk;

$nestesjekk[*];

Endret av YaNkEs
Lenke til kommentar
Videoannonse
Annonse

$filsjekk = file('poll/logg.inc');
$navn = explode(":", $filsjekk);

foreach($navn as $etnavn)
{
  if($etnavn == eller lignende osv ...
}

 

antatt her at syntaksen din stemmer, for ikke giddi å sjekke om parametre og sånt stemmer, hehe. men tror det der kanskje skulle stemme mer.

 

det du får ut av file er vel en string er det ikke? og da funker det jo heller dårlig å gå over $filsjekk og late som at det er en array. mulig det da vil bli hver enkelt bokstav, men det vet jeg ikke.. uansett, explode returnerer vel arrayen. så med andre ord er det den du skal foreach'e over, og ikke stringen. :)

 

did it make any sense?

 

 

ADDED: og angående

Setter jeg "$nestesjekk[0];" der så henter den ut det aller første brukernavnet i fila og setter jeg "$nestesjekk[2];" der så henter den ut brukernavn nummer tre!
om du lurte på hvorfor der også, så er det fordi arrays i php, og stort sett alle andre programmeringsspråk (hvert fall de jeg har vært borti) har nullbaserte arrays, eller hva en nå skal kalle dem. med andre ord er den første i liste [0] og den andre [1], osv osv. Endret av Tussi_qwerty
Lenke til kommentar

Jeg vet ikke helt om jeg forsto deg riktig, men jeg lagde denne koden:

$brukernavn = $_SESSION['brukernavn'];

require("poll/settings.ini");

// Henter brukernavnene til de som har stemt
$filsjekk = file('poll/logg.inc');
$user = explode(":", $filsjekk);

foreach($user as $bruker)
{

// Sjekker om brukeren har stemt før
if($bruker == $brukernavn)
{

// Skriver ut resultat
include("pollresultater.php");

}
else
{

 

Det der funka heller ikke : /

For hvis du har stemt allerede så skal resultatene kommer, hvis ikke skal du få stemme, men i denne koden får man stemt uansett!

Endret av YaNkEs
Lenke til kommentar

Skal funke som bare rakkern det der. Hvis du ikke helt vet hvor den feiler, så start i det små:

$brukere = "en:to:tre:fire";
$brukere = explode(':', $brukere);

foreach ($brukere as $bruker) {
  echo $bruker . "\n";
}

 

Hvis du får det til å funke, oppgrader til å bruke dine variabler, deretter til å faktisk sjekke om brukeren stemmer overens med $_SESSION-variabelen din.

 

Evt. kan du jo smelle inn en

echo "Brukernavn fra fil: " . $bruker . " -- brukernavn fra session: " . $brukernavn . "\n";

i foreach-løkka di for å debugge litt.

 

:-)

Endret av gozzer
Lenke til kommentar
Skal funke som bare rakkern det der. Hvis du ikke helt vet hvor den feiler, så start i det små:

$brukere = "en:to:tre:fire";
$brukere = explode(':', $brukere);

foreach ($brukere as $bruker) {
  echo $bruker . "\n";
}

 

Jeg prøvde nå den første der, men det eneste som kom opp var "Array"

altså "echo $bruker" ble til "Array", det kom ikke opp noen brukernavn.

 

EDIT:

 

jeg brukte denne koden:

<?php

$brukernavn = $_SESSION['brukernavn'];

require("poll/settings.ini");

$fil = file('poll/logg.inc');
$usere = explode(":", $fil);

foreach ($usere as $bruker) {
 echo "Fil: $bruker <br>";
 echo "Session: $brukernavn <br>";
}

?>

 

og da fikk jeg opp:

Fil: Array
Session: yankes 

Endret av YaNkEs
Lenke til kommentar

Bare endel oppklaringer:

det du får ut av file er vel en string er det ikke?

Nope... file() returnerer hver linje i filen som et element i en array. Slik at hvis $fil=file("fil.txt") så er $fil[0] linje 1, $fil[1] er linje 2 osv.

[pirk]

...

if(in_array($bruker,$stemtbruker)){//Brukeren er i arrayet

}

Regner med at du mener :

if(in_array($bruker,$bruker_array)){//Brukeren er i arrayet
}

Forutsatt at $bruker inneholder gjeldende bruker ($_SESSION["brukernavn"])

[/pirk]

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...