Werden Ajax Scripte (z.B. ajaxsearch) auf https-Seiten aufgerufen funktionieren diese nicht und es kommt es zu einem
NetworkError: 500 Internal Server Error - http://www....../cgi-bin/iboshop.cgi?ajax<Seitennummer>
Das kann man mit einer kleinen Änderung in ajax.ipl vermeiden:
Original-Script
sub print_scripts {
	$out .= qq|
		<script type="text/javascript">
		// Server-URL für die Ajax-Abfragen
		  var myinterface = "__xxpath__?ajax$gl_ajax_pageNr,__xxsession__";
		</script>
		<script type="text/javascript" src="$gl_path_to_ajax/json2.js"></script>
		<script type="text/javascript" src="$gl_path_to_ajax/http/Request.js"></script>
		<script type="text/javascript" src="$gl_path_to_ajax/jquery.js"></script> 
		<link rel="stylesheet" href="$gl_path_to_ajax/css/ajax.css">
	|;
	
	main::mprint $out;
}
ersetzen mit
sub print_scripts {
my $ajaxurl = qq|
    <script type="text/javascript">
    // Server-URL für die Ajax-Abfragen
      var myinterface = "__xxpath__?ajax$gl_ajax_pageNr,__xxsession__";
    </script>
	|;
	
	if ($main::secure) {
	$ajaxurl = qq|
		<script type="text/javascript">
		// Server-URL für die Ajax-Abfragen
		  var myinterface = "__xxspath__?ajax$gl_ajax_pageNr,__xxsession__";
		</script>
	|;
	}
		
	$out .= qq|	$ajaxurl
    <script type="text/javascript" src="$gl_path_to_ajax/json2.js"></script>
    <script type="text/javascript" src="$gl_path_to_ajax/http/Request.js"></script>
    <script type="text/javascript" src="$gl_path_to_ajax/jquery.js"></script> 
    <link rel="stylesheet" href="$gl_path_to_ajax/css/ajax.css">
	|;
	
	main::mprint $out;
}
Dadurch werden alle Ajax-Scripte auf https-Seiten automatisch mit
https://www.<SSL-Adresse>/cgi-bin/iboshop.cgi?ajax<Seitennummer>
eingebunden.
Ergebnis: alle Ajax-Anwendungen funktionieren auch auf https-Seiten  ;D
Diese Änderung ist z.B. unbedingt nötig, wenn man bei der neuen Adressverwaltung das "alternative Lieferadresse speichern" für eingeloggte Kunden verwendet, da das ja im Bestellablauf = i.d.R. nur auf https-Seiten passiert.
			
			
			
				Eine andere Möglichkeit ist es, 2 globale Variablen anzulegen.
Zb in der stdall.ipl damit die Variablen in allen Scripten zur Verfügung stehen.
<!--spmacro:module(globals)
our $CATDIR = $ssp::catalog_abs;
our $CGI = $ssp::xxpath;
# if (main::is_ssl()) { ## funktioniert so nicht im alternativen Bestellablauf
if ($ENV{HTTPS} eq 'on') {
    $CATDIR = $ssp::sec_catalog_abs;
    $CGI = $ssp::xxspath;
}
-->
Dann könnte die oben angeführte Funktion so geschrieben werden und man hätte die extra if-Bedingung gespart:
sub print_scripts {
	$out .= qq|
		<script type="text/javascript">
		// Server-URL für die Ajax-Abfragen
		  var myinterface = "$globals::CGI?ajax$gl_ajax_pageNr,__xxsession__";
		</script>
		<script type="text/javascript" src="$gl_path_to_ajax/json2.js"></script>
		<script type="text/javascript" src="$gl_path_to_ajax/http/Request.js"></script>
		<script type="text/javascript" src="$gl_path_to_ajax/jquery.js"></script> 
		<link rel="stylesheet" href="$gl_path_to_ajax/css/ajax.css">
	|;
	
	main::mprint $out;
}
Mit $globals::CATDIR kann man dann zum Beispiel Bilder und CSS-Dateien verlinken.
Zb main::mprint("$globals::CATDIR/bilder/testbild.png");
			
			
			
				Danke für das Script !
.... und bitte das auch in die DOKU aufnehmen.
ein "ottonormaluser" wie ich kann sowas ja nicht wissen ;)