Avatar billede amews_aj Nybegynder
15. oktober 2004 - 19:57 Der er 12 kommentarer og
1 løsning

explode virker ikke rigtig?

Jeg har et sted hvor jeg skal have delt en variable op ved hjælp af explode.

Den skal gøre sådan at hver gang der er en ; så skal den placere det i hver sin variabel

ex.
hey; hey2
// Skal blive til
$e[0] = "hey";
$e[1] = "hey2";


I det jeg har fixet sammen virker det ikke.

$tilexplode = explode(";", $tilpost);
for($i = 0; $i < count($tilexplode);$i++){
    $til[$i] = trim($tilexplode[$i]);
}

Hvis jeg nu fx. bare har skrevet hej

så laver den
[0] = h
[1] = e
[2] = j

Hvad gør jeg galt?

Hvis i ikke forstår så spørg løs
Avatar billede erikjacobsen Ekspert
15. oktober 2004 - 20:07 #1
Den skriver da det rigtige ud:

$tilpost="Hej1; Hey2";
$tilexplode = explode(";", $tilpost);
for($i = 0; $i < count($tilexplode);$i++){
    $til[$i] = trim($tilexplode[$i]);
    print $til[$i]."\n";
}
Avatar billede amews_aj Nybegynder
15. oktober 2004 - 20:14 #2
Ja det har jeg fundet ud af at den alligevel gør, det sker på en lidt anden måde. Prøv at se her

www.pc-help.dk/community/lavbesked.php

Så prøv at skriv noget i tilboksen og tryk send, så sker der noget mærkeligt


$tilpost = $_POST['til'];
$tilexplode = explode(" ", $tilpost);
for($i = 0; $i < count($tilexplode);$i++){
    $til[$i] = trim($tilexplode[$i]);
}
Avatar billede amews_aj Nybegynder
15. oktober 2004 - 20:19 #3
Det der er endnu mere mærkeligt er at hvis jeg gør sådan her:

$tilpost = "davdav"

$tilexplode = explode(" ", $tilpost);
for($i = 0; $i < count($tilexplode);$i++){
    $til[$i] = trim($tilexplode[$i]);
}


Altså sætter en $tilpost selv, og ikke lader den gå gennem $_POST.

Så hvis jeg ikke udfylder boksen til, så bliver den fint placeret i et array.
Men hvis jeg skriver bare et bogstav i den så deler den op igen, på trods af at den slet ikke er nævnt på siden.
Avatar billede erikjacobsen Ekspert
15. oktober 2004 - 20:23 #4
Joh, men det er jo nok din kode, der gør det ;)
Avatar billede amews_aj Nybegynder
15. oktober 2004 - 20:24 #5
HVad mener du med min kode?
Avatar billede erikjacobsen Ekspert
15. oktober 2004 - 20:31 #6
Ja, det er vel din kode, det er galt med. Du kan vise den her,
hvis vi skal finde det.
Avatar billede amews_aj Nybegynder
15. oktober 2004 - 20:32 #7
Det er et sted i dette stykke:


$tilpost = $_POST['til'];
$emne = $_POST['emne'];
$besked = $_POST['besked'];
$besked = strip_tags($besked, '<b><u><i><a>');
$dato = date("d/m-y");
$tid = date("H:i:s");


$tilexplode = explode(";", $tilpost);
for($i = 0; $i < count($tilexplode);$i++){
    $til[$i] = trim($tilexplode[$i]);
}
echo "0 = " . $til[0] . "<br>";
echo "1 = " . $til[1] . "<br>";
echo "2 = " . $til[2] . "<br>";
echo "3 = " . $til[3] . "<br>osv.<br>";

echo "antal arrays =  "  .  count($til);
Avatar billede erikjacobsen Ekspert
15. oktober 2004 - 20:37 #8
Ja, nu viser du så at du ikke har oprettet $til som et array. Før
din while-løkke:

$til = array();
Avatar billede amews_aj Nybegynder
15. oktober 2004 - 20:40 #9
Tusind tak, den havde jeg aldrig regnet ud, vidste ikke at det var nødvendigt.

MAnge tak, jeg ved du nærmest aldrig smider svar, men når jeg er så dum i dette tilfælde, så skal du have dem da.

Smid et svar ;)
Avatar billede erikjacobsen Ekspert
15. oktober 2004 - 20:43 #10
Nej tak, da.

PHP er "dum" i den forstand, at den vil gætte på hvad du mener,
når du ikke specificerer det. Mange gange er det godt nok, men
ikke her.

Du får nemlig en "usynlige"  $til  variabel fordi din PHP har
slået registerglobals til. Det er en streng, og $til[0] vil derfor
tage denne streng tegn for tegn. En rigtigt god grund til at slå
registerglobals fra.

Svar selv, accepter eget svar.
Avatar billede amews_aj Nybegynder
15. oktober 2004 - 20:45 #11
Okay da som du vil, men mange tak for hjælpen.

Nu ved jeg hvorfor problemet ikke har været der før
1go har lige opgraderet og dermed nok slået registerglobals til!
Avatar billede Slettet bruger
17. oktober 2004 - 20:54 #12
Det var dog også en overordentlig tåbelig ting at gøre. Alle fornuftige hoteller slår den da fra, hvis de overhovedet piller ved den.
Avatar billede erikjacobsen Ekspert
17. oktober 2004 - 21:04 #13
Et argument fra nogle webhoteller er mindre behov for support, for
de er fri for henvendelser om scripts, der ikke virker. Med register
globals sat til vil også scripts fra gamle bøger typisk virke.

I dette spørgsmål er det så lige omvendt ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester