provlima me to reply to post

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
Άβαταρ μέλους
apoel
Δημοσιεύσεις: 350
Εγγραφή: 18 Ιούλ 2005 23:46
Επικοινωνία:

provlima me to reply to post

Δημοσίευση από apoel » 25 Αύγ 2005 23:28

pedia prospatho na kano ena diko mou forum. ola doulevoun telia ektos otan pao na kano reply se post. mou vgazi to akoloutho minima
Warning: Cannot modify header information - headers already sent by (output started at c:\web\antonis\replytopost.php:1) in c:\web\antonis\replytopost.php on line 73


o kodikos tis selidas pou egrapsa ine
<style type="text/css">
<!--
body {
background-image: url(/antonis/pergament.jpg);
}
-->
</style><?php
//connect to server and select database; we'll need it soon
$conn = mysql_connect("localhost", "root", "olimpiakos")
or die(mysql_error());
mysql_select_db("forum_topics",$conn) or die(mysql_error());

//check to see if we're showing the form or adding the post
if ($_POST[op] != "addpost") {
// showing the form; check for required item in query string
if (!$_GET[post_id]) {
header("Location: topiclist.php");
exit;
}

//still have to verify topic and post
$verify = "select ft.topic_id, ft.topic_title from
forum_posts as fp left join forum_topics as ft on
fp.topic_id = ft.topic_id where fp.post_id = $_GET[post_id]";

$verify_res = mysql_query($verify, $conn) or die(mysql_error());
if (mysql_num_rows($verify_res) < 1) {
//this post or topic does not exist
header("Location: topiclist.php");
exit;
} else {
//get the topic id and title
$topic_id = mysql_result($verify_res,0,'topic_id');
$topic_title = stripslashes(mysql_result($verify_res,
0,'topic_title'));

echo "
<html>
<head>
<title>Post Your Reply in $topic_title</title>
</head>
<body>
<h1>Post Your Reply in $topic_title</h1>
<form method=post action=\"$_SERVER[PHP_SELF]\">

<p><strong>Your E-Mail Address:</strong><br>
<input type=\"text\" name=\"post_owner\" size=40 maxlength=150>

<P><strong>Post Text:</strong><br>
<textarea name=\"post_text\" rows=8 cols=40 wrap=virtual></textarea>

<input type=\"hidden\" name=\"op\" value=\"addpost\">
<input type=\"hidden\" name=\"topic_id\" value=\"$topic_id\">
<P><input type=\"submit\" name=\"submit\" value=\"Add Post\"></p>
</form>
</body>
</html>";
}
} else if ($_POST[op] == "addpost") {
//check for required items from form
if ((!$_POST[topic_id]) || (!$_POST[post_text]) ||
(!$_POST[post_owner])) {
header("Location: topiclist.php");
exit;
}

//add the post
$add_post = "insert into forum_posts values ('', '$_POST[topic_id]',
'$_POST[post_text]', now(), '$_POST[post_owner]')";
mysql_query($add_post,$conn) or die(mysql_error());

//redirect user to topic
header("Location: showtopic.php?topic_id=$topic_id");
exit;
}
?>


i grami 73 ine i 4 grami apo to telos. Pou ine to lathos mou?

Άβαταρ μέλους
cordis
Administrator, [F|H]ounder, [C|S]EO
Δημοσιεύσεις: 27620
Εγγραφή: 09 Οκτ 1999 03:00
Τοποθεσία: Greece
Επικοινωνία:

provlima me to reply to post

Δημοσίευση από cordis » 25 Αύγ 2005 23:33

δεν μπορείς να στείλεις headers εάν έχεις πρώτα στείλει έστω κι έναν κενό χαρακτήρα στον browser... εδώ του έχεις στείλει την ιστορία της ζωής του.. :P

πρέπει να ακολουθήσεις άλλη μεθοδολογία για να στείλεις τον χρήστη εκεί που θέλεις...
Δεν απαντάω σε προσωπικά μηνύματα με ερωτήσεις που καλύπτονται από τις ενότητες του forum. Για ο,τι άλλο είμαι εδώ για εσάς.
- follow me @twitter

Άβαταρ μέλους
apoel
Δημοσιεύσεις: 350
Εγγραφή: 18 Ιούλ 2005 23:46
Επικοινωνία:

provlima me to reply to post

Δημοσίευση από apoel » 25 Αύγ 2005 23:39

pos mporo na to kano afto diaforetika?

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

provlima me to reply to post

Δημοσίευση από cherouvim » 26 Αύγ 2005 00:10

2 λύσεις

α) Στέλνεις το cookie πριν το content. Αυτό το καταφέρνεις πηγαίνοντας ένα διήμερο σε μία παραλία και κατά τη διάρκεια των μπάνιων σου σκέφτεσαι πως να διαχωρίσεις το content από το logic και από το presentation. Εσύ τα έχεις όλα μαζί. Αν τρέξει πρώτα το logic να μαζέψει το content και μετά στείλεις το content στο χρήστη (το οποίο περιλαμβάνει cookies και HTML) τότε είσαι καλυμμένος.

β) Cache-άρεις όλο σου το content σε έναν buffer (βλέπε http://gr2.php.net/manual/en/function.ob-start.php) και τον κάνεις output στο τέλος του execution του/των scripts σου. Κάπου ενδιάμεσα το cookie θα έχει μεταφερθεί επιτυχώς. Επί τι ευκαιρία διάβασε και για το http://gr2.php.net/manual/en/function.ob-gzhandler.php αν θες να συμπιέσεις τα δεδομένα προς output για καλύτερους χρόνους ανταπόκρισης του site σου.

Υ.γ προσπάθησε να γράψεις ένα class ή έστω ένα άλλο PHP που θα το κάνεις include το οποίο θα μιλάει στην DB σου. Μην συμπεριλαμβάνεις SQL κώδικα μέσα στα PHP αρχεία που παρουσιάζουν τις σελίδες σου. Θα είναι το πρώτο βήμα για να πλησιάσεις αυτό που σου πρότεινα στην πρώτη λύση.

Άβαταρ μέλους
apoel
Δημοσιεύσεις: 350
Εγγραφή: 18 Ιούλ 2005 23:46
Επικοινωνία:

provlima me to reply to post

Δημοσίευση από apoel » 26 Αύγ 2005 00:20

ton kodika pou sas edosa ine o monos kodika pou antegrapsa apo ena vivlio php pou exo ke ine o monos pou den doulevi!

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

provlima me to reply to post

Δημοσίευση από cherouvim » 27 Αύγ 2005 00:46

Μην ξαναντιγράψεις λοιπόν από βιβλίο και όλοι θα σου δουλεύουν.

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες