ต้องการจะเขียนโค๊ตนี้ลงไปในไฟล์ โดยกรอกผ่าน form
<?xml version="1.0"?>
<users>
<user>B4402B94DE0C497DB570BCDEE0F98AA6</user>
</users>
ผมต้องเขียนโค๊ตยังไงครับ พอจะมีตัวอย่างหรือแนวทางมั้ยครับ ขอบคุณครับ :-*
<form action="" mothod="get"><textarea name="data"></textarea><input type="submit" name="submit" value="Send"></form>
<?
if(!empty($_GET['data'])) {
$fp = fopen("save.txt","w") or die("Cannot Open File");
fwrite($fp, $_GET['data']) or die("Cannot Write File");
fclose($fp);
}
echo "Saved!";
?>
โอววว :'( ขอบคุณมากเลยครับ ได้แล้วครับ แต่ติดนิดเดียวพอเวลากด sand แล้วมันคืนค่าลิ้งค์ออกมาเป็น ลิ้งค์ยาวๆเลยอะครับถ้าอยากจะให้คืนค่าเป็น
header("Location: submit.php?status=done");
ต้องเอาไปใส่ตรงไหนครับ ???
ููุ^
^
ได้แล้วครับ มั่วไมั่วมาได้เฉยเลย ;D
ตะกี้เข้าไปดูอีกทีครับ โค๊็ตที่ได้ มันมี \ นำหน้าด้วยอะครับ เอาออกยังไงครับ
ต้นฉบับ
<?xml version="1.0"?>
<users>
<user>B4402B94DE0C497DB570BCDEE0F98AA6</user>
</users>
โค๊ตที่ได้
<?xml version=\"1.0\"?>
<users>
<user>B4402B94DE0C497DB570BCDEE0F98AA6</user>
</users>
น้อง ethaizone ครับ ขออีกที มันใช้กับ php5 ไม่ได้อะครับ หรือใครพอจะเขียนให้ใช้กับ php5 ได้มั่งครับ ขอบคุณครับ :-*
อ้างถึงจาก: snowball926 ใน 22 มิถุนายน 2008, 19:36:48
น้อง ethaizone ครับ ขออีกที มันใช้กับ php5 ไม่ได้อะครับ หรือใครพอจะเขียนให้ใช้กับ php5 ได้มั่งครับ ขอบคุณครับ :-*
ต้องการแบบไหนอ่ะ ถ้าเขียนครั้งเดียวจบก็
form action="" mothod="get"><textarea name="data"></textarea><input type="submit" name="submit" value="Send"></form>
<?
if(!empty($_GET['data'])) {
$data ='<?xml version="1.0"?>
<users>
<user>'.$_GET['data'].'</user>
</users>';
$fp = fopen("save.txt","w+");
fwrite($fp, $data);
fclose($fp);
}
echo "Saved!";
?>ผลลัพท์
<?xml version="1.0"?>
<users>
<user>B4402B94DE0C497DB570BCDEE0F98AA6</user>
</users>ถ้าจะเขียนต่อท้ายเรื่อย ๆ ก็
form action="" mothod="get"><textarea name="data"></textarea><input type="submit" name="submit" value="Send"></form>
<?
if(!empty($_GET['data'])) {
if(!file_exists("save.txt")){
$data ='<?xml version="1.0"?>
<users>
<user>'.$_GET['data'].'</user>
</users>';
$fp = fopen("save.txt","w+");
fwrite($fp, $data."\n");
fclose($fp);
}else{
$data ='<users>
<user>'.$_GET['data'].'</user>
</users>';
$fp = fopen("save.txt","a+");
fwrite($fp, $data."\n");
fclose($fp);
}
}
echo "Saved!";
?>ผลลัพท์
<?xml version="1.0"?>
<users>
<user>B4402B94DE0C497DB570BCDEE0F98AA6</user>
</users>
<users>
<user>123456</user>
</users>
ขอบคุณมากครับ คืออยากจะให้มันรับค่าอะไรก็ได้อะครับ ผมใช้อยู่หลายแบบเลยครับ ถ้าแบบนี้ก็จะรับค่าได้แบบเดียว เลยใช่มั้ยครับ :P
อ้างถึงจาก: snowball926 ใน 22 มิถุนายน 2008, 20:19:50
ขอบคุณมากครับ คืออยากจะให้มันรับค่าอะไรก็ได้อะครับ ผมใช้อยู่หลายแบบเลยครับ ถ้าแบบนี้ก็จะรับค่าได้แบบเดียว เลยใช่มั้ยครับ :P
ไม่รู้สิ ไม่เข้าใจุดประสงค์อ่ะ เห็นจะรับค่า user มะใช่เหรอ ถ้าจะให้เป็นแบบ
<?xml version="1.0"?>
<users>
<user>B4402B94DE0C497DB570BCDEE0F98AA6</user>
<user>123456789</user>
<user>987654321</user>
</users>แบบนี้ต้องเขียนเพิ่มในส่วนของการดึง xml มาแล้วเพิ่มข้อมูลลงไป แล้วเขียนใหม่อ่ะ หรือ
<?xml version="1.0"?>
<users>
<user>B4402B94DE0C497DB570BCDEE0F98AA6</user>
<name>123456789</name>
<password>987654321</password>
</users>แบบนี้ก็จะซับซ้อนขึ้นอ่ะ
ไปดูเองละกัน
http://th2.php.net/manual/en/simplexml.examples.php
::)
คืออยากได้โค๊ตแบบเก่าที่น้อง ethaizone เขียนอะครับ แต่ให้มันใช้ได้กับ php5 แค่นั้นเองครับ
รองรับการรับค่าเป็น text และ php code อะครับพอกรอกเข้าไปแล้วกด submit มันก็จะไปสร้างไฟล์และ content ตามที่เรากรอกลงไปครับ ขอบคุณมากครับที่ให้ url มาศึกษาต่อ แต่ผมเขียนphpไม่เป็นครับ เศร้า :'(
อ้างถึงจาก: snowball926 ใน 22 มิถุนายน 2008, 20:58:08
คืออยากได้โค๊ตแบบเก่าที่น้อง ethaizone เขียนอะครับ แต่ให้มันใช้ได้กับ php5 แค่นั้นเองครับ
รองรับการรับค่าเป็น text และ php code อะครับพอกรอกเข้าไปแล้วกด submit มันก็จะไปสร้างไฟล์และ content ตามที่เรากรอกลงไปครับ ขอบคุณมากครับที่ให้ url มาศึกษาต่อ แต่ผมเขียนphpไม่เป็นครับ เศร้า :'(
มันก็รองรับ php5 นิ ลองเปลี่ยนจาก
$fp = fopen("save.txt","w") or die("Cannot Open File");เป็น
$fp = fopen("save.txt","w+") or die("Cannot Open File");เติม + เข้าไปที่ w ที่ error น่าจะมาจาก 3 อย่างคือ
1. เป็น w เฉย ๆ หมายความว่า ถ้าไม่มีไฟล์ที่ว่าอยู่จริงมันจะ error เพราะเขียนไม่ได้ ให้เปลี่ยนเป็น w+ ซะ ซึ่งมันจะหมายถึง ถ้าไม่มีไฟล์ที่ว่า มันจะสร้างเอง หรือ สร้างไฟล์ save.txt ขึ้นมาเองก็ได้
2. ทางโฮสไม่เปิดใช้งาน fopen มั๊ง
3. ไม่ได้ chmod 777 ไฟล์หรือ directory ที่เขียนไฟล์ ทางที่ดีน่าจะเก็บไฟล์ไว้ใน directory อีกทีนะ แล้ว chmod 777 directory นั้นซะ ตัวอย่าง
<form action="" mothod="get"><textarea name="data"></textarea><input type="submit" name="submit" value="Send"></form>
<?
if(!empty($_GET['data'])) {
$fp = fopen("data/save.txt","w+") or die("Cannot Open File");
fwrite($fp, $_GET['data']) or die("Cannot Write File");
fclose($fp);
}
echo "Saved!";
?>
ตามตัวอย่างด้านบน คุณต้องสร้าง directory ชื่อ data เพื่อเอาไว้เก็บไฟล์ save.txt แล้ว chmod 777 ที่ directory ซะ
:)
อ้อ ลืมบอก ควรจะ save เป็นชื่อไฟล์ตาม user นะ เช่น
<form action="" mothod="get"><textarea name="data"></textarea><input type="submit" name="submit" value="Send"></form>
<?
if(!empty($_GET['data'])) {
if(!file_exists("data/".trim($_GET['data']).".txt")){
$fp = fopen("data/".trim($_GET['data']).".txt","w+");
fwrite($fp, $_GET['data']);
fclose($fp);
echo "Saved!";
}else{
echo "User:"$_GET['data']." is not available";
}
}
?>
ตามโค๊ดข้างบน จะได้ผลลัพท์เช่น
ครั้งที่ 1 กรอกข้อมูล 123456 แล้วกดปุ่ม Send มันจะสร้างไฟล์ชื่อว่า 123456.txt ที่ directory ที่ชื่อว่า data
ครั้งที่ 2 กรอกข้อมูล 789012 แล้วกดปุ่ม Send มันจะสร้างไฟล์ชื่อว่า 789012.txt ที่ directory ที่ชื่อว่า data
แบบนี้รึเปล่าที่ต้องการ ถ้าใช่ ทำไมไม่บอกว่าต้องการให้เขียนไฟล์ในแต่ละไฟล์เป็นชื่อตาม user ที่กรอกล่ะ
สงสัยผมอธิบายไม่ละเอียดเองครับ ลองเอาโค๊ตไปดูเลย
<?
if($Submit)
{
if(!empty($_GET['data'])) {
$fp = fopen("mypage.php","w+") or die("Cannot Open File");
fwrite($fp, stripslashes($_GET['data'])) or die("Cannot Write File");
fclose($fp);
}
header("Location: getcode.php?status=done");
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Submit msn sitemap</title>
</head>
<body>
<div align="center">
<p> </p>
<p><strong>Msn Verify Code Creator </strong></p>
<form action="" method="get" name="form1"><table width="600" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>Code</td>
<td> <textarea cols="40" rows="5" name="data" id="code"></textarea>
</td>
</tr>
<tr>
<td> </td>
<td> <input type="submit" name="Submit" value="Submit">
</td>
</tr>
</table></form>
</div>
</body>
</html>
แล้วผมก็สามารถกรอกอะไรไปก็ได้ครับทั้ง text หรือ php code แล้วกดซับมิท มันก็จะำไปสร้างไฟล์ชื่อ mypage.php แล้วในนั้นก็จะมีข้อมูลที่ผมกรอกไป เช่นผมกรอก คำว่า "test" ลงไปพอกดซับมิท ก้จะสร้างไฟล์ชื่อ mypage.php ขึ้นมาแล้วในนั้นก็จะมีข้อมูลคือ test หรือถ้าผมกรอกเป็น php code คือ " <?php ?>"พอกดซับมิทก้จะไปสร้างไฟล์ชื่อ mypage.php และมีโค๊ต <?php ?> อยู่ในนั้น
ลองเปลี่ยนเป็น w+ ตามที่บอกแล้วครับยังใช้ไม่ได้ครับ ผมลองtest หลายรอบมากๆแล้ว ถ้าใช้กับเว็บที่เป็น php4 โค๊ตที่ผมโพสไว้ใช้ได้ปกติครับ แต่ถ้าเปลี่ยนเป็นเว็บที่ใช้ php5 มันก็จะไม่เขียนไฟล์อะไรให้เลยครับ
แก้
if($Submit)
เป็น
if($_GET['$Submit'])
ครับ
:P
ยังใช้ไม่ได้ครับ :'( มันไม่สร้างไฟล์ให้เลยอะครับ ผมต้องไป chmod อะไรด้วนรึปล่าวครับ แต่ก็แปลกนะใช้กับ php4 สบายเลย แต่ใช้กับ php5 ไม่ได้ไม่สร้างไฟล์ให้เลยอะครับ แต่ตรง url มันจะขึ้นแบบนี้นะครับ
ก่อนกด submit
http://www.mydomain.net/getcode.php
หลังกด submit ผมใส่ข้อความว่า "test" ลงไป
http://www.mydomain.net/getcode.php?data=test&Submit=Submit
แต่ไม่สร้างไฟล์อะไรให้เลย :-\
ต้อง chmod โฟลเดอร์ที่จะเขียนไฟล์เป็น 666 ด้วยนะครับ
ผมเทสบน php5 ก็ปกติดี ไม่งั้นก็ลองใช้โค้ดแบบนี้แทน (อันนี้สำหรับ php5แท้ๆ ใช้บน php4 ไม่ได้ - -*)
<?
if($_GET['Submit'])
{
if(!empty($_GET['data'])) {
file_put_contents("mypage.php", stripslashes($_GET['data'])) or die("Cannot Write File");
}
header("Location: getcode.php?status=done");
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Submit msn sitemap</title>
</head>
<body>
<div align="center">
<p> </p>
<p><strong>Msn Verify Code Creator </strong></p>
<form action="" method="get" name="form1"><table width="600" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>Code</td>
<td> <textarea cols="40" rows="5" name="data" id="code"></textarea>
</td>
</tr>
<tr>
<td> </td>
<td> <input type="submit" name="Submit" value="Submit">
</td>
</tr>
</table></form>
</div>
</body>
</html>
โอววววววววววววว ได้แล้วครับๆๆ :'( :'( :'( ดีใจสุดๆเลยอะงานผมจะได้เริ่มซักกะที น้องโจ้ สุดยอดเลยครับ ถ้าให้พี่ช่วยอะไรได้ก็ยินดีเลยครับ ขอชอน้องโจ้อีกหน่อย ขวบปีผ่านมา ความมีน้ำใจที่เคยมีสมัยแรกๆเป็นยังไง ตอนนี้ก็ยังเหมือนเดิมเลย น่าจะมีแบบขึ้นป้ายบุคคลดีเด่นประจำวันนี้อะไรแบบเนี้ย เหมือนเซเว่นที่มีป้ายพนักงานดีเด่น ;D
แล้วก็ขอบคุณๆ halu ด้วยนะครับถึงจะไม่สำเร็จแต่แค่น้ำใจ ที่ช่วยเหลือแค่นี้ก็ ขอบคุณมากๆแล้วครับ :)
ว้ายยย มาไม่ทัน :-[
อ้างถึงจาก: thenetxx ใน 23 มิถุนายน 2008, 16:31:16
ว้ายยย มาไม่ทัน :-[
ทันครับใครว่าไม่ทัน ;D งั้นช่วยแก้โค๊ตนี้ให้ผมที่ครับ ให้ใช้กับ php5 ได้อะครับมันใช้ไม่ได้ :P
<?
if($Submit)
{
$filename=strtolower($filename);
$code=strtolower($code);
if (!file_exists($filename)) {
$fp = fopen("$filename", "a");
$content="<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML//EN\">
<HTML>
<HEAD>
<TITLE>
</TITLE>
<BODY>
<!-- $code -->
</BODY>
</HTML>";
fwrite($fp,$content);
fclose($fp);
}
header("Location: yahoo.php?status=done");
}
?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Untitled Document</title>
</head>
<body>
<div align="center">
<p> </p>
<p><strong>Yahoo Verify Code Creator </strong></p>
<form action="" method="post" name="form1"><table width="600" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>HTML Name </td>
<td> <input name="filename" type="text" id="filename" size="60">
</td>
</tr>
<tr>
<td>Code</td>
<td> <input name="code" type="text" id="code" size="60">
</td>
</tr>
<tr>
<td> </td>
<td> <input type="submit" name="Submit" value="Submit">
</td>
</tr>
</table></form>
</div>
</body>
</html>
ปัญหามันไม่ได้มาจาก php4 /5 มั้งครับ
แล้วก็ไม่ได้ตรวจ เช็คอะไรเลย -*-
แล้วก็ การกระทำการใด ๆ กะไฟล์ต้องเช็คเพอมิสชั่นก่อนด้วยนะครับ
ไม่งั้นจะขึ้น failed to open stream: Permission denied
if($_POST['filename'] && $_POST['code'])
{
$filename=strtolower($_POST['filename']);
$code=strtolower($_POST['code']);
//
//กรุณาเช็คค่าก่อนทำอะไร เพื่อป้องกันโดน hack ด้วยครับ
//
if (!file_exists($filename)) {
$fp = fopen($filename, 'W');
}
else{
//chmod($_POST['filename'],0777);
$fp = fopen($filename, 'a+');
}
//จับยัดตัวแปล จะเขียนเพิ่ม หรือเขียนทับ ดู mode เอาเอง
$content=$code;
fputs($fp,$content);
fclose($fp);
//header("Location: yahoo.php?status=done");
}
ขอบคุณครับ โปรแกรมมั่วอย่างผมมั่วโค๊ตเป็นอย่างเดียวครับ :-[ แต่ผมก็ยังงง อยู่ดีผมเอาไปใช้กับเว็บที่เป็น php4 ดันใช้ได้ แต่พอเอามาใช้กับ php5 มันไม่สร้างอะไรให้เลย ???
โน๊ตไว้นิดนึง เพื่อใครมาอ่านเดี๋ยวจะงง โค๊ตที่คุณ thenetxx แก้ให้ คนละอันกับที่ คุณ ethaizone แก้ให้นะครับ อันแรกสมบูรณ์แล้ว อันสองกำลังทดลองครับ :)
ผมเจอ error แบบเนี้ยอะครับ ทำไงต่อดี มันเกี๋ยวกับ fopen ใช่้ปะครับ :P
Warning: fopen(test.html) [function.fopen]: failed to open stream: No such file or directory in /home/.tudor/mydomain/mydomain.com/yahoo2.php on line 10
Warning: fputs(): supplied argument is not a valid stream resource in /home/.tudor/mydomain/mydomain.com/yahoo2.php on line 19
Warning: fclose(): supplied argument is not a valid stream resource in /home/.tudor/mydomain/mydomain.com/yahoo2.php on line 20
ก่อนจะ fopen ลองกำหนดเป็น path จริงครับ
แล้วก็อย่าลืม permission file
อ้างถึงจาก: thenetxx ใน 26 มิถุนายน 2008, 16:02:12
ก่อนจะ fopen ลองกำหนดเป็น path จริงครับ
แล้วก็อย่าลืม permission file
งงครับ :-[ แล้วผมจะไปกำหนด path ตรงไหนอะครับ แล้ว permission file คือตรงที่เราไป chmod ใช่ปะครับ