2016-04-25 15 views
-4

Dies ist, was ich bisher getan habe, aber die $ _GET ['c_id'] ist nicht zugewiesen (URL sieht so aus http://localhost/srs_stuff.php?c_id= Ergebnisse sind sicher in $ r gespeichert variabel, da c_name wird normalerweise als klickbaren Link mit dem Namen ich mag angezeigt.

foreach ($results as $r) { 
    echo "<a href='srs_stuff.php?c_id='" . $r['c_id'] . ">" . $r['c_name'] . "</a></br>"; 
} 

noch bessere Lösung wäre, dass die C_Id in SESSION Variable gesetzt werden würde, bevor die Umleitung auf neue Seite. ist das möglich?

Antwort

0

Sie schließen das Attribut href, bevor Sie den Wert zuweisen

korrigierten Code:

<?php 
$r['c_id'] = 234; 
$r['c_name'] = 'Developer'; 
echo "<a href='srs_stuff.php?c_id=" . $r['c_id'] . "'>" . $r['c_name'] . "</a></br>"; 
?> 

HTML-Ausgabe erzeugt (Quellcode):

<a href='srs_stuff.php?c_id=234'>Developer</a></br> 
1
<a href='srs_stuff.php?c_id='" . $r['c_id'] 

HTML-Attributwerte können durch "' oder begrenzt werden. Sie verwenden '.

Ihr Wert href beginnt mit srs_ und geht bis zum nächsten ' weiter.

Die nächste ' ist hier id=': vor die $ r [ 'C_Id'] Wert.

Setzen Sie Ihre Attributtrennzeichen an die richtige Stelle (und verwenden Sie eine HTML validator, die Fehler wie diese aufnehmen würde).

Besser noch, generieren Sie keine URLs, indem Sie Strings zusammenmischen und dann HTML erzeugen, indem Sie mehr Strings zusammenfügen.

<?php 
    $query_string = http_build_query(c_id => $r['c_id']); 
    $url = "srs_stuff.php?" . $query_string; 
    $html_safe_url = htmlspecialchars($url); 
    $html_safe_name = htmlspecialchars($r['c_name']); 
?> 
    <a href="<?php echo $html_safe_url; ?>"> 
     <?php echo $html_safe_name; ?> 
    </a> 
    <br>