HTML bewerken op basis van $ _GET

<?php
$g = $_GET['e'];
$t = "Title!";
$h = "";
$p = "";

function errorput($et,$eh,$ep) {
    $t = $et;
    $h = '

'.$eh.'

';
    $p = '
'.$ep.''; } if ($g == "nodata") { errorput("Missing Something...", "Blank Field", "You left a box or few empty."); } elseif ($g == "nopass") { errorput("Password Incorrect!", "Encrypted Hash Unmatched", "Your password is probably wrong."); } else { errorput($t, "I have no idea.", "There was an error, but we don't know why."); } ?> <!DOCTYPE HTML> <html> <head> <title><?php echo $t ?></title> <head> <body> <?php echo $h; echo $p; ?> </body> </html>

Dus, het levert html op gebaseerd op wat het ontvangt via GET. Waarom werkt het niet?

0

2 antwoord

$ t en anderen zijn niet wereldwijd beschikbaar. Breng ze terug.

<?php
$g = $_GET['e'];
$t = "Title!";
$h = "";
$p = "";

function errorput($et, $eh, $ep)
{
    $t = $et;
    $h = '

' . $eh . '

';
    $p = '
' . $ep . ''; return array( $t, $h, $p ); } if ($g == "nodata") { $errors = errorput("Missing Something...", "Blank Field", "You left a box or few empty."); } elseif ($g == "nopass") { $errors = errorput("Password Incorrect!", "Encrypted Hash Unmatched", "Your password is probably wrong."); } else { $errors = errorput($t, "I have no idea.", "There was an error, but we don't know why."); } ?> <!DOCTYPE HTML> <html> <head> <title><?php echo $errors[0]; ?></title> <head> <body> <?php echo $errors[1] . $errors[2]; ?> </body> </html>
2
toegevoegd

U probeert variabelen van buiten de functie binnen de functie te gebruiken die niet werken zoals u denkt dat het is.

Please read up on variable scope: http://php.net/manual/en/language.variables.scope.php

Als u van functie bent veranderd om:

Aan de bovenkant zou dit werken zoals u het wilt, maar het is verkeerd.

0
toegevoegd
Bedankt voor de link; Ik moest gewoon: global $ t, $ h, $ p in de functie plaatsen.
toegevoegd de auteur avinashbot, de bron
het is waarschijnlijk een betere gewoonte om geen globals in functies te gebruiken als je het kunt vermijden. Genesis stelt voor om een ​​array te retourneren.
toegevoegd de auteur horatio, de bron