php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 05.08.2006, 19:19  
Erfahrener Benutzer
 
Registriert seit: 28.11.2004
Beiträge: 305
nieselfriem ist zur Zeit noch ein unbeschriebenes Blatt
Standard Formularstring wird nicht verarbeitet

Hallo!

Ich abe ein String der von einem Formular kommt und diesem sollen die Umlaute umgewandelt werden. Nur leider funtr das nicht. Das heißt die Buchstaben belieben immer gleich. Wenn ich jedoch den Str. festlege dann funzt es.

PHP-Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" /><title>Pro BWL</title>
</head>
<body>
<?

require('checkdatasbwl.php');
require(
'setdatas.php');

$okname '([A-Za-z])[a-z]+(([ -])([A-Za-z])[a-z]+)*';
$regExname '^'.$okname.'$';
$okemailname '[a-zA-Z0-9]((\.|\-)?[a-zA-Z0-9])*';
$okemaildomain='[a-zA-Z]((\.|\-)?[a-zA-Z0-9])*';
$tdlemail='[a-zA-Z]{2,8}'
$regExmail='^('.$okemailname.')@('.$okemaildomain.')\.('.$tdlemail.')$';
$okplz='[0-9]{5}';
$regExPLZ='^'.$okplz.'$';
$okOrt='([A-Za-z])[a-z]+(([ -])([A-Za-z])[a-z]+)*';
$regExOrt '^'.$okOrt.'$';
$submit=$_POST['submit'];
$name=$_POST['name'];
$vorname=$_POST['vorname'];
$strasse=$_POST['strasse'];
$hausnr=$_POST['hausnr'];
$plz=$_POST['plz'];
$ort=$_POST['ort'];
$email=$_POST['email'];
$fehler=0;

$checkdata= new checkdatas;
$setdata=new setdatas;

if (
$submit)
{
    
//$z="öä   ";
    
$p=str_replace(array('ö','ä','ü','Ö','Ä','Ü','ß'),array('oe','ae','ue','Oe','Ae','Ue','ss'),$strasse);
echo 
"p=$p";
wenn ich nun anstatt $strasse $z angebe funktioniert dies ohne probleme, sonst bleibt der String mit Umlauten. Nur wieso?

Gruß niesel
nieselfriem ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 05.08.2006, 19:23  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Du benutzt also register_globals = on?
Abschalten und mit $_GET oder $_POST auf deine Variablen zugreifen...

Ansonsten kann ich keinen Fehler feststellen:
PHP-Code:
<?php
$strasse 
"Schützenstraße";
$p=str_replace(array('ö','ä','ü','Ö','Ä','Ü','ß'),array('oe','ae','ue','Oe','Ae','Ue','ss'),$strasse);
var_dump($p);
?>
Mach mal ein var_dump($strasse). Was steht da drin?

Und wozu das ganze?
Zergling-new ist offline  
Alt 05.08.2006, 19:26  
Erfahrener Benutzer
 
Registriert seit: 28.11.2004
Beiträge: 305
nieselfriem ist zur Zeit noch ein unbeschriebenes Blatt
Standard

nein verwende ich verwender reigter_global=off, habe doch in den zeilen
PHP-Code:
$submit=$_POST['submit'];
$name=$_POST['name'];
$vorname=$_POST['vorname'];
$strasse=$_POST['strasse'];
$hausnr=$_POST['hausnr'];
$plz=$_POST['plz'];
$ort=$_POST['ort'];
$email=$_POST['email']; 
die Variablen zugeordnet

gru0 niesel
nieselfriem ist offline  
Alt 05.08.2006, 19:30  
Gast
 
Beiträge: n/a
Standard

Richtig debuggen
1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(E_ALL);
3. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
4. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde (oder auch nicht).
5. Schritt 3 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
6. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
7. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
8. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.

Die Ausgaben per echo kann man sich ersparen, in dem man einen Debugger benutzt, was eigentlich selbstverständlich sein sollte.

Gruß
phpfan
 
Alt 05.08.2006, 20:15  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Zitat:
habe doch in den zeilen die Variablen zugeordnet
Langsam weiß ich warums in Deutsch immer nur zu ner 3 gelangt hat. Ein As warst du darin aber scheinbar auch nicht, oder warum bleibt meine 2. Frage unbeantwortet?
Zergling-new ist offline  
Alt 06.08.2006, 12:01  
Erfahrener Benutzer
 
Registriert seit: 28.11.2004
Beiträge: 305
nieselfriem ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Wenn ich z.B. Ölstr. nehme ensteht bei vardump

string(7) "Ölstr."

Gruß georg
nieselfriem ist offline  
Alt 06.08.2006, 12:51  
Gast
 
Beiträge: n/a
Standard

Du gibst ja auch charset=utf-8 an.
Damit wird das Ö nicht mehr als ein byte übertragen sondern als zwei (195,150).
Und das Skript ist vermutlich nicht in utf-8 sondern vielleicht iso-8859-1 oder sowas in der Art gespeichert.
Versuch es mal (nur als Test) mit
PHP-Code:
$p=str_replace(array('ö','ä','ü','Ö','Ä','Ü','ß'),array('oe','ae','ue','Oe','Ae','Ue','ss'),$strasse); 
(nicht tippen sondern kopieren)
 
Alt 06.08.2006, 20:36  
Erfahrener Benutzer
 
Registriert seit: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse:
Fortgeschritten
Basti
Standard

Hi.

Ja, es sollte reichen, die Datei einfach UTF-8 kodiert anzulegen bzw. eben die Umlaute UTF-8-kodiert in den Code zu schreiben. Allerdings ist es oft hilfreich, Zeichen außerhalb des ASCII-Satzes komplett aus dem Quellcode rauszuhalten, die Zeichen also mit chr() zu kodieren, um eben solche Fehler zu vermeiden.

Basti
Basti ist offline  
Alt 07.08.2006, 16:17  
Erfahrener Benutzer
 
Registriert seit: 28.11.2004
Beiträge: 305
nieselfriem ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Jupp! Das war das Problem "utf-8"! Ich habe die Kodierung geändert und seit dem funzt es einwandrei.

Danke an all die jenigen die mir mit hilfreichen Tipps weiter geholfen haben!

Gruß niesel
nieselfriem ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Bestimmten Befehl der HTML verarbeitet Gokel PHP Tipps 2008 19 16.07.2008 00:13
% in SQL Anweisungen die durch vsprintf() verarbeitet werden lindner PHP Tipps 2007 4 01.08.2007 14:04
Formular wird nicht verarbeitet Netdeus Server, Hosting und Workstations 4 11.04.2006 12:04
[Erledigt] VARIABLEN WERDEN NICHT RICHTIG VERARBEITET!!!! HILFE PHP Tipps 2005-2 6 02.07.2005 18:32
txt-Datei wird nicht verarbeitet PHP Tipps 2005 6 01.06.2005 15:38
Anfängerproblem .php-dateien werden nicht verarbeitet PHP Tipps 2004 2 11.06.2004 11:51

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
formularstring ansehen html, php \strasse\ a-z, php verarbeitet strings mit umlauten nicht, umlautproblem ausschalten aus ü gleich ue machen php

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:15 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.