SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Der CSS-Problemlöser

Der CSS-Problemlöser zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen
Hilfe Community Kalender Heutige Beiträge Suchen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #11  
Alt 18.01.2004, 22:39:48
Olaf Olaf ist offline
Anfänger
 
Registriert seit: Jun 2003
Beiträge: 30
Lesen bildet!
Habe nun das gefunden:
Logische Operatoren
$a || $b Oder TRUE wenn $a oder $b TRUE ist

Dann ist das
if ($name == "dein Name" OR "" || $name == "Dein Name, bitte!")
frei übersetzt, ist $name (dein Name) oder () dann mach hier weiter. Sollte aber $name (Dein Name, bitte!) sein dann mach auch hier weiter. Ist $name irgendwas (anderes) bleib unverändert. Also alles logisch, richtig!
Hat denn das Nachteile?
Könnte ich auch beide male OR schreiben, oder auch ||? Oder zählt es mir dann den Errorzähler hoch?
Oder versteh ich es immer noch nicht?

Oder, OR, ||, alles Banane, denn es läuft ja? ;-)

Grüße Olaf
Mit Zitat antworten
  #12  
Alt 18.01.2004, 22:44:36
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
Zitat:
Original geschrieben von Olaf
ich glaub jetzt versteh ich was du meinst. Wer reden hier nicht von dem Selben ;-)
Oh doch. Dein Script, welches ein Formular auswertet, funktioniert nicht.
Zitat:
$name ist doch schon übergeben, sprich nicht leer. Es ist definiert
$value_name = dein Name
<input...value=".$value_name."...>
Alles gepostete kommt nach if ($submit)
Welchem steinalten Handbuch entnimmst Du diese Vermutungen?

Alten Code mit neuen PHP-Versionen benutzen
http://www.php.net/manual/de/tutorial.oldcode.php

11.20. Warum funktionieren meine Formulare nicht?
http://www.dclp-faq.de/q/q-formular-...r-globals.html
Mit Zitat antworten
  #13  
Alt 18.01.2004, 22:50:07
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
Zitat:
Original geschrieben von Olaf
Oder, OR, ||, alles Banane, denn es läuft ja? ;-)
Falsch. PHP beherrscht nicht nur 'Punktrechnung geht vor Strichrechnung'.

Wenn Du schreibst
if ($var1 == 'irgendwas' || $var2 == 'wasanderes')
dann verknüpft PHP aufgrund der höheren Bindung 'irgendwas' ODER $var2, vergleicht das Ergebnis mit $var1 und das Ergebnis mit 'wasanderes'

Wenn Du schreibst
if ($var1 == 'irgendwas' OR $var2 == 'wasanderes')
vergleicht PHP $var1 mit 'irgendwas', vergleicht $var2 mit 'wasanderes' und verknüpft beide Zwischenergebnisse mit ODER.
Mit Zitat antworten
  #14  
Alt 18.01.2004, 23:27:55
Olaf Olaf ist offline
Anfänger
 
Registriert seit: Jun 2003
Beiträge: 30
Mensch ihr habt ja Geduld mit mir! Herzlichen Dank.
Aber nun sehe ich überhaupt nicht mehr durch. Was sagt mir das ganze nun? Sollte ich einfach
if ($name == "dein Name" OR "" OR "Dein Name, bitte!")
schreiben?

@meikel, meine Vermutung ist keine, ich hab mir zum Test $name per echo ausgeben lassen, da erscheint wenn ich am Formular nichts verändere (dein Name) wenn ich was eintrage (das was ich eintrage)

Schaut doch mal die URL weiter oben, ist wirklich das Script dahinter.

Für heut erst mal Schluß, danke, Olaf
Mit Zitat antworten
  #15  
Alt 18.01.2004, 23:45:23
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
Zitat:
Original geschrieben von Olaf
Aber nun sehe ich überhaupt nicht mehr durch. Was sagt mir das ganze nun? Sollte ich einfach
if ($name == "dein Name" OR "" OR "Dein Name, bitte!")
schreiben?
Nein. Du sollst schreiben
Code:
if (!isset($_REQUEST['name']) # 'name' nicht gesetzt
          OR empty($_REQUEST['name']) # 'name' gesetzt aber leer
          OR strtolower($_REQUEST['name']) == 'dein name, bitte')
              # name in kleine Buchstaben umwandeln und mit dem 
              # default Wert vergleichen
Zitat:
Schaut doch mal die URL weiter oben, ist wirklich das Script dahinter.
Sakra! Scripts, die auf globalen Uservariablen basieren, gucke ich mir nicht an. Weder als HTML Ausgabe noch als Scripttext. Und von Scripts, die Uservariable ungeprüft in SQL Querys verwenden, krieg ich Pickel, auch wenn es gar nicht meine DB ist, die so geschrottet werden kann.
Mit Zitat antworten
  #16  
Alt 19.01.2004, 00:46:03
chris17 chris17 ist offline
Senior Member
 
Registriert seit: Apr 2003
Alter: 57
Beiträge: 1.236
...wenn ich das nochmal so lese, hm....
Zitat:
Ich bräuchte ist $name "Dein Name" oder "" (also Leer) dann "Dein Name, bitte!"
Hast Du die erste Antwort von Progman überhaupt mal ausprobiert?
PHP-Code:
# Teste das mal
$name ""# <- Das habe ich extra da hingeschrieben...
if ($name == "dein Name" OR "" || $name == "Dein Name, bitte!") {
    
# ... damit Du erkennst, dass hier nicht abgezweigt wird.
    # Daraus folgt: Die Abfrage bringt's einfach net.
    
echo 'Gugug';
    
$errors++;
    
$errormsg["name"] = "Dein Name, bitte!";

Mit Zitat antworten
  #17  
Alt 19.01.2004, 10:41:47
Olaf Olaf ist offline
Anfänger
 
Registriert seit: Jun 2003
Beiträge: 30
So, nun hab ich es endlich begriffen! ;-)
Bei mir war natürlich Java-Script aktiviert und deshalb $name nie leer, also hatte ich den Eindruck es geht. Sorry, dass ich so dumm bin.

Nu noch eine Frage, da so wie es jetzt ist vorkommen kann das mal (dein Name) oder (dein Name, bitte!) übergeben wird, wie kann ich nicht mit == vergleichen sondern nur auf enthält (dein name)? Das hab ich jetzt so in der PHP:
PHP-Code:
    if (!isset($_REQUEST['name']) # 'name' nicht gesetzt
          
OR empty($_REQUEST['name']) # 'name' gesetzt aber leer
          
OR strtolower($_REQUEST['name']) == 'dein name'
Ach ne doch noch eine, wegen "von Scripts, die Uservariable ungeprüft in SQL Querys verwenden, krieg ich Pickel", sollte man in den iserts, statt
VALUES ('$name','$mail',........)
VALUES ('$_REQUEST['name']','$_REQUEST['mail'],.....)
verwenden? Genau so geschrieben?

Vielen Dank, Olaf
Mit Zitat antworten
  #18  
Alt 19.01.2004, 17:20:57
chris17 chris17 ist offline
Senior Member
 
Registriert seit: Apr 2003
Alter: 57
Beiträge: 1.236
Zitat:
Original geschrieben von Olaf
Nu noch eine Frage, da so wie es jetzt ist vorkommen kann das mal (dein Name) oder (dein Name, bitte!) übergeben wird, wie kann ich nicht mit == vergleichen sondern nur auf enthält (dein name)?
z.B. mit stristr() -> http://www.selfphp.info/funktionsref...en/stristr.php
PHP-Code:
$str_vorgabe "Dein Name, bitte!";
$str1        "dein nAmE, biTTe!";
$str2        "DEin naMe";
$str3        "bItTe ein name";

if (
stristr($str_vorgabe$str1)) {
    echo 
'$str1:'.$str1.' -> Bingo';
}
else {
    echo 
'$str1:'.$str1.' -> Nix Bingo';
}
echo 
'<hr>';
if (
stristr($str_vorgabe$str2)) {
    echo 
'$str2:'.$str2.' -> Bingo';
}
else {
    echo 
'$str2:'.$str2.' -> Nix Bingo';
}
echo 
'<hr>';
if (
stristr($str_vorgabe$str3)) {
    echo 
'$str3:'.$str3.' -> Bingo';
}
else {
    echo 
'$str3:'.$str3.' -> Nix Bingo';

Beachte das stristr() strtolower() überflüssig macht.
Mit Zitat antworten
  #19  
Alt 19.01.2004, 17:46:11
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
Zitat:
Original geschrieben von Olaf
Sorry, dass ich so dumm bin.
Einspruch. Du bist nicht dumm - sonst würde ich zumindest mich nicht mit Dir abgeben. Du kannst allerdings manchmal nicht lesen, wenn Dir jemand einen Tip gibt.

Zitat:
Nu noch eine Frage, da so wie es jetzt ist vorkommen kann das mal (dein Name) oder (dein Name, bitte!) übergeben wird, wie kann ich nicht mit == vergleichen sondern nur auf enthält (dein name)? Das hab ich jetzt so in der PHP:
PHP-Code:
    if (!isset($_REQUEST['name']) # 'name' nicht gesetzt
          
OR empty($_REQUEST['name']) # 'name' gesetzt aber leer
          
OR strtolower($_REQUEST['name']) == 'dein name'
Das war ein Abfrageschema, wie man es 'üblicherweise' macht. Erst prüfen, ob gesetzt, prüfen, ob leer, und, falls erforderlich, prüfen, ob die Eingabe korrekt ist bzw. ob irgend was enthalten ist, was nicht rein soll.

Zitat:
Ach ne doch noch eine, wegen "von Scripts, die Uservariable ungeprüft in SQL Querys verwenden, krieg ich Pickel", sollte man in den iserts, statt
VALUES ('$name','$mail',........)
VALUES ('$_REQUEST['name']','$_REQUEST['mail'],.....)
verwenden? Genau so geschrieben?
Fast. Richtig wäre:
" ... VALUES ('".mysql_escape_string ($_REQUEST['name'])."','".mysql_escape_string ($_REQUEST['mail'])."'......")
Das verhindert, daß Dir der User irgend welchen Schrutz schickt, mit dem der SQL Server nicht klarkommt oder ggf. geschrottet werden kann.

Es gibt einige Bösewichter, die manchmal auch folgendes schicken:
' OR 1=1 '
Sowas nennt man SQL Injektionen, die je nach der Art der Abfrage und der Variablenübergabe bisweilen auch Herrn Popeluser zum Admin machen können.
Mit Zitat antworten
  #20  
Alt 20.01.2004, 19:27:58
Olaf Olaf ist offline
Anfänger
 
Registriert seit: Jun 2003
Beiträge: 30
Mann ist das ne Schinderei!!!

Ich bin wieder mal da wo ich nicht weiter komme. Ich dachte schon ich habs, da viel mir wieder ein kleiner Fehler auf. Bei den Mitteilungen geht es einfach nicht so wie mit Mail und Name. Wenn ich 2x ohne am Formular was zu verändern auf Submit klicke zählt es beim 2x den Fehler nicht mit. Zur Kontrolle hab ich die Fehlermeldung in GROßBUCHSTABEN geschrieben. Die bleibt logischerweise unverändert.
Außerdem wollte ich noch eine Mailadressenprüfung einbauen die im alten Formular ging, aber hier natürlich nicht! Ist auskommentiert:

Zum Quelltext *wieso parst mein IE auch die .txt?*
Zum Formular

Bitte schaut noch mal rein. Meikel, jetzt sind schon die ($_REQUEST['email']) drin ;-)

Grüße Olaf
Mit Zitat antworten
Antwort


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

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 aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 11:44:27 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt