mysql_fetch_array

sorglos32

Grünschnabel
Hallo miteinander....

Ich baue gerade ein Forum-Script....

Das ist die registrieren.php
PHP:
<?php
echo "<br>";
include 'mysql_connect.php';



if (isset($_POST['submit']) AND "Registrieren" == $_POST['submit'])
{
 
           
    $nick = $_POST['Nickname'];    
	if(trim($_POST['Nickname']) == "") {
    	die("Bitte geben sie einen Nicknamen ein");    }
	elseif(strlen($nick) < 6) {
    	die("Bitte geben sie einen Nicknamen ein der mindestens aus 6 Zeichen besteht");    }
	elseif(strlen($nick) > 12) {
    	die("Bitte geben sie einen Nicknamen ein der maximal aus 12 Zeichen besteht");    }
    elseif(trim($_POST['Email']) == "") {
    	die("Bitte geben sie ihre E-Mailadresse ein");    }
	elseif(trim($_POST['Passwort']) == "") 	{
		die ("Bitte geben sie ein Passwort ein.");     } 
	elseif(!($_POST['Passwort'] == $_POST['Passwort_Wiederholen'])) 	{
		die ("Bitte geben sie zwei <b>gleiche</b> Passwörter ein.");     }
	elseif(mysql_fetch_array(mysql_query("Select Nickname from forum_user where Nickname=´".$nick."´"))) {
		die ("Der Nickname ist bereits vorhanden"); }
	else {	
usw....

wenn ich einen Account anlegen will dann meldet der Browser folgendes...
Code:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /bla/bla/bla/bla/forum/registrieren.php on line 24

line 24 ist das:
PHP:
elseif(mysql_fetch_array(mysql_query("Select Nickname from forum_user where Nickname=´".$nick."´"))) {

kann mir jemand helfen dieses Problem zu beseitigen?

MFG Fabian
 
PHP:
Nickname=´".$nick."´"

Da gehören einfache Anführungszeichen hin und keine Apostrophs. Die Apostrophs dienen in SQL dazu, Feld- bzw. Tabellenbezeichner eindeutig zu kennzeichnen. Einfache Anführungszeichen dienen zur Kennzeichnung von Werten.

Die Art und Weise finde ich etwas umständlich. Benutze lieber [phpf]mysql_num_row[/phpf] und prüfe ob das Ergebnis > 0 ist.

[phpf]error_reporting[/phpf] auf E_ALL und [phpf]mysql_error[/phpf] helfen bei der Entwicklung von Anwendungen ungemein.
 
der teil des scripts sieht jetzt so aus:
PHP:
elseif(mysql_num_rows(mysql_query('Select Nickname from forum_user where Nickname='.$nick.'')) > 0)

und er bringt mir wieder den fehler nur mit mysql_num_rows():
Code:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /bla/bla/bla/bla/forum/registrieren.php on line 24

kann mir noch jemand helfen?

MFG Fabian
 
sorry wegen doppelpost...

aber es geht jetzt

so geht es...
PHP:
elseif(mysql_num_rows(mysql_query("Select Nickname from forum_user where Nickname='".$nick."'")) > 0) {

vielen dank für die raschen antworten...

MFG Fabian
 
Und was sagt [phpf]mysql_error[/phpf]?

Und benutze [phpf]mysql_real_escape_string[/phpf] um dich gegen eine mögliche SQL Injektion abzusichern.
 
PHP:
elseif(mysql_num_rows(mysql_query('Select Nickname from forum_user where Nickname='.$nick.'')) > 0)
=>
PHP:
elseif(mysql_num_rows(mysql_query('Select Nickname from forum_user where Nickname="'.$nick.'"')) > 0)

Zur Not kannst du auch folgendes machen, um zu sehen, was der wirkliche Fehler ist:
PHP:
elseif(mysql_num_rows(mysql_query('Select Nickname from forum_user where Nickname="'.$nick.'"') OR die(mysql_error()) > 0)
 
ich habe noch eine frage.....

gibt es ein Script wo ichden Syntax der E-Mail-Adresse überprüfen lassen kann?

wenn ja... kann das mir bitte jmd. posten?

MFG Fabian
 
Mithilfe des Regulären Ausdrucks kann man es überprüfen lassen:

PHP:
if(eregi("^([a-z0-9_]|\-|\.)+@(([a-z0-9_]|\-)+\.)+[a-z]{2,4}\$",$_POST['emailadresse'])== 0 ) {

echo "Keine gültige Email-Adresse";

}

MfG
KD3
 
Zurück