php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 17.06.2009, 20:52  
Erfahrener Benutzer
 
Registriert seit: 28.05.2008
Beiträge: 2.094
PHP-Kenntnisse:
Fortgeschritten
rudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nett
Standard

@ Arne:
Zitat:
Auch wenn es sich um Integer-Werte handelt, würde ich zur Sicherheit ALLE Werte, die in eine DB eingetragen werden sollen mindestens mit mysql_escape_string() filtern.
Vielleicht als Ergänzung: Dabei aber auf jeden Fall noch den Typ sicherstellen.
- is_numeric()
- (int)
- intval()

Dann kommts auch nicht zu einem Fehler beim query. Und unerwünschte Zahlenwerte noch abfangen (z.b. evtl. die 0).

Geschmackssache: Die Darstellung deines query- strings find ich unübersichtlich, ich schreib meine querys lieber so:

PHP-Code:
$dbanfrage "INSERT INTO ".$tabelle." (Feld1,Feld2)  
              VALUES ('"
.mysql_real_escape_string($_POST["Data1"])."', 
                      '"
.mysql_real_escape_string($_POST["Data2"])."');"
mysql_escape_string ist veraltet, lieber nicht verwenden.

@ Ide: Nur als Tipp: Schalte error reporting unter der Produktion immer an und besorg dir eine lokale Testumgebung Laß dir mysql errors ausgeben, im Zweifel immer noch den query mit. Dann wird das schneller was.


Gruß


Basti
__________________
++++ Wieder einer ins Netz gegangen: Phishers Fritz zufrieden ++++
Blog

Geändert von rudygotya (17.06.2009 um 21:44 Uhr).
rudygotya ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 17.06.2009, 21:00  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.945
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard

Ich schreibe die Inserts immer mit der SET-Syntax. das hat den Vorteil, dass die Spaltennamen und die eingefügten Werte nah beieinander stehen:

PHP-Code:
$sql "INSERT INTO 
            tabelle
        SET
            col1 = '" 
mysql_real_escape_string($wert1) . "', 
            col2 = '" 
mysql_real_escape_string($wert2) . "'"
@Ide
In meinem Besispiel habe ich dir ein sog. Affenformular hingestellt. Dabei ruft das Formular sich selbst auf. Im Kopf der Datei ist das PHP-Script, darunter der HTML-Teil.

Beim ersten Aufruf der Datei ist ja noch nichts gePOSTet, daher wird abgefragt, ob es den erwarteten Wert im $_POST-Array gibt.
Wolla ist offline  
Alt 29.08.2009, 21:09  
Neuer Benutzer
 
Registriert seit: 29.08.2009
Beiträge: 3
PHP-Kenntnisse:
Anfänger
Charly2009 befindet sich auf einem aufstrebenden Ast
Standard

Hi Leute,

habe eben Eure Beiträge etwas überflogen und muss sagen, dass ich im Moment ein ganz ähnliches Problem habe. Allerdings bin ich mir nicht sicher, ob ich die genannten Tipps auch in meinem Fall gebrauchen kann. Ich habe folgendes Problem, ich habe eine HTML-Seite mit einem Kontaktformular und möchte die Formulardaten gerne an ein Php-Script namens "send.php5" übergeben, doch das will leider nicht so recht funktionieren. Die Mail kommt zwar an, jedoch ist darin lediglich der Betreff (im php-Script hinterlegt) und die jeweilige Bezeichnung (ebenfalls im php-Script hinterlegt) enthalten (z.B. Anfrage: ).

Doch die Felder aus dem Kontaktformular (also was im "Input-Bereich" steht) wird nicht übernommen.

Daher meine Frage, muss ich etwa in das HTML-Script zusätzlich ein php-Script integrieren, damit das php-Script, an dass die Daten übergeben werden sollen, die typen erkennt?

hier mal mein Script (ich bin noch Anfänger, also bitte nicht lachen):


HTML:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">

<html>


<head>
<title>Kontakt</title>
<link rel="stylesheet" type="text/css" href="CSS/Style VI (Kontakt).css">

<div id="head">

</div>

</head>


<body id="Kontaktseite" onload="document.Kontaktformular.Kontaktfeld.focus ();">


<div id="Content2">

<div style="position:absolute;top:0em;left:0em;"id="con tent">

<div style="position:absolute;top:0em;left:1em;">
<p style="text-align:left;font-family:Century Gothic;color:#455063;font-size:30px">
Kontakt</p>
</div>


<div style="margin-top:5em;">
<form action="php/send.php5?action=send" method="POST">


<div style="margin-top:-3em;margin-left:-1.6em;text-align:left;font-size:14px;width:50em;">
<span class="label">Über unser Kontaktformular haben Sie die Möglichkeit, direkt mit uns Kontakt aufzunehmen, <br>indem Sie Ihre Anfrage über das Eingabefeld stellen und anschließend auf "Daten absenden" <br>klicken.<span><br><br>

</div>
<div style="margin-left:-4.4em">
<ul style="text-align:left;">

<Table class="Table1" border="0" cellspacing="0" cellpadding="4" face="Arial">

<tr><td><textarea class="Kontaktfeld" rows="15" cols="50" style="background:lightyellow;" wrap="physical" name="kontaktfeld" type="text"></textarea>
</td>
</tr>
</Table>


<Table class="Table2" border="0" bgcolor="" cellspacing="0" cellpadding="4" face="Arial">

<colgroup>

<col width="120">
<col width="110">

</colgroup>

<tr><td>Art der Anfrage:<td>
<select id="Art_der_Anfrage" name="art_der_anfrage" style="background:lightyellow">
<option value="privat">Geschäftlich</option>
<option value="geschäftlich">Privat</option></select></td></tr><tr><td></td></tr>

<tr><td>Titel: <td> <input size="2" type="text" name="titel" style="background:lightyellow"></td></tr>

<tr><td>Vorname:<td><input type="text" name="vorname" style="background:lightyellow"></td></tr>

<tr><td>Name:<td> <input type="text" name="name" style="background:lightyellow"></td></tr>

<tr><td>Firma: <td> <input type="text" name="firma" style="background:lightyellow"></td></tr>

<tr><td>Straße:<td> <input size="20" maxlength="50" type="text" name="strasse" style="background:lightyellow">

<td>Nr.: <td> <input size="2" type="text" name="nr." style="background:lightyellow"></td></tr>

<tr><td>PLZ: <td> <input size="3" type="text" name="plz" style="background:lightyellow">

<td>Ort: <td> <input type="text" name="ort" style="background:lightyellow"></td></tr>

<tr><td>Rückrufnummer: <td> <input type="text" name="rueckrufnummer" style="background:lightyellow"></td></tr>

<tr><td>E-Mail-Adresse: <td> <input type="text" name="e-mail" style="background:lightyellow"></td></tr>

</Table>

</ul>

</div>

<div style="margin-top:1.5em;margin-left:13.0em;">
<input type="submit" id="submit"><br><br>
</div>

</form>


<div style="margin-top:-0.5em;margin-left:-1.3em;">
<p style="text-align:left;font-family:Century Gothic;color:lightgrey;font-size:12px">
Alle Angaben sind freiwillig, Ihre Daten werden von uns unter strenger Einhaltung der geltenden Datenschutzrichtlinien entgegengenommen und vertraulich behandelt. Diese Daten werden ohne Ihre ausdrückliche Zustimmung nicht an Dritte weitergegeben, sondern lediglich betriebsintern zur Kontaktaufnahme genutzt.</p>

</div>

...

</body>

</html>


Die PHP-Seite:

<?php

$sendto = "die Email-Adresse";
$mail_absender=$mailaddi;
$betreff="Kundenanfrage";
$message="Anfrage: $kontaktfeld\n
Art der Anfrage: $art_der_anfrage \n
Titel: $titel Vorname: $vorname Name: $name\n
Firma: $firma\n
Strasse: $strasse Nr.: $nr.\n
PLZ: $plz Ort: $ort\n
Rückrufnummer: $rueckrufnummer\n
E-Mail: $e-mail \n

mail($sendto, $betreff, $message);

?>

Wäre cool, wenn sich das irgendwie hinbiegen ließe, dass es klappt.

Mfg.

Charly2009
Charly2009 ist offline  
Alt 29.08.2009, 21:19  
Erfahrener Benutzer
 
Benutzerbild von Arne Drews
 
Registriert seit: 22.04.2009
Beiträge: 3.486
PHP-Kenntnisse:
Anfänger
Arne Drews wird schon bald berühmt werdenArne Drews wird schon bald berühmt werden
Arne Drews eine Nachricht über Skype™ schicken
Standard

Bitte benutze in Zukunft PHP-Tags (kleines blaues PHP-Symbol).
Das is viel zu unübersichtlich!

Aber selbst dort findet man den Fehler schnell:
In der PHP-Datei verwendest Du Variablen, die noch gar nicht gesetzt sind.
PHP-Code:
$_POST["variable"
Arne Drews ist offline  
Alt 29.08.2009, 21:23  
Neuer Benutzer
 
Registriert seit: 29.08.2009
Beiträge: 3
PHP-Kenntnisse:
Anfänger
Charly2009 befindet sich auf einem aufstrebenden Ast
Standard

Ah sorry, danach hatte ich vorhin nämlich gesucht.



Vielen Dank auch für die rasche Antwort Arne. Da ich gestern noch mit diversen Problemen anderer Natur zu kämpfen hatte und somit nicht mehr dazu kam, Deinen Beitrag entsprechend zu beantworten, ergänze ich heute meinen Beitrag nachträglich noch etwas.

Das mit dem $_POST["variable"], bzw. $_POST["vorname"] habe ich zwar versucht einzubauen (wenn man auf Beitrag ändern klickt, erscheint leider kein blaues PHP-Symbol mehr, andernfalls hätte ich das jetzt gerne verwendet), hat aber irgendwie nicht gescheit funktioniert, wo müsste ich das den einfügen, dass es die gewünschte Wirkung hat? Es tut mir Leid wenn ich das frage, aber ich habe von Php bisher absolut keinen Plan, ich hatte das zwar mal vor ca. fünf Jahren in der Berufsschule, doch wir hatten das damals nur grob angerissen.

Daher muss ich versuchen, mir das jetzt noch im Nachhinein anzueignen.




Mfg.

Charly2009

Geändert von Charly2009 (30.08.2009 um 22:39 Uhr).
Charly2009 ist offline  
Alt 29.08.2009, 21:37  
Erfahrener Benutzer
 
Registriert seit: 23.08.2009
Beiträge: 241
PHP-Kenntnisse:
Fortgeschritten
MasterD wird schon bald berühmt werden
MasterD eine Nachricht über ICQ schicken
Standard

Wieso les ich jetzt schon zum 2. Mal, dass es Leute gibt, die glauben, dass Formularfeldnamen automatisch eine neue Variable mit dem gleiben Namen anlegen? Wo bleibt da die Logik

Aber zum Thema:
Der Threadersteller schrieb doch, dass sich beide Datein in cgibin verzeichnis befinden. Wieso versucht er dann noch mit der Formular-Datei auf ein weiteres Cgibin verzeichnis, dass gar nicht existiert, zuzugreifen? Ich denke das ist das Problem! - Oder wurde der Thread schon irgendwie gelöst?

Greetz,
MasterD
MasterD ist offline  
Alt 30.08.2009, 22:59  
Neuer Benutzer
 
Registriert seit: 29.08.2009
Beiträge: 3
PHP-Kenntnisse:
Anfänger
Charly2009 befindet sich auf einem aufstrebenden Ast
Standard

Ja gut das mag eventuell daran liegen, dass jene Leute die so etwas fragen vermutlich wenig, bis gar keine Programmierkenntnisse haben.

Ich hatte früher zwangsläufig auch mal Visual Basic - fand ich ganz furchtbar und später kam dann etwas Php dazu. In VB musste man seine Variablen vorher ja auch dimensionieren mit:

Code:
Option Explicit

     Dim As ...
Doch mit VB kann man mich jagen, hoffe dass das mit Php anders wird, zumal man damit ja sehr schöne Dinge machen kann, wenn man es dann kann.

Ich brauche es halt jetzt speziell gerade nur in einem bestimmten Fall.



Mfg.

Charly2009
Charly2009 ist offline  
Alt 01.09.2009, 00:32  
Erfahrener Benutzer
 
Benutzerbild von mermshaus
 
Registriert seit: 14.06.2009
Beiträge: 1.733
PHP-Kenntnisse:
Fortgeschritten
mermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz sein
Standard

$nr. und $e-mail sind übrigens keine zulässigen Variablennamen. Der Punkt und der Trennstrich sind nicht erlaubt.

Falls das Problem noch besteht, ergänze mal oben in php/send.php5 die Zeile:

PHP-Code:
print_r($_POST); 
Dann kannst du sehen, welche Felder in $_POST mit welchen Werten belegt sind. Vielleicht hilft das weiter.

Offtopic:

Zitat:
Zitat von MasterD
Wieso les ich jetzt schon zum 2. Mal, dass es Leute gibt, die glauben, dass Formularfeldnamen automatisch eine neue Variable mit dem gleiben Namen anlegen? Wo bleibt da die Logik
PHP hat bis Version 4.2 genau das gemacht: PHP: Using Register Globals - Manual. Das ist zum Glück schon lange her, aber in alten Scripten/Tutorials/Büchern tauchen die Einstellung und die damit verbundenen Probleme wohl noch auf.

Zitat:
Zitat von Charly2009
In VB musste man seine Variablen vorher ja auch dimensionieren mit:
Sobald du in PHP das strikte Error-Reporting aktivierst (sehr zu empfehlen), gibt's auch hier Beschwerden beim Abrufen des Werts einer nicht initialisierten Variable:

PHP-Code:
<?php
error_reporting
(E_ALL E_STRICT);
$foo $bar;
Generell gehört es zum guten Ton, Variablen zu initialisieren, und viele Sprachen erzwingen es. Es gibt außerdem allgemein die "Regel", dass eine Variable nur innerhalb des Codeblocks (Abschnitt zwischen geschweiften Klammern {...}) definiert ist, in dem sie deklariert wurde (und in darin geschachtelten Blöcken).

In PHP wird das nicht durchgesetzt, aber ich bin mir ziemlich sicher, dass sich z. B. Java hier beschweren würde, weil $author außerhalb des Geltungsbereichs abgefragt wird, in dem die Variable gesetzt wurde:

PHP-Code:
if (true) {
    
$author 'Goethe';
}

echo 
$author
Die Lösung wäre, vor der if-Bedingung noch eine Zeile einzufügen:

PHP-Code:
$author ''
mermshaus ist gerade online  
Alt 01.09.2009, 01:33  
Erfahrener Benutzer
 
Registriert seit: 23.08.2009
Beiträge: 241
PHP-Kenntnisse:
Fortgeschritten
MasterD wird schon bald berühmt werden
MasterD eine Nachricht über ICQ schicken
Standard

Okay PHP 4.3 war noch vor meiner Programmiererzeit... Aber es stand ja auch nirgendswo, dass er register globals benutzt

mfg,
masterD
MasterD 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
Firefox startet Script bei Timeout wieder neu Wolla PHP Tipps 2009 2 18.05.2009 18:07
[Erledigt] Objekt an Konstruktor übergeben hawkeye78 PHP Tipps 2009 7 28.02.2009 19:01
php script mit html script verbinden Bimbo-01 PHP Tipps 2009 2 21.02.2009 14:11
gleiches script triggern mit und ohne Variablenübergabe steve_2000 PHP Tipps 2008 2 04.12.2008 17:34
Upload Script bleibt einfach stehen SniperWolf PHP Tipps 2008 4 19.09.2008 19:39
script zum übergeben an eine textarea LP PHP Tipps 2006 6 21.09.2006 21:58
[Erledigt] Verzögerung durch included Script? Umgehen? PHP Tipps 2005-2 4 10.07.2005 19:26
[Erledigt] Relay Script PHP-Fortgeschrittene 11 01.06.2005 16:02
[Erledigt] Hilfe bei Download Verwaltungs Script PHP Tipps 2005 8 04.05.2005 10:29
Fehler bei Script, welches Ordner erstellt PsychoEagle PHP Tipps 2005 3 23.04.2005 16:03
PHP Variable an Java Script übergeben?? PHP Tipps 2005 5 07.04.2005 17:10
[Erledigt] Formulardaten in einer Session speichern, per Link übergeben PHP Tipps 2004-2 2 29.12.2004 15:47
PHP Script aus PHP aufrufen Stümper PHP Tipps 2004 5 26.09.2004 08:15
"das" Script oder "der" Script?? Simbo Off-Topic Diskussionen 31 16.09.2004 17:04

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
vba variablen an php senden, kontaktformular php5, php5 kontaktformular, php mehrere form auf einer seite post wird nicht übergeben, http://www.php.de/php-einsteiger/56162-formulardaten-werden-nicht-php-script-uebergeben-2.html, html form ruft php neue seite, daten aus formular werden nicht in mail übernommen php, daten aus formular werden nicht übernommen php script, form php5, form input wird nicht übergeben, kontaktfeld css styles, php script kontaktformular, html formular daten übergeben php datei, php 5 submit wird nicht übergeben, php emailadresse nicht übergeben, formular an 2 scripte übergeben, php formular an sich selbst übergeben, post wir nicht an php srcipt übergeben, php script daten übergeben, formular an script

Alle Zeitangaben in WEZ +2. Es ist jetzt 16: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