php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 20-03-2005, 16:17
skalu
 Member
Links : Onlinestatus : skalu ist offline
Registriert seit: May 2003
Ort: Wien
Beiträge: 362
skalu ist zur Zeit noch ein unbeschriebenes Blatt
skalu eine Nachricht über ICQ schicken
Standard trim($_POST) möglich?

Hi Leute,

folgende Frage: Ich habe ein Script, bei dem mal prinzipiell alle Semikolon ( ; ) im $_POST-Array durch ein Komma ( , ) ersetzt wird. Das mache ich so:

PHP-Code:
$_POST str_replace(";",",",$_POST); 
Nun würde ich gerne auch alle Leerzeichen entfernen, aber bei
PHP-Code:
$_POST trim($_POST); 
bekomme ich die Fehlermeldung: Notice: Array to string conversion in ..../post_replace.php on line 4

Ich nehme an, dass trim eine reine Stringfunktion ist und daher nicht auf das $_POST-Array anwendbar ist. Aber wieso funkt dann str_replace?

Ich habe jetzt im Forum folgenden Code gefunden, daher anscheinend mein Problem löst:

PHP-Code:
while (list($name$value) = each($_POST))
{
    $
$name addslashes(trim($value));

Dieser Code liest doch einfach jeden Eintrag in $_POST aus, entfernt die Leerzeichen und wendet addslashes an und speichert diese dann wieder zurück ins Array und ich kann dann ganz normal mit den veränderten Werten arbeiten, oder?

Danke, Lukas
Mit Zitat antworten
freelancermap.de - IT Projektvermittlung für Selbständige und Freiberufler
  #2 (permalink)  
Alt 20-03-2005, 16:21
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Wenn ich jetzt wüsste, was dein Problem ist? Anscheinend konntest du es doch mittels der Suchfunktion beheben.
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #3 (permalink)  
Alt 20-03-2005, 16:24
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Code:
mixed str_replace ( mixed search, mixed replace, mixed subject )
string trim ( string str )
ist der unterschied klar?
Mit Zitat antworten
  #4 (permalink)  
Alt 20-03-2005, 16:28
skalu
 Member
Links : Onlinestatus : skalu ist offline
Registriert seit: May 2003
Ort: Wien
Beiträge: 362
skalu ist zur Zeit noch ein unbeschriebenes Blatt
skalu eine Nachricht über ICQ schicken
Standard Re: trim($_POST) möglich?

Hi TobiaZ!

Ich wollte nur den Grund für diesen Notice-Fehler nachfragen.

Zitat:
Original geschrieben von skalu
Ich nehme an, dass trim eine reine Stringfunktion ist und daher nicht auf das $_POST-Array anwendbar ist. Aber wieso funkt dann str_replace?
--> ist aber von penizilin beantwortet worden

Außerdem wollte ich wissen, ob ich das richtig verstanden habe:

Zitat:
Original geschrieben von skalu
Dieser Code liest doch einfach jeden Eintrag in $_POST aus, entfernt die Leerzeichen und wendet addslashes an und speichert diese dann wieder zurück ins Array und ich kann dann ganz normal mit den veränderten Werten arbeiten, oder?
Oder hat das - abgesehen vom trim() und addslashes() - noch weitere Auswirkungen auf meine Variablen, die ich mit den Werten aus z.B. $_POST["test"] hole...

@penizilin
mixed bedeutet also, dass es auf Strings und Arrays anwendbar ist, richtig?

Danke schon mal,
Lukas
Mit Zitat antworten
  #5 (permalink)  
Alt 20-03-2005, 16:31
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

so lange du nur trim und addslashes anwendest, hat es auch nur den einfluss.

mixed ist eben mixed. könnte theoretisch auch z.b. int sein, auch wenns in deinem fall keinen sinn machen würe.
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #6 (permalink)  
Alt 20-03-2005, 16:48
skalu
 Member
Links : Onlinestatus : skalu ist offline
Registriert seit: May 2003
Ort: Wien
Beiträge: 362
skalu ist zur Zeit noch ein unbeschriebenes Blatt
skalu eine Nachricht über ICQ schicken
Standard

okay, danke euch! Eine Frage hätte ich aber noch:

Es ist seltsamerweise ein Unterschied, ob ich mit dieser While-Schleife nun das trim durchführe, oder direkt die Variable mit dem Wert aus $_POST["variable"] trime ($var = $_POST["variable"]; )

Bei der While Schleife wird aus " test " --> 'test ' (also mit einem Leerzeichen am Ende und bei der Variablen direkt ($var = trim($var); ) bekomme ich 'test' (ohne irgendein Leerzeichen.

Was könnte da der Grund sein?

Greetz Lukas
Mit Zitat antworten
  #7 (permalink)  
Alt 20-03-2005, 17:07
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

nichts verstanden, zeig mal den code.
Mit Zitat antworten
  #8 (permalink)  
Alt 20-03-2005, 17:13
skalu
 Member
Links : Onlinestatus : skalu ist offline
Registriert seit: May 2003
Ort: Wien
Beiträge: 362
skalu ist zur Zeit noch ein unbeschriebenes Blatt
skalu eine Nachricht über ICQ schicken
Standard

ok

Die ' bei den Ausgaben dienen nur dazu, die Leerzeichen sichtbar zu machen.

Mit diesem Code bekomme ich, wenn der Wert ' test ' in ein Textfeld eingegeben wurde, 'test ' (also mit einem Leerzeichen am Ende).

PHP-Code:
while (list($name$value) = each($_POST))
{
    $
$name trim($value);
}

--> 
$var $_POST["variable"]; 
Mit diesem Code erhalte ich diesen String, wenn ich $var ausgebe: 'test' (ohne Leerzeichen)

PHP-Code:
$var $_POST["variable"];
$var trim ($var); 
Ich hoffe, jetzt habe ich's verständlich genug erklärt

Greetz Lukas
Mit Zitat antworten
  #9 (permalink)  
Alt 20-03-2005, 17:30
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

klingt nach unsinn. trim ist trim, und kann nich die hälfte der arbeit verrichten. das wäre zauberei.
Mit Zitat antworten
  #10 (permalink)  
Alt 20-03-2005, 18:13
Abraxax
  THE REAL HAXE (Administrator)
Links : Onlinestatus : Abraxax ist offline
Registriert seit: Jul 2002
Ort: neuss.nrw.de
Beiträge: 22.623
Abraxax befindet sich auf einem aufstrebenden Ast
Standard

@skalu

die ' sind schon im string vor dem trim() oder erst zur ausgabe?
__________________
INFO: Erst suchen, dann posten! | MANUAL(s): PHP | MySQL | HTML/JS/CSS | NICE: GNOME Do | TESTS: Gästebuch | IM: Jabber.org |


Mit Zitat antworten
  #11 (permalink)  
Alt 20-03-2005, 19:17
skalu
 Member
Links : Onlinestatus : skalu ist offline
Registriert seit: May 2003
Ort: Wien
Beiträge: 362
skalu ist zur Zeit noch ein unbeschriebenes Blatt
skalu eine Nachricht über ICQ schicken
Standard

@penizilin

ist aber so, tut mir leid

Hier mal der Source-Code, vielleicht hat's da etwas!

post_replace.php

<html>
<head>
<meta http-equiv="Content-Language" content="de">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>test 1</title>
</head>
<body>
<form method="POST" action="post_replace_do.php">
<p>POST REPLACE</p>
<p><input type="text" name="textfeld1" size="20"></p>
<p><input type="submit" value="Absenden" name="B1"><input type="reset" value="Zurücksetzen" name="B2"></p>
</form>
</body>
</html>

post_replace_do.php

<?

while (list($name, $value) = each($_POST))
{
$$name = trim($value);
}

$var = $_POST["textfeld1"];

?>
<html>
<head>
<meta http-equiv="Content-Language" content="de">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>test 2</title>
</head>
<body>
Der Text lautet: '<? echo $var; ?>'
</body>
</html>

@Abraxax

hmm, also die Striche mache ich erst in der Ausgabe, siehe Der Text lautet: '<? echo $var; ?>'

Anscheinend mache ich das etwas falsch...

Tnx, Lukas
Mit Zitat antworten
  #12 (permalink)  
Alt 20-03-2005, 19:26
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
ist aber so, tut mir leid
ist es nicht.

du legst neue variablen an, veränderst dabei kein bit an dem array $_POST. lässt dir zum schluss $_POST["textfeld1"]; ausgeben und wunderst dich, dass es nichts genützt hat.

Code:
Der Text lautet: '<? echo $textfeld1; ?>'
Mit Zitat antworten
  #13 (permalink)  
Alt 20-03-2005, 19:31
Abraxax
  THE REAL HAXE (Administrator)
Links : Onlinestatus : Abraxax ist offline
Registriert seit: Jul 2002
Ort: neuss.nrw.de
Beiträge: 22.623
Abraxax befindet sich auf einem aufstrebenden Ast
Standard

sinnfrei (von dir)
PHP-Code:
while (list($name$value) = each($_POST))
{
$
$name trim($value);

sinnvoll(er)
PHP-Code:
while (list($name$value) = each($_POST))
{
if (!
is_array($value))
  
$_POST[$name] = trim($value);

__________________
INFO: Erst suchen, dann posten! | MANUAL(s): PHP | MySQL | HTML/JS/CSS | NICE: GNOME Do | TESTS: Gästebuch | IM: Jabber.org |


Mit Zitat antworten
  #14 (permalink)  
Alt 20-03-2005, 19:35
skalu
 Member
Links : Onlinestatus : skalu ist offline
Registriert seit: May 2003
Ort: Wien
Beiträge: 362
skalu ist zur Zeit noch ein unbeschriebenes Blatt
skalu eine Nachricht über ICQ schicken
Standard

Okay, jetzt verstehe ich. Ich habe in meiner ersten Antwort auf meinen Request nachgefragt, ob die Werte direkt im Array geändert werden.

Dieser Code liest doch einfach jeden Eintrag in $_POST aus, entfernt die Leerzeichen und wendet addslashes an und speichert diese dann wieder zurück ins Array und ich kann dann ganz normal mit den veränderten Werten arbeiten, oder?

Und ich dachte, dass ich dann trotzdem ganz normal den Wert in einer Variablen speichern kann, also mit $var = $_POST["textfeld1"]; , weil der Wert von "textfeld1" ja direkt bearbeitet wurde.

Das war wohl ein Missverständnis, sorry

@Abraxax

Ja, genau! Das war mein Fehler. So funktioniert es wunderbar! Vielen Dank!

Greetz Lukas
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

PHP Marktplatz-Software
PHP Marktplatz-SoftwareEs hat sich viel getan! Die neue Version 7.5.9 unserer PHP Marktplatz-Software ebiz-trader steht ab sofort zur Verfügung.

28.10.2019 | Berni

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni


 

Aktuelle PHP Scripte

Formmailer v1.7.0 Bootstrap 4

Formmailer v1.7.0 Bootstrap wurde extra für Bootstrap entwickelt. Mit Bootstrap kann man schnell und einfach kleine oder große Projekte entwickeln, die auf Geräten in allen erdenklichen Formen funktionieren.

16.04.2020 arne-home | Kategorie: PHP/ Formular
Upload v1.1.0 Bootstrap

Mit dem PHP - Uploadscript kann man schnell und einfach Bilder und Dateien auf den Webserver hochladen.

16.04.2020 arne-home | Kategorie: PHP/ File
Microweber CMS

Open source, drag and drop website builder

13.01.2020 Berni | Kategorie: HTML5/ EDITOR
 Alle PHP Scripte anzeigen

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