Frage von Julian3004, 42

PHP: Auf Variable in einer anderen Funktion zugreifen?

Hallo, ich bin die ganze Zeit am überlegen wie Ich das hinbekomme, das ich aus einer anderen Funktion eine Variable abrufen kann. Ich möchte mit if überprüfen ob die Variable ausgeführt wurde dann soll er in den Rumpf von if gehen.

Es soll bei themaedit() überprüft werden ob $change ausgefürt wurde, wenn das der fall ist soll bei themalist() das in /.../ stehende ausgefürt werden.

Ich hoffe ihr könnt mir helfen. DANKE! :)

function themaedit(){
$thema  = length(isset($_POST['id']) ? $_POST['id'] : '', 10);
$th = length(isset($_POST['thema']) ? $_POST['thema'] : '', 30);
$in = length(isset($_POST['inhalt']) ? $_POST['inhalt'] : '', 500);
$csrf = length(isset($_POST['csrf']) ? $_POST['csrf'] : '', 32);
$error = NULL;

if(!empty($thema) && $csrf == $_SESSION['csrfToken']){
    $change = mysql_query("Update ".DB."_forum Set main = '$in', header = '$th' Where id = '$thema'");
    if($change){
        header('Location: ./?p=forum&h=themaedit&id='.$thema);
        exit;
    } else {
        $error = 'Fehler beim ändern des Inhaltes!';
    }
} else {
    $error = 'Du hast nichts geändert!';
}
return sondertext($error);
}


function themalist(){
    $outp = NULL;
    $sel = mysql_query("Select * From ".DB."_forum Order By date Desc");
    $query = mysql_query("Select * From ".DB."_user Where id = '".userout('id')."'");
    $row = mysql_fetch_assoc($query);

while($out = mysql_fetch_array($sel)){
    $user = $out['user'];
    $pb_user = $out['pb_user'];
    $id   = $out['id'];
    $date = $out['date'];
    $header = $out['header'];
    $main = $out['main'];
    /*
    $last_update = 'Bearbeitet am '.convertdate($out['last_update']);
    */
 if($user == userout('username') || userout('rank') >= 9){
    $delete = '<a href="./?p=forum&f=delete&id='.$id.'" title="löschen" class="btn btn-danger btn-xs"><span class="glyphicon glyphicon-trash"></span></a> <a href="./?p=forum&f=edit&id='.$id.'"title="bearbeiten" class="btn btn-xs btn-primary"><span class="glyphicon glyphicon-pencil"></span></a>';
 }else{
    $delete = '';
 }

        $outp.='
            <div class="media">
                <a class="pull-left">
                    <img class="img-responsive img-circle" src="'.$pb_user.'"width="120" length="120">
                </a>
                <b>#'.$id.' '.$user.'</b> <small>'.convertdate($date).'</small>
                '.$delete.' <b>'.$last_update.'</b>
                <div class="media-body">
                    <h4 class="media-heading"><b>'.$header.'</b></h4>
                    '.$main.'
                </div>
            </div> 
            <hr>   
        ';

    }
    return $outp;
}   
Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von sudorc, 11

Es ist nicht genau zu sehen was du sonst noch wie machst aber für einen Schuss ins blaue:

Am einfachsten wäre es wohl deinem Redirect noch einen Parameter mitzugeben

header('Location: ./?p=forum&h=themaedit&id='.$thema.'&change=true');
Antwort
von Suboptimierer, 32

Entweder du speicherst das in einer globalen (Session-)Variable oder du nutzt ein Singleton.

Du kannst auch alle Funktionen in einer Klasse bündeln und dann die übergreifend benötigte Variable der Klasse privat beifügen.

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten