kostenloser Webspace werbefrei: lima-city


Suche auf lima-city

  • in: FF Lesezeichen nicht in Sidebar / aus Sidebar befreien

    geschrieben von ktowxl

    Hallo

    ich habe ein JavaScript, damit sich User eine Seite als Lesezeichen "merken" können

    ... hier der JavaScript Code:
    function seitemerken() {
      var title = document.title; 
      var url = location.href;
      
      if (window.sidebar) { // --- Firefox 
         window.sidebar.addPanel(title, url, ''); 
      } 
      else if( window.external ) { // --- IE 
         window.external.AddFavorite(url, title); 
      } 
      else if(window.opera && window.print) { // --- Opera 
         return true; 
      }
    }


    Aufruf über einen (HTML) Link:
    <p>
      Seite merken als <a href="javascript:seitemerken();">Lesezeichen</a> (Bookmark)
    </p>


    bei Firefox und IE getestet,
    es öffnet sich der Dialog um die Seite zu den Lesezeichen hinzu zu fügen.

    Problem:
    bei FireFox wird das Lesezeichen so angelegt, das es bei Aufruf in der Sidebar geladen wird.
    ---> wie kann ich das verhindern ???

    a) ... Lesezeichen nicht in FF Sidebar
    am besten gleich so, das im FF Lesezeichen hinzufügen Dialog
    das Häckhen bei "Dieses Lesezeichen in der Sidebar laden" nicht aktiv ist, bzw. diese Option ganz fehlt.

    ich will, das Besucher sich die Seite "ganz normal" als Lesezeichen ablegen können,
    und nicht als Lesezeichen, welches dann in der Sidebar geladen wird .... :(

    ... gibt es einen (anderen) JavaScript-Befehl, der Firefox Lesezeichen "normal" anlegt,
    oder kann man die Option "Lesezeichen in der Sidebar laden" irgendwie aus schalten ?

    b) ... Seite aus Sidebar befreien
    ... wenn das nicht geht ... gibt es vielleicht eine Möglichkeit bei Aufruf einer Seite zu prüfen,
    ob diese Seite in der (FF) Sidebar geladen wurde, wenn ja, dann die Seite aus Sidebar "befreien"
    also immer anstatt in der Sidebar ganz normal im Browser öffnen ?!


    PS:
    der Teil für Opera ... funktioniert der ? ...
    return true;
    kommt mir bischen "wenig" vor ?!
    und wie geht Lesezeichen per Link (Klick) hinzufügen für Chrome, etc. ... andere (wichtige) Browser ??

  • in: mysql_real_escape_string

    geschrieben von ktowxl

    ja Danke,
    dachte mir schon, das mysql_real_escape_string() auf die "einzelnen" Werte angewendet
    werden muss und nicht auf den "fertigen" SQL-Befehl

    das ist ne gute idee, ich sammle die Variablen vor Verbindungas-Aufbau in ein Array
    dann kann ich - nach dem Verbindungs-Aufbau - die Werte in diesem Array richtig escapen

    so kann ich die Verbindung erst aufbauen, wenn schon alle Werte zusammen gesammelt
    wurden und dann bleibt die MySQL-Verbindung auch lange genug bestehen.

    PS: das Problem, das die Verbindung nicht lange genug bleibt ist auf anderem Server
    (nicht Lima-City) ... wenn ich es hier ausprobiere, geht es auch "direkt" ...
    aber auf dem anderen kommt nach paar Sekunden die Meldung: "MySQL Server gone away"

    aber mit dem "zuerst in Array ablegen" klappt es auch dort.

    mal so ganz grob ... Ablauf in 5 Schritten:

    // ------ (1) --- build data array before mysql connect --- 
    
    $indata = array(); 
    $indata[0] = array($new_name1, $new_info1, $new_numb1);
    $indata[1] = array($new_name2, $new_info2, $new_numb2);
    // ... usw.
    
    // ------ (2) --- connect to mysql and select database --- 
    
    $con = mysql_connect($mysql_host, $mysql_user, $mysql_pass);
    if (!$con) { print "<br />Could not connect: <br />\n" . mysql_error(); exit; } 
    
    $sel = mysql_select_db($mysql_name, $con);
    if (!$sel) { print "<br />Could not select: <br />\n" . mysql_error(); exit; } 
    
    // ------ (3) --- escape strings --- 
    
    // ---------------------------------- 
    function escaped_values($array) { 
    	
    	$escdata = ''   // ---- start values string 
    	
    	foreach ($array as $item) { 
    		
    		$escdata .= "\n(";   // ---- start values row
    		
    		foreach ($item as $key => $value ) {
    			$escdata .= "'".mysql_real_escape_string($value)."',";    // ---- insert value in row
    		}
    		
    		$escdata = rtrim($escdata,','); 
    		$escdata .= '),';  // ---- close values row
    	}
    	
    	$escdata = rtrim($escdata,','); 
    	return $escdata; 
    }
    
    // ---------------------------------- 
    
    $str_indata = escape_values($indata);  
    
    
    // ------ (4) --- build SQL Query String  --- 
    
    $sql = "INSERT INTO ".$table1." ( name,  info,  numb ) VALUES ".$str_indata.""; 
    
    
    // ------ (5) --- run MySQl Query --- 
    
    $result = mysql_query($sql);
    if (!$result) { print "<br />MySQL ... Error ... <br />\n" . mysql_error(); exit; } 
    else { print "<br />MySQL ... OK <br />\n"; } 
    
    // -------------------------


    dabei wird zwar auch Wert für numb escaped, obwohl esein INT-Wert ist,, aber wohl egal
    hauptsache es funktioniert :)

    .... Danke !
  • in: mysql_real_escape_string

    geschrieben von ktowxl

    Hallo

    kann man mysql_real_escape_string() auch auf den "fertigen" SQL Befehl anwenden,
    anstatt auf die einzelnen Variablen ?

    also anstattt so
    $sql = "INSERT INTO ".$table1." ( name,  info,  numb ) 
    VALUES 
    ( '" . mysql_real_escape_string($new_name1) . "',  '" . mysql_real_escape_string($new_info1) . "',  '" . $new_numb1 . "' ), 
    ( '" . mysql_real_escape_string($new_name2) . "',  '" . mysql_real_escape_string($new_info2) . "',  '" . $new_numb2 . "' ) 
    ";


    erst nach dem Zusammen-Bau des MySQL Befehls (auf den "fertigen" Befehl)

    $sql = "INSERT INTO ".$table1." ( name,  info,  numb ) 
    VALUES 
    ( '" . $new_name1 . "',  '" . $new_info1 . "',  '" . $new_numb1 . "' ), 
    ( '" . $new_name2 . "',  '" . $new_info2 . "',  '" . $new_numb2 . "' ) 
    "; 
    
    $sql = mysql_real_escape_string($sql);


    oder macht das Probleme, weil VALUES Werte ja in (einfache) Hochkomma drin stehen?

    ... mein Problem ist, dass der Zusammen-Bau des MySQL-Befehls in einer Schleife läuft
    (in der die einzutragenden Daten "gesammelt" werden)
    und so lange dauert, dass zwar die PHP-Script-Laufzeit ausrecht, aber die MySQL-Verbindung weg ist,
    aber ich brauche ja die MySQL-Verbindung um mysql_real_escape_string() anwenden zu können,
    daher die Idee, den gesamten SQL-String (Mysql-Befehl) vor Verbindungsaufbau zusammen zu stellen
    und dann erst Verbindung aufbauen und diesen "fertigen" SQL-String (Mysql-Befehl) escapen ?!?

    ... das klappt aber irgendwie nicht ??? ... wie kann ich es sonst machen (das "richtig" escapen)

  • in: Benutzerdefiniertes Formular zur Uebermittlung von Daten

    geschrieben von ktowxl

    Datei-Upload (PHP) mit Formular (HTML)

    Datei: test1.php


    <?php 
    // ----------------------------------------------------------------- 
    header("Content-Type: text/html; charset=utf-8"); 
    date_default_timezone_set('Europe/Berlin');
    
    $timestamp = time(); 
    $max_bytes = (1024*1024); 
    $uploaddir = 'uploads'; 
    $user_name = 'testuser';  
    
    ## $run_file = 'test1.php'; 
    $run_file = $_SERVER['PHP_SELF']; 
    
    // --------------------------------------------- 
    
    $formular1 = '
    <form action="'.$run_file.'" method="post" enctype="multipart/form-data">
       Titel: <input type="text" name="titel" value="" size="46" maxlength="100" /> <br /> 
       <input type="hidden" name="MAX_FILE_SIZE" value="'.$max_bytes.'" /> 
       Datei: <input type="file" name="datei" size="36" maxlength="200" /> <br /> 
       Info: <input type="text" name="info" value="" size="46" maxlength="150" /> <br /> 
       <input type="hidden" name="tstp" value="'.$timestamp.'" /> 
       <input type="hidden" name="user" value="'.$user_name.'" /> 
       OK: &nbsp;&nbsp; <input type="submit" name="go" value="Hochladen" />
    </form>
    '; 
    
    // --------------------------------------------- 
    
    function print_debug($var) { 
    
    print "<br />\n"; 
    print "<br />\n"; 
    print "<pre style=\"margin:4px; padding:6px; background:#DEDEDE; text-align:left;\">\n"; 
    print_r($var); 
    print "</pre>\n";
    print "<br />\n"; 
    print "<br />\n"; 
    
    }
    
    // ----------------------------------------------------------------- 
    
    
    print "<br />\n";
    print "<br /> --- <a href=\"".$run_file."\">HOME</a> --- \n";
    print "<br />\n";
    print "<br />\n";
    
    // ----------------------------------------------------------------- 
    
    
    if (isset($_FILES['datei']['size']) && !empty($_FILES['datei']['size'])) { 
    
    // -------------------------------------
    if($_FILES['datei']['size'] < $max_bytes) { 
    
    $uploaddir = trim($uploaddir,'/'); 
    
    if (!is_dir($uploaddir)) { mkdir($uploaddir,0755); } 
    
    $dateiname = basename($_FILES['datei']['name']); 
    $zieldatei = $uploaddir .'/'. $dateiname;
    
    // ------------------------------- 
    if (!file_exists($zieldatei)) { 
    
    move_uploaded_file($_FILES['datei']['tmp_name'], $zieldatei);
    
    print "<br />\n";
    print "<br />Die Datei wurde erfolgreich hochgeladen: ".$uploaddir."/<a href=\"".$zieldatei."\" target=\"_blank\">".$dateiname."</a>\n";
    print "<br />\n"; 
    print "<br />Titel: ".$_POST['titel']."\n"; 
    print "<br />Name:  ".$dateiname."\n"; 
    print "<br />Path:  ".$uploaddir."\n"; 
    print "<br />Type:  ".$_FILES['datei']['type']."\n"; 
    print "<br />Size:  ".$_FILES['datei']['size']."\n"; 
    print "<br />Info:  ".$_POST['info']."\n"; 
    print "<br />Time:  ".$_POST['tstp']." --- ". date('Y-m-d (H:i:s)',$_POST['tstp']) ."\n"; 
    print "<br />User:  ".$_POST['user']."\n"; 
    print "<br />\n"; 
    
    // ------------------------------- 
    }
    else { 
    
    print "<br />\n";
    print "<br />Die Datei ist bereits vorhanden: <a href=\"".$zieldatei."\" target=\"_blank\">".$zieldatei."</a>\n";
    print "<br />\n"; 
    unset($_FILES); 
    }
    // ------------------------------- 
    
    // -------------------------------------
    }
    else { 
    print "<br />Das Bild darf nicht gr&ouml;&szlig;er als 1 MB sein.\n"; 
    unset($_FILES); 
    }
    // -------------------------------------
    
    print "<hr />\n"; 
    print "<br />#### DEBUG ####\n"; 
    print_debug($_FILES); 
    print "<br />\n"; 
    print "<br />\n"; 
    
    
    // ----------------------------------------------------------------- 
    } 
    else { 
    
    print "<br />\n"; 
    print "<br />\n"; 
    
    print $formular1; 
    
    print "<br />\n"; 
    print "<br />\n"; 
    
    } 
    // ----------------------------------------------------------------- 
    
    
    print "<br />\n"; 
    print "<br />\n"; 
    print "<br />\n"; 
    
    
    // --------------------------------------------- 
    ?>



    Features
    + Formular zur Eingabe: Titel, Datei-Auswahl, Info
    + Hochgeladene Datei im Ordner 'uploads' Speichern
    + Ausgabe wichtiger Parameter / Variablen (DEBUG)


    TO-DO:
    + Zusatz-Infos zurm Upload speichern (Titel, Info, Time, User, ...)
    + Unique Dateiname für Upload z.B.: md5 (name+time+user)
    + nur bestimmte Datei-Typen zulassen (z.B.: nur .jpg .gif .png)
    + .....

  • in: Überprüfen ob in Textfeld Code oder Link vorhanden ist

    geschrieben von ktowxl

    czibere schrieb:
    ... aber er meinte unter 'link' nicht unbedingt 'anchor' (auch nicht mit BB-code ;)


    doch genau das (mit BB-Code URL entfernen) meinte er soweit ich es - nach genauem Lesen - verstanden habe, ich habe halt noch als "Bonus" das Entfernen von <a HREF Links dazu ... :)

    zum Problem TE .... er will zwei Dinge

    1) Prüfung der Formular-Einngabe
    verhindern, dass in Zukunft jemand überhaupt so eine BB-Code URLs eintragen / speichern kann

    2) Entfernen unerwünschter Texte aus DB
    aus den bereits so eingetragenen Texten (DB) diese nicht erwünschten BB-Codes wieder entfernen



    ich habe dann also einen Ansatz zim Punkt 2) gezeigt / geliefert,
    ... wie er mit einem Pattern und preg_match_all() die BB Link Codes entfernen kann

    ... und ... als Bonus .... habe ich halt auch noch die Möglichkeit dazu gemacht / gezeigt,
    wie man nicht nur BB-Code Links sondern auch HTML Links <a href=...> entfernen kann,
    falls gewünscht

    um es anzuwenden muss er nur die Texte aus der DB durch-gehen (SELECT)
    und wenn Treffer dann als neuer "gesäuberter" Text speichern (UPDATE)


    auch für Punkt 1) ..... mit so einen Pattern und und preg_match_all()
    kann mann evtl. auch die User Formular-Eingabe (mit PHP) prrüfen
    ... einfach auf der Ziel-Seite vom Formular diese Prüfung machen
    und bei Treffer den neuen Eintrag nicht speichern + Meldung ausgeben
    ... oder halt ein JavaScript zum Eingabe vor dem Senden prüfen
  • in: AJAX Text verschicken

    geschrieben von ktowxl

    oder so

    Datei: test.html ..... mit Formular(e) und AJAX Javascript

    <html>
    <head>
    <title>AJAX Request GET POST Example</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    
    <script type="text/javascript">
    // ----------------------------------------------------------------------- 
    
    function ajax_request(query='', method='post', requrl='ajax_info.php') { 
    	var ajxhttp;
    	if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
    	  ajxhttp = new XMLHttpRequest();
    	  }
    	else { // code for IE6, IE5
    	  ajxhttp = new ActiveXObject("Microsoft.XMLHTTP");
    	  }
    	ajxhttp.onreadystatechange=function() { 
    	  if (ajxhttp.readyState==4 && ajxhttp.status==200) { 
    		document.getElementById("myDiv").innerHTML=ajxhttp.responseText;
    		}
    	  }
    	
    	var millisec = new Date().getTime();
    	
    	var parameters = "q=" + query + "&mst=" + millisec + ""; 
    	
    	if (method == 'post') { 
    		ajxhttp.open("POST", requrl, true); 
    		ajxhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
    		ajxhttp.setRequestHeader("Connection", "close");
    		ajxhttp.send(parameters); 
    	} 
    	else { 
    		var geturl = requrl + "?" + parameters; 
    		ajxhttp.open("GET", geturl, true); 
    		ajxhttp.send(); 
    	} 
    
    }
    
    // ----------------------------------------------------------------------- 
    </script>
    
    </head>
    
    <body>
    
    <div id="info">
    <h2>AJAX Request (GET + POST) Example</h2>
    <p>--- <a href="test.html">HOME (reset)</a> --- </p>
    </div>
    
    <br>
    <br>
    
    <form name="form1" method="post" action="">
    <p>(Test 1 = POST) <br> Eingabe: <input type="text" name="eingabe1" value=""> &nbsp; 
    <button type="button" onclick="ajax_request(document.form1.eingabe1.value,'post')">Change Content 1</button>
    </p>
    </form>
    
    <br>
    <br>
    
    <form name="form2">
    <p>(Test 2 = GET) <br> Eingabe: <input type="text" name="eingabe2" value=""> &nbsp; 
    <button type="button" onclick="ajax_request(document.form2.eingabe2.value,'get')">Change Content 2</button>
    </p>
    </form>
    
    <br>
    <br>
    
    <div id="myDiv" style="padding:8px; background:#EEEECC;">
      <p>... The AJAX Result  ...</p>
    </div>
    
    <br>
    <br>
    
    </body>
    </html>


    ... Textfeld-Eingabe per Ajax Senden + Ergebnis-Ausgabe (ohne Browser-Reload)
    ... Beispiele jeweils zu POST und GET ... siehe Javascript Funktion: ajax_request()
    ....Ausgabe: Inhalt der Ergebnis-Seite ajax_info.php (zum DEBUG ... siehe unten)


    Datei: ajax_info.php

    <?php 
    // ---------------------------------------------------- 
    
    $rmethod = $_SERVER["REQUEST_METHOD"]
    
    if ($rmethod == 'POST') { $debug = $_POST; } else { $debug = $_GET; }
    
    // ---------------------------------------------------- 
    
    print "<br />\n"; 
    print "<br />" . $rmethod . "\n"; 
    print "<br />\n"; 
    
    print "<pre style=\"margin:4px; padding:6px; background:#DEDEDE; text-align:left;\">\n"; 
    print_r($debug); 
    print "</pre>\n"; 
    
    print "<br />\n"; 
    print "<br />\n"; 
    
    // ---------------------------------------------------- 
    ?>


    diese komplette Ausgabe der "Ziel-Seite" (ajax_info.php) wird dann über JavaScript
    auf der test.html im Element
    <div id="myDiv">...</div>
    ausgegeben

    Anstatt DEBUG Ausgabe in der Datei, an welche die GET oder POST Anfragen gesendet wurden,
    kann man auf der "Ziel-Seite" (ajax_info.php) ja auch "mehr" mit den "empfangenen" Daten machen, also z.B. formartierte Ausgabe (HTML) oder weitere Daten zum Request abfragen oder speichern (MySQL) oder Weiterleitung oder etc.

  • in: Cache leeren automatisch?

    geschrieben von ktowxl

    versuch es mal mit .htaccess

    #### no-cache header #### 
    Header set Cache-Control "must-revalidate, no-store, no-cache, max-age=0, pre-check=0, post-check=0"
    Header set Pragma "no-cache"



    oder mit PHP

    <?php
    // ------------------------------------------- 
    
    ## header("Expires:  gmdate("D, d M Y H:i:s",time()-90000) . " GMT"); 
    ## header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
    
    header("Cache-Control: no-store, no-cache, must-revalidate");
    header("Cache-Control: post-check=0, pre-check=0", false);
    header("Pragma: no-cache");
    
    // ------------------------------------------- 
    ?>


    egal wie, der Plan ist auf jeden Fall den Header der Seite auf "no-cache" einstellen :)

  • in: Überprüfen ob in Textfeld Code oder Link vorhanden ist

    geschrieben von ktowxl

    zum Beispiel so

    mit einer Funktion: replace_links()
    .... entfernt bzw. ersetzt "[url=...]Links[/url]" und / oder "<a href=..>Links</a>" aus einem String
    .... entfernt bzw. ersetzt "BB URL LINKS" und / oder "A HREF LINKS" aus einem String

    <?php 
    // ----------------------------------------------------------------- 
    
    function replace_links ($string, $a=true, $b=true) { 
    
    $new_str = $string; 
    
    $new_str = stripslashes($new_str); 
    ## $new_str = html_entity_decode($new_str); 
    
    // -------------------------------------- 
    
    if ($a === true) { 
    	
    	$pattern1 = '/<a(.*?)<\/a>/is';
    	## $replace1 = ' '; 
    	$replace1 = ' <!-- A HREF LINK entfernt  --> '; 
    	$matches1 = array(); 
    	$res1 = preg_match_all($pattern1, $new_str, $matches1);
    	if ($res1) { 
    		foreach($matches1[0] as $mitem1) { 
    		$new_str = str_replace($mitem1,$replace1,$new_str); 
    		} 
    	} 
    
    } 
    
    // -------------------------------------- 
    
    if ($b === true) { 
    
    	$pattern2 = '/\[url(.*?)\[\/url\]/is';
    	## $replace2 = ' '; 
    	$replace2 = ' <!-- BB URL LINK entfernt  --> '; 
    	$matches2 = array(); 
    	$res2 = preg_match_all($pattern2, $new_str, $matches2);
    	if (!empty($matches2[0])) { 
    		foreach($matches2[0] as $mitem2) { 
    		$new_str = str_replace($mitem2,$replace2,$new_str); 
    		} 
    	} 
    	
    } 
    
    // -------------------------------------- 
    
    return $new_str; 
    
    }
    
    // ----------------------------------------------------------------- 
    
    
    
    // -------- Aufruf / Beispiel der Funktion:  --------- 
    
    
    // ----------------------------- 
    $gb_text1 = 'Hallo blabla [url]http://xyz.com[/url] und mehr Text <a href="http://abc.org">LINK1</a> Bla blablabla blabla [url=\'http://uvw.com\']KLICK[/url] oder auch <a href="http://def.org">LINK2</a> Blabla lalelu'; 
    $gb_text2 = 'Hallo blabla http://xyz.com und mehr Text [URL]http://bbb.ooo[/URL] Blabla lalelu hihihi'; 
    
    // ----------------------------- 
    $out_text1 = replace_links($gb_text1); 
    $out_text2 = replace_links($gb_text2); 
    
    // ----------------------------- 
    print "<br />\n"; 
    print "<br />\n"; 
    
    print "<p>--------- Vorher / Nachher: (1) --------- </p>\n"; 
    print "<p style=\"background:#EFEFEF;\">".htmlentities($gb_text1)."</p>\n"; 
    print "<p style=\"background:#EFEFEF;\">".htmlentities($out_text1)."</p>\n"; 
    
    // ----------------------------- 
    print "<br />\n"; 
    print "<br />\n"; 
    
    print "<p>--------- Vorher / Nachher: (2) --------- </p>\n"; 
    print "<p style=\"background:#EFEFEF;\">".htmlentities($gb_text2)."</p>\n"; 
    print "<p style=\"background:#EFEFEF;\">".htmlentities($out_text2)."</p>\n"; 
    
    // ----------------------------- 
    print "<br />\n"; 
    print "<br />\n"; 
    
    // ----------------------------------------------------------------- 
    ?>


    Ausgabe

    --------- Vorher / Nachher: (1) --------- 
    
    Hallo blabla [url]http://xyz.com[/url] und mehr Text <a href="http://abc.org">LINK1</a> Bla blablabla blabla [url='http://uvw.com']KLICK[/url] oder auch <a href="http://def.org">LINK2</a> Blabla lalelu
    
    Hallo blabla <!-- BB URL LINK entfernt --> und mehr Text <!-- A HREF LINK entfernt --> Bla blablabla blabla <!-- BB URL LINK entfernt --> oder auch <!-- A HREF LINK entfernt --> Blabla lalelu
    
    
    --------- Vorher / Nachher: (2) --------- 
    
    Hallo blabla http://xyz.com und mehr Text [URL]http://bbb.ooo[/URL] Blabla lalelu hihihi
    
    Hallo blabla http://xyz.com und mehr Text <!-- BB URL LINK entfernt --> Blabla lalelu hihihi


    durch "was" die Link-Codes oder BB-Codes ersetzt werden ...
    <!-- BB URL LINK entfernt -->

    kann man einfach mit $replace1 und $replace2 Variablen einstellen

Login zum Webhosting ohne Werbung!