php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 20.05.2005, 16:57  
Gast
 
Beiträge: n/a
Standard Kleines Prob mit PHP

Ein freundliches Hallo erstma in die Runde!

Hab folgendes Prob:
Es geht um ein Registrierungsscript, bei dem ich zuerst prüfen möchte, ob alle Felder ausgefüllt werden. Wenn ja soll er die Sachen in die DB schreiben. Naja, klappt ja soweit alles super, ABER wenn ich Felder leer lasse, trägt er die restlichen trotzdem in die DB ein. Natürlich werde ich auf die Fehlerseite weitergeleitet, dass nicht alle Daten eingegeben wurden. Hier mal das bisherige Script:

Zitat:
<?php

if(empty($_POST['nickname']))
header("Location: fehler0002.php");
if(empty($_POST['kennwort']))
header("Location: fehler0002.php");
if(empty($_POST['email1']))
header("Location: fehler0002.php");
if(empty($_POST['email2']))
header("Location: fehler0002.php");
if(empty($_POST['sichfra']))
header("Location: fehler0002.php");
if(empty($_POST['sichant']))
header("Location: fehler0002.php");
if(empty($_POST['vorname']))
header("Location: fehler0002.php");
if(empty($_POST['nachname']))
header("Location: fehler0002.php");
if(empty($_POST['strasse']))
header("Location: fehler0002.php");
if(empty($_POST['hausnr']))
header("Location: fehler0002.php");
if(empty($_POST['plz']))
header("Location: fehler0002.php");
if(empty($_POST['ort']))
header("Location: fehler0002.php");
if(empty($_POST['land']))
header("Location: fehler0002.php");

//Serveradresse
$mysql_host = "xy";
//MySQL User
$mysql_user = "xy";
//MySQL Passwort
$mysql_pw = "xy";
//MySQL Datenbank
$mysql_dbname = "xy";
//Verbindungsaufbau
@$db = mysql_connect ($mysql_host, $mysql_user, $mysql_pw) or die (mysql_errno().":". mysql_error());
@mysql_select_db($mysql_dbname, $db) or die(mysql_errno().":". mysql_error());

mysql_query("INSERT INTO user
(nickname,
kennwort,
email1,
email2,
sichfra,
sichant,
vorname,
nachname,
strasse,
hausnr,
plz,
ort,
land
)
VALUES
('$nickname',
'$kennwort',
'$email1',
'$email2',
'$sichfra',
'$sichant',
'$vorname',
'$nachname',
'$strasse',
'$hausnr',
'$plz',
'$ort',
'$land')
");
Mysql_close();
header("Location: index.php");
?>
Hab es schon mit die versucht, aber ich komme nicht weiter.

Gibt es eigentlich ne möglichkeit, ids die nicht mehr vorhanden sind, also z.b. 1,2,3,fehlt,5 usw. wieder zu beschreiben?

Hoffe jemand weiß was

MfG,
Michi
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 20.05.2005, 17:04  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

omg

1) finger weg von @
2) mysql error
man sollte in seinen Scripten immer mysql_error() verwenden, in etwa so:
PHP-Code:
$sql "SELECT feld1,feld2 FROM table WHERE id=5";
$result mysql_query($sql) or die(mysql_error().'
Query: '
.$sql); 
3)
error-reporting
Zum testen von Scripts setzt man normalerweise am anfang des scripts (oder direkt in einer config-datei die immer Includet wird)
PHP-Code:
error_reporting(E_ALL); 
damit werden dann alle Fehler ausgegeben.
Mögliche Fehler die dann auftreten und wie man sie beheben kann:
Notice: Use of undefined constant ...
Notice: Undefined variable ...


dann dein query ist schwachfug, oben überprüfst du auf die superglobals ($_POST)
und unten benutzt du dann wieder $nickname, $kenntwort ....

desweiteren kann man den block oben auch einfach so schreiben:
PHP-Code:
<?php
if(    empty($_POST['var1']) OR 
    empty(
$_POST['var2']) OR 
    .....)
{
    
header("Location: fehler0002.php");
    exit();
}

?>
desweiteren:
http://php-faq.de/q/q-sql-ids.html
robo47 ist offline  
Alt 20.05.2005, 17:06  
Gast
 
Beiträge: n/a
Standard

bitte den code das nächste mal in php-tags reintun
du musst nach dem header("Loaction: ...php"); nen die(); reinsetzen, damit das script beendet wird und die sql-anweisungen nicht mehr ausgeführt werden.
achja und kennste OR?
http://tut.php-q.net/logical.html
 
Alt 20.05.2005, 17:22  
Gast
 
Beiträge: n/a
Standard

ui, danke für die antworten. jetzt gehts *freu*. naja mysql error verwende ich. hab halt das error_reporting(E_ALL); am anfang vergessen *grml*. naja und das OR hab ich schon mal gehört lol, naja, immer diese "denkfehler".

Auf jeden Fall nochmal vielen dank.

MfG,
Michi
 
Alt 20.05.2005, 18:53  
Gast
 
Beiträge: n/a
Standard

Nur mal so am Rande erwähnt arbeite ich mit @mysql_query, weil ich mir die Fehler anderweitig ausgebe ( @mysql_query($abfrage) or die(mysql_error() . '
Query: ' . $abfrage); ), wobei mir eine doppelte Fehlermeldung nur im Weg stände. Dazu kommt, dass ich die normale Fehlermeldung hässlich finde, mysql_error() ist viel besser und gibt detailiertere Fehlermeldungen aus
 
Alt 20.05.2005, 19:38  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

mysql_query an sich gibt doch keien fehlermeldung aus ?
und beim debuggen ist es egal ob ein fehler oder 2 :P
robo47 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
PHP und Javascript Pro für kleines CMS gesucht VitaminT Beitragsarchiv 0 26.06.2008 13:41
Newsletter Prob mokus PHP Tipps 2006 1 17.04.2006 16:23
Einzelne Frames aktualisieren mit JS: IE Prob GSJLink HTML, Usability und Barrierefreiheit 3 26.01.2006 16:42
timestamp prob lindner PHP Tipps 2005-2 9 04.08.2005 18:50
Suche für mySQL alternatives Backend, kleines CMS ? PHP Tipps 2005 10 24.01.2005 12:11
nur ein ganz kleines Prob beim Forum Spike_php PHP Tipps 2004-2 7 21.12.2004 01:14
IE Prob. Off-Topic Diskussionen 3 14.12.2004 20:06
kleines Problem PHP Tipps 2004-2 2 05.12.2004 09:44
[Erledigt] Kleines Abfrage prob Datenbanken 8 13.10.2004 18:59
Kleines Problem mit Upload-Script Pimbolie1979 PHP Tipps 2004 1 28.07.2004 11:53
anzeige prob PHP Tipps 2004 2 11.07.2004 13:03
Kleines Prob mit Login Script PHP Tipps 2004 2 09.07.2004 01:39
Bild größe hat prob mit umbenennung. JEGO PHP Tipps 2004 1 08.07.2004 16:30
leichte Prob mit header JEGO PHP Tipps 2004 10 11.06.2004 13:25


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