tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
11
ZUGRIFFE
397
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    teamfake teamfake ist offline Mitglied Bronze
    Registriert seit
    Jun 2007
    Beiträge
    30
    Hallo zusammen,
    ich bin gerade dabei mir ein Forum zu basteln, aber ich stehe gerade vor einem Problem. Ich lasse immer die Daten des Datensatze die den entsprechenden Postname enthält. Also z.B. "index.php?das ist der Postname". Leider wird das Leerzeichen nich einfach ausgelassen sondern wird so im Browser dargestellt:
    Code :
    1
    
    %20
    Also dann wird der Code im Browser so:
    Code :
    1
    
    index.php?das%20ist%20der%20Postname
    In dem Forum von tutorials.de ersetzt da das Leerzeichen immer ein Bindestrich. Wie geht das? Weil das wäre mir eine Größe hilfe, weil mit diesem "%20" geht das nicht in der Datenbank und wenn ich es mit Leerzeichen mach auch nicht. Bitte um Hilfe

    Danke schonmal im Vorraus
    TF
     

  2. #2
    Avatar von Loomis
    Loomis Loomis ist offline Mitglied Bunt
    Registriert seit
    Jul 2002
    Ort
    Aschaffenburg
    Beiträge
    1.538
    Versuch das mal mit urlencode()

    Gibt statt Bindestrich ein Plus bei Leerzeichen.
     

  3. #3
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Zitat Zitat von teamfake Beitrag anzeigen
    In dem Forum von tutorials.de ersetzt da das Leerzeichen immer ein Bindestrich. Wie geht das?
    PHP-Code:
    // ersetzt Leerzeichen durch Bindestriche
    str_replace(' ''-'$str
     
    Markus Wulftange

  4. #4
    teamfake teamfake ist offline Mitglied Bronze
    Registriert seit
    Jun 2007
    Beiträge
    30
    Hallo,
    also, wenn ich ein Formular habe, dann muss ich ja den Datensatz in zwei Tabellen speichern, also in eine mit und in eine ohne Leerzeichen. Das Problem ist dabei nur, wie
    Weil mein bischeriges Eintragformular sieht so aus:
    PHP-Code:
    $sql="INSERT INTO threads " .
    "(Content, user_id, URLAnhang) VALUES ('$_POST[Thread]', " .
    "'$_POST[user_id]', '$getAnhang')"
    Und wie soll ich das dann machen, weil ich kann in $_POST[Thread] diese Funktion ja nicht einbauen, weil sonst wäre es ja in 2 Tabellenfelder ohne Leerzeichen

    Danke schonmal im Vorraus
    TF
     

  5. #5
    teamfake teamfake ist offline Mitglied Bronze
    Registriert seit
    Jun 2007
    Beiträge
    30
    sorry, Doppelpost. Bitte diesen löschen

    Danke!
    TF
     

  6. #6
    Avatar von Loomis
    Loomis Loomis ist offline Mitglied Bunt
    Registriert seit
    Jul 2002
    Ort
    Aschaffenburg
    Beiträge
    1.538
    Wieso 2 Tabellen?

    Nimm das Beispiel von Gumbo.

    Du bekommst eine URL aus dem Formular und wandelst das um:

    PHP-Code:
    $str $_POST['url'];
    $urlstring str_replace(' ''-'$str); 
    Das speicherst du in die Datenbank, in _eine_ Spalte. Also:

    PHP-Code:
    $sql 'INSERT INTO threads (Content, user_id, URLAnhang) VALUES (' .$_POST['thread']. ', ' .$_POST['user_id'].', ' .$urlstr.' )'
    Und auslesen dann einfach andersrum

    PHP-Code:
    $printurl str_replace('-'' '$url_aus_db); 
    * ohne Gewähr das alles
     

  7. #7
    teamfake teamfake ist offline Mitglied Bronze
    Registriert seit
    Jun 2007
    Beiträge
    30
    Also ich habe es jetzt mal auf eigene Faust probiert, aber das ging leider in die Hose

    PHP-Code:
    $ThreadLeerzeichen $_POST[Thread];
    $ThreadLeerzeichen str_replace(" ""-"$ThreadLeerzeichen);
    $sql="INSERT INTO threads " .
    "(Content, user_id, URLAnhang, Content_Leerzeichen) VALUES ('$_POST[Thread]', " .
    "'$_POST[user_id]', '$getAnhang', '$ThreadLeerzeichen')";
    if (
    mysql_query($sql)) {
      echo 
    "<p>Dateneingabe erfolgreich!<script language=\"javascript\">location.href=\"threads.php?$getAnhang\"</script></p>";
    } else {
      echo 
    "<p>Dateneingabe nicht erfolgreich!</p>";

    Da werden die Leerzeichen immer noch nicht umgesetzt

    TF
     

  8. #8
    sim4000 sim4000 ist offline Mitglied Bronze
    Registriert seit
    Dec 2007
    Beiträge
    39
    Ich nutze auf meiner Seite mod_rewrite Adressen.
    Da hab ich mir folgende Methode gebastelt, um Titel "Linktauglich" zu machen:
    PHP-Code:
    <?php
    function conlink($return) {
       
    $uml = array("ä""ü""ö""ß"); $convert = array("ae""ue""oe""sz");
       
    $return str_replace($uml$convertstrtolower($info['ds']['title'][0])); // Umlaute umwandeln und Alle Buchstaben in kleine Umwandeln
       
    $return preg_replace("/[^a-zA-Z0-9_]/""-"$return); // Alle Zeichen außer Buchstaben und Zahlen ausfiltern
       
    return $return;
    }
    ?>
    Sieht dann so aus: http://sim4000.pudelwerfer.de/blog,1...3,view,35.html
    Geändert von sim4000 (08.02.08 um 14:20 Uhr)
     
    Visit: www.sim4000.de
    Ein Ball rollt um die Ecke und fällt um
    Intelligenz ist, wenn man weiß, dass man doof ist.

  9. #9
    teamfake teamfake ist offline Mitglied Bronze
    Registriert seit
    Jun 2007
    Beiträge
    30
    Und wie müsste das dann bei mir heißen? Etwa so?:
    PHP-Code:
    <?php
    function conlink($ThreadLeerzeichen) {
       
    $ThreadLeerzeichen = array("ä""ü""ö""ß"); $convert = array("ae""ue""oe""sz");
       
    $ThreadLeerzeichen str_replace($uml$convertstrtolower($info['ds']['title'][0])); // Umlaute umwandeln und Alle Buchstaben in kleine Umwandeln
       
    $ThreadLeerzeichen preg_replace("/[^a-zA-Z0-9_]/""-"$return); // Alle Zeichen außer Buchstaben und Zahlen ausfiltern
       
    return $ThreadLeerzeichen;
    }
    ?>
    Würde das so stimmen? (Ich glaube nämlich eher nicht :P )

    TF
     

  10. #10
    sim4000 sim4000 ist offline Mitglied Bronze
    Registriert seit
    Dec 2007
    Beiträge
    39
    Das was du da gemacht hast ist quatsch.
    So muss es ausssehen:
    PHP-Code:
    <?php
    function conlink($return) {
       
    $uml = array("ä""ü""ö""ß"); $convert = array("ae""ue""oe""sz");
       
    $return str_replace($uml$convertstrtolower($return)); // Umlaute umwandeln und Alle Buchstaben in kleine Umwandeln
       
    $return preg_replace("/[^a-zA-Z0-9_]/""-"$return); // Alle Zeichen außer Buchstaben und Zahlen ausfiltern
       
    return $return;
    }
    ?>
    Hier eine Demo: http://sim4000.pudelwerfer.de/temp/urlcon.php

    Wenn du das so machst,
    PHP-Code:
    <?php
    function conlink($ThreadLeerzeichen) {
       
    $ThreadLeerzeichen = array("ä""ü""ö""ß"); $convert = array("ae""ue""oe""sz");
       
    $ThreadLeerzeichen str_replace($uml$convertstrtolower($info['ds']['title'][0])); // Umlaute umwandeln und Alle Buchstaben in kleine Umwandeln
       
    $ThreadLeerzeichen preg_replace("/[^a-zA-Z0-9_]/""-"$return); // Alle Zeichen außer Buchstaben und Zahlen ausfiltern
       
    return $ThreadLeerzeichen;
    }
    ?>
    Wird ja die Var die Convertiert werden soll mit Liste der Umlaute überschrieben. Außerdem war in dem str_replace noch eine falsche Variable, die ich in meiner Version hier in diesem Beitrag korrigiert hab.
    Geändert von sim4000 (08.02.08 um 14:32 Uhr)
     
    Visit: www.sim4000.de
    Ein Ball rollt um die Ecke und fällt um
    Intelligenz ist, wenn man weiß, dass man doof ist.

  11. #11
    teamfake teamfake ist offline Mitglied Bronze
    Registriert seit
    Jun 2007
    Beiträge
    30
    Das funktioniert leider auch nicht -.-

    Aber könnte man vielleicht auch einfach den Text in MD5 machen und den dann in der URL verschlüsselt wiedergeben und so auf der Seite ohne Verschlüsselung? Geht das?

    MfG,
    TF

    Edit: Ich glaube es funktioniert! Habe es jetzt mit "ereg_replace" proboert und es klappt
    Geändert von teamfake (08.02.08 um 16:14 Uhr)
     

  12. #12
    Avatar von Dörti.Hermi
    Dörti.Hermi Dörti.Hermi ist offline Mitglied Gold
    Registriert seit
    Aug 2007
    Ort
    Österreich
    Beiträge
    201
    du musst mit deinen hochkommas aufpassen, die hochkommas sind nicht korrekt geöffnet bzw. geschlossen. probiers mal so aus:

    PHP-Code:
    $ThreadLeerzeichen $_POST[thread];
    $ThreadLeerzeichen str_replace(" ""-"$ThreadLeerzeichen);
    $sql="INSERT INTO threads " .
    "(Content, user_id, URLAnhang, Content_Leerzeichen) VALUES ('".$_POST[thread]."', " .
    "'".$_POST[user_id]."', '".$getAnhang."', '".$ThreadLeerzeichen."')";
    if (
    mysql_query($sql)) {
      echo 
    "<p>Dateneingabe erfolgreich!<script language=\"javascript\">location.href=\"threads.php?$getAnhang\"</script></p>";
    } else {
      echo 
    "<p>Dateneingabe nicht erfolgreich!</p>";

    und die weiterleitung mit js zu machen ist eigentlich nicht die feine englische art. was denn wenn einer js deaktiviert hat? mit "header();" gehts sicherer.
     

Ähnliche Themen

  1. Antworten: 0
    Letzter Beitrag: 11.01.11, 21:40
  2. Antworten: 4
    Letzter Beitrag: 22.03.06, 20:50
  3. Antworten: 0
    Letzter Beitrag: 06.10.04, 14:03
  4. PROBLEM! Pinnacle 2 GB Begrenzung Windows 2000 DC 50 PROBLEM!
    Von hennym im Forum Videoschnitt, Videotechnik & -produktion
    Antworten: 6
    Letzter Beitrag: 17.09.03, 22:09
  5. Antworten: 6
    Letzter Beitrag: 13.06.02, 12:29