הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   שאלה | PHP - הרשמה (https://hosts.co.il/forums/showthread.php?t=49499)

Reality 11-07-07 18:37

שאלה | PHP - הרשמה
 
חח כנראה אלוהים לא רוצה שאני אדע PHP...
PHP קוד:

<?php
$link
=mysql_connect("localhost""root""") or die(mysql_Error());
mysql_select_db("db",$link) or die(mysql_error());
if(isset(
$_POST['username']) && isset($_POST['password']) && isset($_POST['pconf'])&& isset($_POST['submit']))
{
    if(
$_POST['username']!=NULL)
    {
    
$query="SELECT * FROM users";
    
$res=mysql_query($query,$link) or die(mysql_error());
    
$row=mysql_fetch_array($query($res));
    
    if(
$_POST['username']==$row['username'])
    {
        echo 
"Username already taken";
    }
    else
    {
        if(
$_POST['password']==$_POST['pconf'])
        {
            
$query2="INSERT INTO `users` (`id`,`username`,`password`) VALUES (``,`$_POST[username]`,
            `$_POST[password]`)"
;
            
$res2=mysql_query($query2,$link) or die(mysql_error());
        }
        else
        {
            echo 
"passwords do not match";
        }
        
            
        
    }
    }
    else
    {
        echo 
"Fill username";
    }

}
else
{
    echo 
"fill fields";
}
?>

שגיאה:

קוד:

Fatal error: Call to undefined function SELECT * FROM users() in c:\wamp\www\index.php on line 10
תודה לעוזרים.

OSR 11-07-07 18:42

נסה:
PHP קוד:

<?php 
$link
=mysql_connect("localhost""root""") or die(mysql_Error()); 
mysql_select_db("db",$link) or die(mysql_error()); 
if(isset(
$_POST['username']) && isset($_POST['password']) && isset($_POST['pconf'])&& isset($_POST['submit'])) 

    if(
$_POST['username']!=NULL
    { 
    
$query="SELECT * FROM users"
    
$res=mysql_query($query,$link) or die(mysql_error()); 
    
$row=mysql_fetch_array($res); 
     
    if(
$_POST['username']==$row['username']) 
    { 
        echo 
"Username already taken"
    } 
    else 
    { 
        if(
$_POST['password']==$_POST['pconf']) 
        { 
            
$query2="INSERT INTO `users` (`id`,`username`,`password`) VALUES (``,`$_POST[username]`, 
            `$_POST[password]`)"

            
$res2=mysql_query($query2,$link) or die(mysql_error()); 
        } 
        else 
        { 
            echo 
"passwords do not match"
        } 
         
             
         
    } 
    } 
    else 
    { 
        echo 
"Fill username"
    } 


else 

    echo 
"fill fields"

?>


erezse 11-07-07 18:57

אם אני לא טועה חסר where
PHP קוד:

 $query2="INSERT INTO `users` where (`id`,`username`,`password`) VALUES (``,`$_POST[username]`, 


Daniel 12-07-07 23:46

ציטוט:

נכתב במקור על ידי erezse (פרסם 518881)
אם אני לא טועה חסר where
PHP קוד:

 $query2="INSERT INTO `users` where (`id`,`username`,`password`) VALUES (``,`$_POST[username]`, 


לא צריך WHERE ב-INSERT...
הבעיה הייתה שהוא עשה משתנה כפונקציה.

oryrm19 13-07-07 12:37

עשית $query. תוריד את סימן הדולר

Daniel 13-07-07 12:39

למה סתם להגיב תגובות בשביל המונה?

oryrm19 13-07-07 13:08

מצטער לא שמתי לב שענו, ממש לא בשביל להרחיב את המונה שלי.

Daniel 13-07-07 13:19

לא בגלל זה, אלא בגלל שהגבת תגובה סתם, ומה שאמרת דווקא יגרום לעוד בעיות.

mlnn 13-07-07 13:49

איזה בעיות? פשוט הבנאדם לא שם לב ו$ שם בולט כי אפחד לא עושה ככה חח.
פותח האשכול, מה ש OSR נתן יפתור את השגיאה שלך. אבל זה עדיין לא יעבוד.

PHP קוד:

if($_POST['username']==$row['username']) 

אתה צריך להריץ את זה בלולאה [אלא אם כן יש רק רשומה אחת במסד].
אבל הרבה יותר עדיף לך להשתמש בWHERE בתוך השאילתה ולאחר מכן להשתמש ב mysql_num_rows.
כמובן שאתה צריך גם לאבטח את כל הקלט-ים שלך.

ומה זה:
PHP קוד:

 if($_POST['password']==$_POST['pconf']) 

את שניהם אתה מקבל מהמשתמש אז..?

בהצלחה..

Reality 13-07-07 14:07

ציטוט:

נכתב במקור על ידי mlnn (פרסם 520137)
איזה בעיות? פשוט הבנאדם לא שם לב ו$ שם בולט כי אפחד לא עושה ככה חח.
פותח האשכול, מה ש OSR נתן יפתור את השגיאה שלך. אבל זה עדיין לא יעבוד.

PHP קוד:

if($_POST['username']==$row['username']) 

אתה צריך להריץ את זה בלולאה [אלא אם כן יש רק רשומה אחת במסד].
אבל הרבה יותר עדיף לך להשתמש בWHERE בתוך השאילתה ולאחר מכן להשתמש ב mysql_num_rows.
כמובן שאתה צריך גם לאבטח את כל הקלט-ים שלך.

ומה זה:
PHP קוד:

 if($_POST['password']==$_POST['pconf']) 

את שניהם אתה מקבל מהמשתמש אז..?

בהצלחה..

יש שני שדות של סיסמא; שדה אחד סיסמא ושדה שני אימות.
אני קצת איטי, אני לא מוצא איפה השגיאה שלי...


כל הזמנים הם GMT +2. הזמן כעת הוא 08:45.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ