Det är såhär att jag har ett mejlformulär och jag har nu tagit tag i felhanteringsbiten. Den som ska mejla måste fylla i namn och epost. Jag har gjort det så att om man inte fyllt i det så skickas man till en annan php-sida med samma formulär igen och en liten text där det står att man måste fylla i namn,epost. Men nu till kruxet....det är inte vidare snällt mot användaren att ta bort hela hans meddelande (det försvinner ju när man kommer till den nya sidan) så jag tänkte såhär:
Jag har sparat orginalmeddelandet användaren skriver i en $message-variabel mha. $_POST['message']; den variabeln borde man väl kunna utnyttja för att skriva ut meddelandet igen på den nya sidan. Alltså "importera" $message-variabeln från formulärssidan till felsidan och sen köra echo på den.
Problemet är att jag inte vet hur jag får över variabeln till den andra php-filen, om det ens går....? Tacksam för lite hjälp.
Jag är inte heller så bra på php. Men om du inte har satt sessions så kanske ett meddelande om vad som är fel och en tillbakaknapp till den cachade sidan funkar?
Jo det skulle också fungera kanske, men på den här sidan blir det meddelandet lite svårt att få till på ett snyggt sätt. Så jag skulle föredra "session-lösningen".
... o.s.v. Det finns många sätt att göra kontrollen på men behåll den på samma sida som användaren skriver meddelandet i så slipper du hämta variabler från andra sidor.
Det spelar väl ingen roll var jag har koden? Jag måste ändå skicka variabeln till den där felsidan som ska komma upp om inte namn/epost/meddelande är ifyllt...
Ett alternativt sätt att lösa problemet på är att du låter samma sida ta hand om felet. Fördelen är att här kommer du åt allt användaren skickat in rakt av med $_POST. Skissartat exempel:
//main
$error = FALSE;
if (isSet($_POST["Epost"]))
$epost = $_POST["Epost"];
else {
$epost = "";
$error = TRUE;
}
if (isSet($_POST["Meddelande"]))
$med = $_POST["Meddelande"];
else {
$med = "";
$error = TRUE;
}
//... osv för de variabler du vill kolla + ev andra koller som tex att epost
// verkar vara en epostadress och inte något annat märkligt.
if ($error) //Gäller första gången och alla andra gånger när inte det är felfritt
echo '<form id="contactform" method="post" action="contactform.php">
<p class="formheader">E-mail:</p>
<input type="text" class="textarea"name="email" size="30" maxlength="80" value="'.$epost.'"/>
<p class="formheader">Message:</p>
<textarea name="message" class="textarea" cols="40" rows="10">'.$med.'</textarea>
<br/><br /><input type="submit" name="send" value="Send" />
</form>';
else sendMail("..."); //Som då inte innehåller felkollen
Det spelar väl ingen roll var jag har koden? Jag måste ändå skicka variabeln till den där felsidan som ska komma upp om inte namn/epost/meddelande är ifyllt...
Precis som aasah säger så slipper du ha en särskild sida för felmeddelanden, konstruktionen du tänker på är en omväg.
Precis som aasah säger så slipper du ha en särskild sida för felmeddelanden, konstruktionen du tänker på är en omväg.
Då kör jag på det istället. Det jag fått lära mig om php i en kurs är att man ska separera php och html kod fast det kanske inte alltid är det bästa sättet. Återkommer om jag får problem med den här lösningen.
Att all text som finns på sidan sedan ska hämtas från en databas borde väl inte ställa till några problem? Det är ju bara att skicka en sqlfråga och slänga in variabeln istället för texten som finns nu.....typ. Sidan skall nämligen finnas på flera olika språk.
Nu kommer jag antagligen inte köra på den varianten att jag har felsidan som egen sida. Men som en parantes så kan det nämnas att så som du föreslog fungerar inte, det var så jag antog att man kunde göra också. Men inget syns i textfältet när man kommer till den sidan.
Nu kommer jag antagligen inte köra på den varianten att jag har felsidan som egen sida. Men som en parantes så kan det nämnas att så som du föreslog fungerar inte, det var så jag antog att man kunde göra också. Men inget syns i textfältet när man kommer till den sidan.
Märkligt isåfall. Jag gjorde en snabbtest och fick det att fungera, men aasah är inne på ett bra spår så kör på det.
Att all text som finns på sidan sedan ska hämtas från en databas borde väl inte ställa till några problem? Det är ju bara att skicka en sqlfråga och slänga in variabeln istället för texten som finns nu.....typ. Sidan skall nämligen finnas på flera olika språk.
Inga problem alls. Gör så som du beskriver så funkar det bra!
fiddler skrev:
Angående "<?" vs "<?php" så är det senare det mest korrekta, men det första fungerar för det mesta.
Tja... om man skriver '<?php' är det entydigt att kommandotolken kommer att fatta att det som följer är PHP-kod. '<?' däremot är öppningstagg för ett stort antal olika skriptspråk så då beror det på vilken inställning servern har om det tolkas som PHP-tagg eller annan tagg. Mao, använd den förra, så är du garanterad att rätt kommandotolk går igång!
Någon risk för att fel kommandotolk går igång finns inte direkt. I och med att det är en php-sida så är det php-tolken som har ansvaret. Däremot kan det bli struligt om man vill använda en xml-deklaration i samma dokument (<?xml version="1.0" encoding ....), eftersom php-tolken kommer att hugga tag i den också.
265 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2