PDA

View Full Version : تازه کار و مشکل با اولین SCRIPT



alux
شنبه 19 آذر 1384, 14:47 عصر
سلام دوستان میشه منو راهنمایی کنید ببینید مشکل این script من چی هست؟

<html>
<title>-Alux-</title>

<form action="<?php echo($PHP_SELF)?> " method="POST">

<br>
<input type="text" name="nam" >
<br>
<br>
<input type="text" name="url" value="http://">
<br>
<br>
<textarea name="txt" rows="20" cols="40">
</textarea>
<br><br>
<input type="submit" name="OK" value="SEND">
</form>

<?php
fopen("123.txt","w+");
fwrite ("123.txt","$txt ");
fclose("123.txt");

?>

</body>
</html>

وقتی من این صفحه رو باز و اطلاعات رو پر و SEND رو میزنم صفحه اصلی سایت میاد
و تو لاگ فایل های apache این error ها رو میده

Undefined variable: PHP_SELF in /var/www/html/alux.php
Undefined variable: OK in /var/www/html/alux.php
Undefined variable: txt in /var/www/html/alux.php
در صورتی که میبینبد همه تعریف هست
fwrite(): supplied argument is not a valid stream resource in /var/www/html/alux.php
fclose(): supplied argument is not a valid stream resource in /var/www/html/alux.php

ممنون از توجه شما

oxygenws
شنبه 19 آذر 1384, 17:19 عصر
کد های برنامه ات رو در تگ های مخصوص کد بذار تا بشه خوندش!!

once4ever
شنبه 19 آذر 1384, 19:47 عصر
از کد زیر داخل تگ فرم استفاده کن ببین چی میشه؟!

<?php echo $_SERVER['PHP_SELF']; ?>

alux
شنبه 19 آذر 1384, 20:36 عصر
oxygen عزیز منظور شما رو نفهمیدم
!!!

once4ever کد شما رو در قسمت اول form قرار دادم و وقتی به صفحه مورد نظر رفتم
http://www.mysite.com/alux.php
و اطلا عات را پر و SEND را زدم

با error 404 مواجه شدم و در ادرس بار IE این ادرس قرار داشت

http://www.mysite.com

تو error.log اپاچی هم این خط اضافه شد

error Attempt to serve directory: /var/www/html

oxygenws
شنبه 19 آذر 1384, 22:25 عصر
برادر/خواهر alux.... برای نمایش کد ها، از امکانات سایت استفاده کن تا کد هات درست نشون داده بشن، مثل کدی که جناب once4ever قرار داده. برای این منظور باید از تگ های باز و بستهء [ code ] استفاده کنی. (البته بدون space هایی که من گذاشتم!!)

alux
شنبه 19 آذر 1384, 22:34 عصر
<html>
<title>-Alux-</title>

<form action="<?php echo($PHP_SELF)?> " method="POST">

<br>
<input type="text" name="nam" >
<br>
<br>
<input type="text" name="url" value="http://">
<br>
<br>
<textarea name="txt" rows="20" cols="40">
</textarea>
<br><br>
<input type="submit" name="OK" value="SEND">
</form>

<?php
fopen("123.txt","w+");
fwrite ("123.txt","$txt ");
fclose("123.txt");

?>

</body>
</html>




امیدوارم این بار به من بگووید مشکلم چیست !!!

nematia
یک شنبه 20 آذر 1384, 05:55 صبح
دلایلی که به ذهن من میرسه:
اول: register_global را off کرده باشید. در این صورت می‌توانید از این یکی استفاده کنید:


$_SERVER['PHP_SELF']


دوم: تنظیم نادرست ServerRoot برای apache در فایل httpd.conf

سوم: در php5 می توان استفاده از متغیرهای از پیش تعریف شده را غیر فعال کرد.


برای نوشتن در یک فایل هم از اسکریپت زیر استفاده کنید:



if (!$handle = fopen($filename, 'a')) {
echo "Cannot open file ($filename)";
exit;
}

// Write $somecontent to our opened file.
if (fwrite($handle, $somecontent) === FALSE) {
echo "Cannot write to file ($filename)";
exit;
}

echo "Success, wrote ($somecontent) to file ($filename)";

fclose($handle);

alux
یک شنبه 20 آذر 1384, 07:04 صبح
دوس عزیز من مشکلم با global_register حل شد واقعا ممنونم

ولی من میخوام هر بار به ته فایل مطلب اضافه کنم چرا اول پاک میکنه مطالب قبلی رو و دوباره توش مینویسه؟؟

اینم کد


if (!$handle = fopen(iman,"w+")) {
exit;
}

// Write $somecontent to our opened file.
fwrite($handle," $nam\n\n") ;
fwrite($handle," $url\n\n") ;
fwrite($handle," $txt\n\n") ;



fclose($handle);

oxygenws
یک شنبه 20 آذر 1384, 10:02 صبح
به جای w+ از a+ استفاده کن.