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

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

LDan 20-01-07 11:54

בעיה בסשן
 
שלום,
ניתקלתי בשגיאה בסשן
קוד:

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/labdan/domains/prozit.net/public_html/root/nihul.php:1) in /home/labdan/domains/prozit.net/public_html/root/nihul.php on line 3
הקובץ זה מופיע בו:
PHP קוד:

<?php


session_start
();
require(
'configure.php');
require(
'header.php');
if ((isset(
$_SESSION['id'])) && (isset($_SESSION['user'])) && (isset($_SESSION['pass']))) {

switch (
$_GET['a']) {
case 
"logout":
session_destroy();
?>
<meta http-equiv="Refresh" content="0; URL=index.php">
<?php
break;
case 
".$a.update":
$id1$a;
$text $_POST['text'];
$headline $_POST['headline'];
if (
$_POST['text'] && $_POST['headline']) {
mysql_query("DELETE FROM  `nihul` WHERE `id`='.$a.'") or die (mysql_error()); 
$add1 "INSERT INTO nihul (id, text, headline) VALUES ('$id1', '$text','$headline')";

///////mysql_query("UPDATE 'nihul' WHERE `id`='1' SET headline='".$_POST['headling']."',text='".$_POST['text']."'") or die (mysql_error());

mysql_query($add1);
?>
השינויים עודכנו בהצלחה. הנך מועבר<br>
אם אינך מועבר בתוך מספר שניות, אנא לחץ <a href="<?= $_SERVER['PHP_SELF']; ?>?a=.$a."><b>כאן</b></a>
<meta http-equiv="Refresh" content="2; URL=<?= $_SERVER['PHP_SELF']; ?>$=.$a.">
<?php
} else {
echo 
"<b>אנא חזור אחורה ומלא את כל הפרטים, תודה</b>";
}
break;
case 
".$a.":
$n31 =  mysql_query("SELECT * FROM `nihul` WHERE `id`='.$a.'") or die(mysql_error());
$n1 mysql_fetch_array($n31);
?>
<form action="<?= $_SERVER['PHP_SELF']; ?>?a=.$a.update" method="POST">
    <table cellspacing="0" cellpadding="0" style="border: 0px solid #00009C;" width="95%" align="center">
        <tr>
            <td background="images/menu_00.jpg" align="center" height="20"><font color="FFFFFF"><b>עדכון פרטים</b></font></td>
</tr></table>
    <table cellspacing="1" cellpadding="0" style="border: 1px solid #00009C;" width="95%" align="center">
<tr>
    <td align="right" width="80%"><input type="text" dir="rtl" name="headline" value="<?= $n1['headline']; ?>" style="width: 500pxpx;"></td>
            <td align="right" dir="rtl" width="20%"><b><u>כותרת</b></u></td>

</tr>
<tr>
            <td align="right" width="80%"><TEXTAREA  NAME="text" onkeypress="return isNumberKey(event)"  style="width: 500px; height: 350px;" /><? echo "$n1[text]"?></TEXTAREA></td>
            <td align="right" dir="rtl" width="20%"><b><u>תוכן</b></u></td>
</tr>
</table>
<br>

<input type="submit" name="send" value="עדכן">
</form>



<?php
break;
}
mysql_close($connation);
} else {
header("Location: index.php");
}

?>

תודה לעזורים:-)

Eli-Hai 20-01-07 12:00

הבעיה היא, שאתה משתמש בפונקציה session_start(); ויש Headerים שמודפסים למעלה. אישית, לא רואה למעלה, תשתמש ב-ob_start() ו-ob_end_flush()

tnadav 20-01-07 12:13

אתה משתמש בקידוד UTF-8?

LDan 20-01-07 12:16

ציטוט:

נכתב במקור על ידי tnadav (פרסם 408914)
אתה משתמש בקידוד UTF-8?

כן

PHP קוד:

<?php

// Copyright © Hanan. All rights reserved.
ob_start();
require(
'configure.php');
require(
'header.php');
if ((isset(
$_SESSION['id'])) && (isset($_SESSION['user'])) && (isset($_SESSION['pass']))) {

switch (
$_GET['a']) {
case 
"logout":
session_destroy();
?>
<meta http-equiv="Refresh" content="0; URL=index.php">
<?php
break;
case 
".$a.update":
$id1$a;
$text $_POST['text'];
$headline $_POST['headline'];
if (
$_POST['text'] && $_POST['headline']) {
mysql_query("DELETE FROM  `nihul` WHERE `id`='.$a.'") or die (mysql_error()); 
$add1 "INSERT INTO nihul (id, text, headline) VALUES ('$id1', '$text','$headline')";

///////mysql_query("UPDATE 'nihul' WHERE `id`='1' SET headline='".$_POST['headling']."',text='".$_POST['text']."'") or die (mysql_error());

mysql_query($add1);
?>
השינויים עודכנו בהצלחה. הנך מועבר<br>
אם אינך מועבר בתוך מספר שניות, אנא לחץ <a href="<?= $_SERVER['PHP_SELF']; ?>?a=.$a."><b>כאן</b></a>
<meta http-equiv="Refresh" content="2; URL=<?= $_SERVER['PHP_SELF']; ?>$=.$a.">
<?php
} else {
echo 
"<b>אנא חזור אחורה ומלא את כל הפרטים, תודה</b>";
}
break;
case 
".$a.":
$n31 =  mysql_query("SELECT * FROM `nihul` WHERE `id`='.$a.'") or die(mysql_error());
$n1 mysql_fetch_array($n31);
?>
<form action="<?= $_SERVER['PHP_SELF']; ?>?a=.$a.update" method="POST">
    <table cellspacing="0" cellpadding="0" style="border: 0px solid #00009C;" width="95%" align="center">
        <tr>
            <td background="images/menu_00.jpg" align="center" height="20"><font color="FFFFFF"><b>עדכון פרטים</b></font></td>
</tr></table>
    <table cellspacing="1" cellpadding="0" style="border: 1px solid #00009C;" width="95%" align="center">
<tr>
    <td align="right" width="80%"><input type="text" dir="rtl" name="headline" value="<?= $n1['headline']; ?>" style="width: 500pxpx;"></td>
            <td align="right" dir="rtl" width="20%"><b><u>כותרת</b></u></td>

</tr>
<tr>
            <td align="right" width="80%"><TEXTAREA  NAME="text" onkeypress="return isNumberKey(event)"  style="width: 500px; height: 350px;" /><? echo "$n1[text]"?></TEXTAREA></td>
            <td align="right" dir="rtl" width="20%"><b><u>תוכן</b></u></td>
</tr>
</table>
<br>

<input type="submit" name="send" value="עדכן">
</form>



<?php
break;
}
mysql_close($connation);
} else {
header("Location: index.php");
ob_end_flush();
}
// Copyright © Prozit. All rights reserved.
?>

טוב אז עשיתי עם הOB
וזה כותב את השגיאה הבאה:
קוד:

Warning: Cannot modify header information - headers already sent by (output started at /home/labdan/domains/prozit.net/public_html/root/nihul.php:1) in /home/labdan/domains/prozit.net/public_html/root/nihul.php on line 67
(זאת השורה:
header("Location: index.php");
)

RS324 20-01-07 12:17

מה שמוזר זה , זה שהוא אומר לך שהארור בשורה 3 , כלומר ה HEADER התחיל שם ושורה 3 זה שורה ריקה, תנסה לצמצם את הרווח תראה מה הוא אומר...

LDan 20-01-07 12:20

ניסתי עם הסשן לצמצם את הרווח כתב לי
בעיה בשורה 2

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/labdan/domains/prozit.net/public_html/root/nihul.php:1) in /home/labdan/domains/prozit.net/public_html/root/nihul.php on line 2

(שם הסשן סטרט)

omercnet 20-01-07 12:53

תוודא שאין לך שום אנטרים לפני שאתה פותח את הPHP, זאת בד"כ הבעייה

Matchs 20-01-07 12:56

כנראה יש לו BOM בגלל שזה utf8.
אתה צריך להשתמש בעורך אחר כמו Notepad++.

LosNir 20-01-07 13:10

ציטוט:

נכתב במקור על ידי Matchs (פרסם 408944)
כנראה יש לו BOM בגלל שזה utf8.
אתה צריך להשתמש בעורך אחר כמו Notepad++.

בדיוק.

UTF-8 משחרר לך פלט כלשהו אוטמטית..

LDan 20-01-07 13:14

אין לי שמץ של מושג מהז ה משנה איזה עורך
למה אותם קודים:\

אבל ננסה...:)


הורדתי
אבל במקום עברית יוצא ג'בריש
ואיפה משנים לקידוד UTF-8
?


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

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