---
title: "Definiera Variabel??"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/98107-definiera-variabel"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "MickeA.com"
published: "2004-02-24T16:13:25.000Z"
updated: "2004-02-24T20:24:36.000Z"
replies: 12
views: 381
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/98107-definiera-variabel"
---

# Definiera Variabel??

## #1 — MickeA.com, 2004-02-24T16:13Z

Hej

Här är koden till en gästbok, där alla mess sparas i en textfil:

```php
<?php
$file = file("guestbook.txt");
$antal = count($file);

if(isset($pos) && ($pos == 0))	$pos=0; $count=5;
    
if($pos >= $antal) {
    $pos = 0;
}

$linje = "<br><font color='#FFFFFF'>___________________________________</font><br><br>";

echo ("&txtRead=");
for($i=$pos; $i<($count+$pos); $i++)
{
    if($i > $antal-1) {
		break;
	}
    $text = explode("|",$file[$antal-$i-1]);
    
	$antal-$i;?></b> <?=$text[0];?></p>
    <p><?=$text[1];?></p>
	<p><?=$text[2];?></p>
    <p><?=$text[3];?></p>
    <hr /><br />
    <?
}

$back = $pos-$count;
$forward = $pos+$count;

if ($pos > 0) {
    echo "<a href=\"read.php?pos=$back\">prev</a> <b>:</b>";
}
if ($antal > $forward) {
    echo "<a href=\"read.php?pos=$forward\">next</a>";
}
?>
```

Felmessen är så många, så dom kan ni istället kolla in på:
<http://mickea.dyndns.org/_php/gb_flash/read.php>

Det har iaf. med att göar att den på flera ställen säger att:

```
Notice: Undefined variable: pos
```

Det har alltså med pagingen att göra, men vad är det som ställer till det??

Tack !

Permalänk: https://www.webforum.nu/p/98107

## #2 — Jontto, 2004-02-24T16:18Z

Du definierar $pos endast om den redan är satt. Kan du inte sätta in en $pos=$\_GET/$\_POST/0; vad nu än $pos är för ngt, före första if-satsen. 

Alternativ sätter du in 

```php
if(!isset($pos))
$pos=0;
```

där. För att först kolla om $pos är satt eller inte.

Permalänk: https://www.webforum.nu/p/1285439

## #3 — MickeA.com, 2004-02-24T16:23Z

Tack för det snabba svaret, men jag kan i princip ingen php at all, bara grunderna, hur själv syntaxen ser ut,l men resten, Nepp ;)

$pos är en räknare el. liknande som räknar antalet inlägg som skrivits ut, den har alltså med pagingen att göra. Vad den gör, varför den gör det osv. har jag ingen aning om.

Kollade på den första ifsatsen med, jag tycker det ser ut som ett syntaxfel där, men jag har ingen aning.

Att notera är att det är inte jag som gjort scriptet, ag har fått det, för att modifiera det, samt få det att samköra med Flash.

Permalänk: https://www.webforum.nu/p/1285441

## #4 — MickeA.com, 2004-02-24T16:25Z

Ah, nu var jag dum. Jag läste inte det du skrev så noga, la till 

```php
$pos=0;
```

 där i början och nu funkar det ;)

Tack, återkommer om det är ngt mer.

Permalänk: https://www.webforum.nu/p/1285443

## #5 — WiZzLeR, 2004-02-24T16:48Z

$pos = NULL;

Permalänk: https://www.webforum.nu/p/1285449

## #6 — MickeA.com, 2004-02-24T16:57Z

Tack, nu funark själva inläsningen, men att skriva till filen funkar inte:

```php
<?php
    
    $name = $_POST['strName'];
    $name = htmlspecialchars($name);
    $name = stripslashes($name);
    $name = str_replace("\n","",$name);
    $name = str_replace("|","",$name);

    $message = $_POST['strMess'];
    $message = nl2br($message);
    $message = str_replace("\n","",$message);
    $message = str_replace("|","",$message);
    
    $subject = $_POST['strSub'];
    $subject = htmlspecialchars($subject);
    $subject = str_replace("\n","",$subject);
    $subject = str_replace("|","",$subject);
    
    $date = date("Y-m-d H:i", time());

    $fp=fopen("guestbook.txt", "a+");

    fputs($fp,"$date|$subject|$message|$name|\n");

    fclose($fp);

    //header("location:read.php");
    exit;
echo ("&loaded=true");
?>
```

Får felmess:

```
Notice: Undefined index: strName in E:\Projekt\_php\gb_flash\write.php on line 3

Notice: Undefined index: strMess in E:\Projekt\_php\gb_flash\write.php on line 9

Notice: Undefined index: strSub in E:\Projekt\_php\gb_flash\write.php on line 14
```

Förstår inte vad felet är med dom namnen...?

Permalänk: https://www.webforum.nu/p/1285452

## #7 — Peeer, 2004-02-24T17:12Z

De värden du söker saknas från formuläret. Kolla så att du använder method="post" på formuläret.

Permalänk: https://www.webforum.nu/p/1285455

## #8 — MickeA.com, 2004-02-24T17:27Z

Hmm, tack, det funkade. Nu är det bara det här med $pos kvar. För att det här skall funka med Flash gäller det att det inte blir ngt som helst annat i phpfilen, förutom det man bestämt skall skrivas ut.

Som det är nu kommer ju en 'Notice' ut om att $pos inte är def. 

Sånt måste bort, hur ska jag göra?? $pos har ibland ett värde från en querystring som ibland laddas tillsammans med filen.

Frågan då; Kan man m.h.a en ifsats fixa till det här??

Permalänk: https://www.webforum.nu/p/1285464

## #9 — Peeer, 2004-02-24T17:42Z

Löste du inte det själv [här uppe](http://www.webforum.nu/showthread.php?s=&postid=805022#post805022), dvs genom att sätta $pos = 0; överst i koden?

Permalänk: https://www.webforum.nu/p/1285472

## #10 — MickeA.com, 2004-02-24T18:35Z

> **Peeer skrev:**
>
> Löste du inte det själv [här uppe](http://www.webforum.nu/showthread.php?s=&postid=805022#post805022), dvs genom att sätta $pos = 0; överst i koden?

Nej, det ställde eg. till det ännu mer, för som jag sa så skickas $pos *ibland* med som ett värde i en Querystring. Men bör jag inte kunna lösa det med:

```php
if($_GET['pos'] = ""){
     $pos = 0;
}else{
     $pos = $pos;
}
```

Nu kan jag inte syntaxen rätt, eftersom jag inte som jag nämnde aldrig sysslat med PHP, så rätta mig gärna om jag har fel.

Permalänk: https://www.webforum.nu/p/1285505

## #11 — Peeer, 2004-02-24T18:47Z

Möjligt att jag har fattat funktionen med $pos helt fel, men den talar väl om vilket inlägg som pagingen ska börja med. Är det inte medskickat i querystringen så ska det vara 0?
isf:

```
if(isset($_GET['pos']) and is_numeric($_GET['pos'])){
     $pos = $_GET['pos'];
}else{
     $pos = 0;
}
```

Lägg koden överst så borde det fungera.

Permalänk: https://www.webforum.nu/p/1285508

## #12 — MickeA.com, 2004-02-24T20:21Z

Ok, ska prova, tack ;)

Permalänk: https://www.webforum.nu/p/1285568

## #13 — MickeA.com, 2004-02-24T20:24Z

Nämen Stabilt ;) 

Tack så mkt för hjälpen.

Permalänk: https://www.webforum.nu/p/1285571

---

Tråden på webben: https://www.webforum.nu/amne/php/98107-definiera-variabel
