2011-01-14 13 views
0

Ein total Newbie Frage ....Wie verhindert man das Entfernen von Sonderzeichen wie '/' von Benutzereingaben?

Ich entwickle eine Joomla Vorlage und in diesem möchte ich Vorkehrungen treffen, um die Assets (Bilder, JavaScript und CSS) von einem Remote-Standort oder lokal zu laden.

Ich verwende den folgenden Code für das gleiche:

<?php 

class MyclassName { 

function CDNPath(){ 
return $this->getParam("cdn-path","templates/myTemplate/cdn"); 
} 

} 
?> 

Jetzt in dieser Ich möchte für $cdn_path über Benutzereingabe den Wert nennen. Ich bin in der Lage, den Pfad zu bekommen, aber es entfernt die '/' Marken. Bitte beachten Sie das folgende Beispiel:

Der richtige Weg zu CDN ist http://mydomain.com/cdn

Es ist wohl zu lesen, wie:

<link rel="stylesheet" href="/joomla/http://mydomain.com/cdn/css/template.css" type="text/css" media="screen" />

während er liest wie:

<link rel="stylesheet" href="/joomla/http:mydomain.comcdn/css/template.css" type="text/css" media="screen" />

Die Trennung für diese joomla ist das Stammverzeichnis von Joomla und http://mydomain.com/cdn/ ist die Benutzereingabe

zwei Herausforderungen:

  1. es alle '/' Zeichen aus dem Benutzer-Eingang zu entfernen.

  2. Es wird die Joomla Root 'joomla' am Anfang des Pfades hinzugefügt.

Bin ich falsch codiert? Wenn ja, wie lautet die korrekte Syntax?

Fühlen Sie bitte sich frei, irgendeinen neuen Ansatz vorzuschlagen, wenn Sie glauben, wird besser als das sein.

Bitte helfen.

+0

Haben Sie versucht, URL-Codierung der Benutzereingabe? – Naatan

+0

Hallo @Naatan danke für den Beitrag, aber eigentlich nicht, ich habe es nicht versucht, da ich total ein Neuling für die Programmierung bin und nicht weiß, wie es geht. Ich bin immer noch in der Lernphase. Allerdings gibt es eine zweite Herausforderung auch für mein Problem, wo das Joomla-Stammverzeichnis am Anfang der Benutzereingabe hinzugefügt wird. –

+0

@Naatan auch, dass diese Variable eine Benutzereingabe über die 'templateDetails.xml' Datei sein wird. Es kann daher für einen Benutzer nicht möglich sein, eine codierte URL einzugeben. –

Antwort

1

Wenn Sie die Eingabe per Post bekommen (im nicht sicher, wie Sie eine Eingabe von Benutzer nehmen.) so können Sie so etwas wie dies versuchen, Schrägstriche hinzufügen:

<?php 
//create array to temporarily grab variables 
$input_arr = array(); 
//grabs the $_POST variables and adds slashes 
foreach ($_POST as $key => $input_arr) { 
$_POST[$key] = addslashes($input_arr); 
} 
?> 

wenn seine Array ..

+0

Hallo @Ayaz danke für die Hilfe. Ich benutze Joomla, so dass die Eingabe über die Datei 'templateDetails.xml' im XML-Format erfolgt. Beispiel: ' ' –

+0

seit ich habe nicht versucht Joomla ich kann dir nicht viel vorschlagen, ich habe ein wenig Nachforschungen und fand dies .. versuchen Sie es aber mit einem Backup Ihrer Datei natürlich :) Für eine Abhilfe, können Sie beheben durch Änderung cb.core.php bei Zeile cb.core.php: 99 (cb 1.1) ändern sefRelToAbs ($ uimage) zu sefRelToAbs ('/'.$ uimage) –

Verwandte Themen