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

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

miniature 06-02-06 15:10

בעיה עם IF בשליחת טופס.
 
אני מנסה להתחיל לעבוד עם מסד נתונים מסוג MYSQL ובעת שליחת הטופס הנ"ל משום מה כשיש שגיאה וכשאין שגיאה זה כותב "הכתבה נוספה".. (אבל זה לא מוסיף את הכתבה למסד).

קוד ה PHP של הטופס:
PHP קוד:

if($_POST['add']) {
  require_once(
"connect.php");
  
$name $_POST['name'];
  
$content $_POST['message'];
  
$ip $_POST['ip'];
  
$namelen strlen($name);
  
$namemaxlength 20;
  
$date date("d.m.y");
        if(
$name == "") {
            echo 
"<div id=\"contentboxright\"><b>אתה חייב להקליד את שמך</b>";
            echo 
"&nbsp;|&nbsp;<a href=\"javascript:history.go(-1);\">חזור</a></div>\n";
        }
        if(
$content == "") {
            echo 
"<div id=\"contentboxright\"><b>אתה חייב להקליד תוכן</b>";
            echo 
"&nbsp;|&nbsp;<a href=\"javascript:history.go(-1);\">חזור</a></div>\n";
    }
    if(
$namelen $namemaxlength) { 
            echo 
"<div id=\"contentboxright\"><b>השם ארוך מדי</b>";
            echo 
"&nbsp;|&nbsp;<a href=\"javascript:history.go(-1);\">חזור</a></div>\n";
        }
        if(
strstr($name,"|")) {
            echo 
"<div id=\"contentboxright\"><b>השם לא יכול להכיל את התו -|-</b>";
            echo 
"&nbsp;|&nbsp;<a href=\"javascript:history.go(-1);\">חזור</a></div>\n";
        }
        if(
strstr($content,"|")) {
            echo 
"<div id=\"contentboxright\"><b>תוכן הכתבה לא יכול להכיל את התו -|-</b>";
            echo 
"&nbsp;|&nbsp;<a href=\"javascript:history.go(-1);\">חזור</a></div>\n";
        }
        else {      
            
mysql_query("INSERT INTO cms_articles(name,message,date,ip) VALUES('$name','$message','$date','$ip')"); 
            echo 
"<div id=\"contentboxright\"><b>הכתבה נוספה</b>\n"
            echo 
"&nbsp;|&nbsp;<a href=\"$PHP_SELF\">חזור לעמוד הראשי</a></div>\n"
    }
    }

echo 
"<div id=\"contentadmin\">\n";
echo 
"<form method=\"post\" action=\"$PHP_SELF?action=add\">שם:<br /><input type=\"text\" size=\"30\" name=\"name\"><br />\n";
echo 
"תוכן הכתבה:<br /><textarea name=\"article\" cols=\"60\" rows=\"20\"></textarea><br /><br />\n";
echo 
"<u>הערות חשובות לפני שליחה:</u><br /><ul>\n";
echo 
"<li>בדוק היטב שהכתבה ו/או השם אינה/אינו מכיל/ה את התו '|' ושכל הנתונים הוזנו כהלכה.\n";
echo 
"<li>מומלץ לשמור את הכתבה בקובץ TXT לפני השליחה במידה ותקרה תקלה בשליחתה.</ul><br />\n";
echo 
"<input type=\"submit\" name=\"add\" value=\" שלח \"></form></div>\n";
echo 
"<input type=\"hidden\" name=\"ip\" value=\"$REMOTE_ADDR\">\n"


רומן 06-02-06 15:36

שמע תתחיל מהתחלה, זה הקוד הכי מכוער שראיתי בחיי, קודם כל ה else שלך, הוא לא מתייחס להכל! אלא רק לתנאי האחרון!ולמה אתה כותב echo בכל שורה כמו נוב?
פשוט פתח תגיות Php כשצריך, וכשצריך קוד html סגור:
PHP קוד:

<?
if($yourmama == 1){
?>
html code
<?
}
?>


miniature 06-02-06 15:46

הקוד תוקן לקוד הבא:
PHP קוד:

if($_POST['add']) {
  require_once("connect.php");
  $name = $_POST['name'];
  $content = $_POST['content'];
  $ip = $_POST['ip'];
  $namelen = strlen($name);
  $namemaxlength = 20;
  $date = date("d.m.y");
        if($name == "") {
            echo "<div id=\"contentboxright\"><b>אתה חייב להקליד את שמך</b>";
            echo "&nbsp;|&nbsp;<a href=\"javascript:history.go(-1);\">חזור</a></div>\n";
        }
        if($content == "") {
            echo "<div id=\"contentboxright\"><b>אתה חייב להקליד תוכן</b>";
            echo "&nbsp;|&nbsp;<a href=\"javascript:history.go(-1);\">חזור</a></div>\n";
    }
    if($namelen > $namemaxlength) { 
            echo "<div id=\"contentboxright\"><b>השם ארוך מדי</b>";
            echo "&nbsp;|&nbsp;<a href=\"javascript:history.go(-1);\">חזור</a></div>\n";
        }
        if(strstr($name,"|")) {
            echo "<div id=\"contentboxright\"><b>השם לא יכול להכיל את התו -|-</b>";
            echo "&nbsp;|&nbsp;<a href=\"javascript:history.go(-1);\">חזור</a></div>\n";
        }
        if(strstr($content,"|")) {
            echo "<div id=\"contentboxright\"><b>תוכן הכתבה לא יכול להכיל את התו -|-</b>";
            echo "&nbsp;|&nbsp;<a href=\"javascript:history.go(-1);\">חזור</a></div>\n";
        }
        else {      
            $insertadd=@mysql_query("INSERT INTO cms_articles(name,content,date,ip) VALUES('$name','$content','$date','$ip')");
        @mysql_close($insertadd);
            echo "<div id=\"contentboxright\"><b>הכתבה נוספה</b>\n"; 
            echo "&nbsp;|&nbsp;<a href=\"$PHP_SELF\">חזור לעמוד הראשי</a></div>\n";
    }
    }
?>
<div id="contentadmin">
<form method="post" action="<?=$PHP_SELF."?action=add"?>">שם:<br />
<input type="text" size="30" name="name"><br />
תוכן הכתבה:<br />
<textarea name="content" cols="60" rows="20"></textarea><br /><br />
<u>הערות חשובות לפני שליחה:</u><br />
<ul>
<li>בדוק היטב שהכתבה ו/או השם אינה/אינו מכיל/ה את התו '|' ושכל הנתונים הוזנו כהלכה.
<li>מומלץ לשמור את הכתבה בקובץ TXT לפני השליחה במידה ותקרה תקלה בשליחתה.
</ul><br />
<input type="submit" name="add" value=" הוסף ">
<input type="hidden" name="ip" value="<?=$REMOTE_ADDR?>">
</form>
</div>
<?php
}
?>

הבעיה עדיין קיימת... |?| |?|

Kuchi 06-02-06 15:50

מה שהראת לנו לא קשור למסד נתונים נשמה !
היית אמור להראות תשאילתה שעשית !
בכל מקרה תכניס נתונים למסד ככה
PHP קוד:

$Add=mysql_query("INSERT INTO TableName (name,content,ip,namelen,namemaxlen,date) VALUES ('{$name}','{$content}','{$ip}','{$namelen}','{$namemaxlen}','{$date}')");
if (!
$Add)
echo 
"חלה שגיאה בלה בלה בלה";
else
echo 
"נשלח דהההה"

ועוד דבר נגיד וזה בודק אם יש משהו בפוסט תעשה ככה !
PHP קוד:

if(empty($name) || $name == ' ')
..... 

מקווה שעזרתי

miniature 06-02-06 16:12

ציטוט:

נכתב במקור על ידי KuChI-PoChI
מה שהראת לנו לא קשור למסד נתונים נשמה !
היית אמור להראות תשאילתה שעשית !
בכל מקרה תכניס נתונים למסד ככה
PHP קוד:

$Add=mysql_query("INSERT INTO TableName (name,content,ip,namelen,namemaxlen,date) VALUES ('{$name}','{$content}','{$ip}','{$namelen}','{$namemaxlen}','{$date}')");
if (!
$Add)
echo 
"חלה שגיאה בלה בלה בלה";
else
echo 
"נשלח דהההה"

ועוד דבר נגיד וזה בודק אם יש משהו בפוסט תעשה ככה !
PHP קוד:

if(empty($name) || $name == ' ')
..... 

מקווה שעזרתי

עדיין לא טוב..

Kuchi 06-02-06 16:48

במקרה אתה יכול להציג לפנינו את כל הקוד באתר ?

רומן 06-02-06 17:09

השאילתה מעולה, הקוד לא, כמו שאמרתי ה else מתייחס רק לתנאי אחד נסה לשנות את זה קודם..

רומן 06-02-06 17:12

נסה את זה(לא מבטיח שזה יעבוד כי לא ראיתי איך המסד בנוי גם תבדוק שהתאים שרשמתי נכונים)
קיצר נסה את זה:

PHP קוד:

if($_POST['add']) { 
  require_once(
"connect.php"); 
  
$name $_POST['name']; 
  
$content $_POST['message']; 
  
$ip $_POST['ip']; 
  
$namelen strlen($name); 
  
$namemaxlength 20
  
$date date("d.m.y"); 
    
$er 0;
        if(
$name == "") { 
    
$er 1;
            echo 
"<div id=\"contentboxright\"><b>אתה חייב להקליד את שמך</b>"
            echo 
"&nbsp;|&nbsp;<a href=\"javascript:history.go(-1);\">חזור</a></div>\n"
        } 
        if(
$content == "") { 
    
$er 1;
            echo 
"<div id=\"contentboxright\"><b>אתה חייב להקליד תוכן</b>"
            echo 
"&nbsp;|&nbsp;<a href=\"javascript:history.go(-1);\">חזור</a></div>\n"
    } 
    if(
$namelen $namemaxlength) { 
    
$er 1
            echo 
"<div id=\"contentboxright\"><b>השם ארוך מדי</b>"
            echo 
"&nbsp;|&nbsp;<a href=\"javascript:history.go(-1);\">חזור</a></div>\n"
        } 
        if(
strstr($name,"|")) { 
    
$er 1;
            echo 
"<div id=\"contentboxright\"><b>השם לא יכול להכיל את התו -|-</b>"
            echo 
"&nbsp;|&nbsp;<a href=\"javascript:history.go(-1);\">חזור</a></div>\n"
        } 
        if(
strstr($content,"|")) { 
    
$er 1;
            echo 
"<div id=\"contentboxright\"><b>תוכן הכתבה לא יכול להכיל את התו -|-</b>"
            echo 
"&nbsp;|&nbsp;<a href=\"javascript:history.go(-1);\">חזור</a></div>\n"
        } 
        if(
$er == 0){
  
            
mysql_query("INSERT INTO cms_articles(name,message,date,ip) VALUES('$name','$message','$date','$ip')");  
            echo 
"<div id=\"contentboxright\"><b>הכתבה נוספה</b>\n";  
            echo 
"&nbsp;|&nbsp;<a href=\"$PHP_SELF\">חזור לעמוד הראשי</a></div>\n";  
    } 
    } 

echo 
"<div id=\"contentadmin\">\n"
echo 
"<form method=\"post\" action=\"$PHP_SELF?action=add\">שם:<br /><input type=\"text\" size=\"30\" name=\"name\"><br />\n"
echo 
"תוכן הכתבה:<br /><textarea name=\"article\" cols=\"60\" rows=\"20\"></textarea><br /><br />\n"
echo 
"<u>הערות חשובות לפני שליחה:</u><br /><ul>\n"
echo 
"<li>בדוק היטב שהכתבה ו/או השם אינה/אינו מכיל/ה את התו '|' ושכל הנתונים הוזנו כהלכה.\n"
echo 
"<li>מומלץ לשמור את הכתבה בקובץ TXT לפני השליחה במידה ותקרה תקלה בשליחתה.</ul><br />\n"
echo 
"<input type=\"submit\" name=\"add\" value=\" שלח \"></form></div>\n"
echo 
"<input type=\"hidden\" name=\"ip\" value=\"$REMOTE_ADDR\">\n"


miniature 06-02-06 22:20

פתרת לי את הבעיה, תודה :)
במקום לפתוח נושא חדש אני אכתוב בעיה שונה כאן, היא לא גדולה כך שאל תנעלו בבקשה.

ככה:
יש לי את הקוד הנ"ל וזה מציג לי את ה $content ללא ירידת שורות =/ איך אני עושה שזה כן ירד שורות כמו שצריך?
הקוד:
PHP קוד:

  $queryview "SELECT * FROM cms_articles ORDER BY id DESC"
  
$resultview mysql_query($queryview);

  while(
$r mysql_fetch_array($resultview)) {
    
$name $r['name'];
    
$name strip_tags($name);
    
$subject $r['subject'];
    
$subject strip_tags($subject);
    
$content $r['content'];
    
$content strip_tags($content);
    
$date $r['date'];
    
$date strip_tags($date);

    echo 
"<br /><b><u>" $subject ":</u></b><br /><br />" $content "<br />" "<b>נשלח על ידי " $name " ב " $date "</b>\n"


רומן 06-02-06 22:27

תחליף את:

PHP קוד:

 $content strip_tags($content); 

ב

PHP קוד:

 $content nl2br(strip_tags($content)); 



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

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