Just nu i M3-nätverket
Gå till innehåll

$_SERVER['PHP_SELF'], skriva om befintligt dokument?


Niss3

Rekommendera Poster

Hej!

 

Jag hade två dokument som jag ville slå ihop till ett. Problemet är att jag har två olika utseenden beroende på om du har fyllt i ett formulär eller inte.

 

En ide jag hade var att använda "exit;" för att avbryta utskriften av "del 2" om du inte fyllt i formuläret.

Men då kommer problemet när du väl har fyllt i formuläret, då skrivs "del 2" ut ÖVER "del 1".

 

Finns det något sätt att ta bort vad föregående phpscript gjort på sidan?

Länk till kommentar
Dela på andra webbplatser

Det enklaste måste vällvara att använda if-satser.

if($formIsFilled) {
//Skriv ut sida ett här 
} else {
//Skriv ut sida två här
}

Alternativt att använda output-buffer. Det är lite mer komplicerat, men du kan skriva till buffern. Sen om du inte är nöjd, rensa buffern och skriva något nytt. Men jag tror att alternativet med if är det bästa.

http://php.net/manual/en/book.outcontrol.php

Länk till kommentar
Dela på andra webbplatser

Jag har testat en del if satser, men inte lyckats få dem att fungera. Går det att sätta en $Variabel till t.ex. True eller False beroende på om <form> har angets inom en $_SESSION?

 

Om jag kan få en variabel att sättas som 1 eller TRUE när du tryckt på "submit" i <form>en, kan jag nog lösa mitt problem. Men hur kan jag göra det? En hemlig label med ett default value som nollas någonstans? Det är ju dumt om variabeln sätts till 1 och sedan förblir 1 eller TRUE..

 

 

En till fundering som kommit upp. Går det att skicka "refresh" kommandot, samma som att trycka på "F5", med PHP? Googlade lite och hittade två olika versioner, men jag vet inte om någon fungerar som jag tänkt:

Header('Location: '.$_SERVER['PHP_SELF']);

eller

Header('Refresh: 0');
Länk till kommentar
Dela på andra webbplatser

http://stackoverflow.com/questions/761922/can-you-render-a-php-file-into-a-variable

förstår du problemet & koden borde du kunna lösa ditt problem..

 

Jag gjorde så när jag var nybörjare. Jag hade olika html-filer med .php-ändelser som gjorde olika saker. Idag är MVC som gäller.

 

Ska ge dig lite tips...

 

Lär dig grunderna i PHP

Lär dig att koda Objektorienterad

Förstå MVC design pattern

 

Sedan använder du någon om de mest populära PHP-ramverken. Mina favoriter är Laravel & Phalcon

 

Du kommer å märka att det är roligare att koda PHP...

 

Lycka till.

Länk till kommentar
Dela på andra webbplatser

Tack Phenomen, jag ska forska vidare i MVC design och Laravel/Phalcon. Dock tror jag det är väldigt nyttigt för mig att sitta och skriva koden som jag gör, och då och då be om hjälp för att just lära mig PHP grunderna.

 

Jag tror jag har kommit en bra bit på vägen.I nuläget fungerar "testa-sättaihop-sidan" rätt bra, med en liten felaktighet.

 

Tyvärr så har jag inte lyckats hitta en bra variabel som jag kan använda. Nu använder jag if($_POST!=NULL) för att kontrollera om <form> har fyllts i eller inte. Det fungerar bra, SÅLÄNGE du inte stänger och öppnar sidan igen.

 

Om jag stänger sidan och går in igen så kommer första delen av sidan även om jag har fyllt i <form> (och på så sätt sparat en variabel i $_SESSION['member'].

 

Jag har provat att lägga till if($_POST!=NULL AND $_SESSION['member']!=NULL) , men då flippar sidan ut helt.

 

Några ideer vad jag kan titta vidare i? Jag har inte lyckats applicera "buffering" med ob_start();.. det känns inte som att det är den funktionen jag söker efter?

Länk till kommentar
Dela på andra webbplatser

Detta med att "om användaren har fyllt i gå till sida x annars sida y"

 

Hur länge vill du hålla reda på det?

 

Ska det vara under hela sessionen? hela livet? eller bara en viss tid?

 

Du har ju andra alternativ för att spara information. Via cookies, i databasen. Du kan oxå fråga databasen för att se om inmatningen har skett...

Länk till kommentar
Dela på andra webbplatser

Detta med att "om användaren har fyllt i gå till sida x annars sida y"

 

Hur länge vill du hålla reda på det?

 

Ska det vara under hela sessionen? hela livet? eller bara en viss tid?

 

Du har ju andra alternativ för att spara information. Via cookies, i databasen. Du kan oxå fråga databasen för att se om inmatningen har skett...

 

Hej igen!

 

Egentligen är det nog sålänge sessionen varar. Jag har löst problemet, tror jag. Såhär skrev jag:

 

<?php
if($_POST!=NULL){
include("ifylldA.php"); // visas första gången du fyllt i form
exit;
}
if($_SESSION!=NULL){
include("ifylldB.php"); // visas om du redan fyllt i form och återvänder
}
else
{
include("form.php"); // form sidan.
?>
Det går säkert att göra det smartare, säkrare och bättre. Men detta får duga i nuläget så jag kan gå vidare :)
Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...