2014-08-29 65 views
0

我試圖寫一個表單的txt文件...這個想法是,用戶按下注冊按鈕,這將保存在一個txt文件,並返回到索引頁。fwrite php函數不寫

這是我的PHP文件:

<?php 
      if(!empty($_POST)){ 
       $rut = $_POST['rut']; 
       $dv = $_POST['dv']; 
       $pnom = $_POST['pnom']; 
       $snom = $_POST['snom']; 
       $pape = $_POST['pape']; 
       $mape = $_POST['mape']; 
       $sex = $_POST['sex']; 
       $dir = $_POST['dir']; 
       $comu = $_POST['comu']; 
       $pais = $_POST['pais']; 
       $fono = $_POST['fono']; 
       $movil = $_POST['movil']; 
       $mail = $_POST['mail']; 
       $user = $_POST['user']; 
       $pass = $_POST['pass']; 
       $rpas = $_POST['rpas']; 

       $usuarios = fopen("usuarios.txt", "a"); 
       fwrite($usuarios, $rut); 
       fwrite($usuarios,$dv,";"); 
       fwrite($usuarios,$pnom,";"); 
       fwrite($usuarios,$snom,";"); 
       fwrite($usuarios,$pape,";"); 
       fwrite($usuarios,$mape,";"); 
       fwrite($usuarios,$sex,";"); 
       fwrite($usuarios,$dir,";"); 
       fwrite($usuarios,$comu,";"); 
       fwrite($usuarios,$pais,";"); 
       fwrite($usuarios,$fono,";"); 
       fwrite($usuarios,$movil,";"); 
       fwrite($usuarios,$mail,";"); 
       fwrite($usuarios,$user,";"); 
       fwrite($usuarios,$pass,";"); 
       fwrite($usuarios,$rpas,"\r\n"); 
       fclose($usuarios); 
      } 
?> 

這是形式的html文件:

<html> 
<head> 
    <title>E1Formulario</title> 
    <meta charset="UTF-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
    <link rel="stylesheet" type="text/css" href="diseno/diseno.css"> 
</head> 
<script language="JavaScript" src="funciones.js"></script> 
<body> 
    <form name="formulario" action="generar_txt.php" method="POST"> 
     <table border="2" align="center" width="50%"> 
      <th colspan="2">FORMULARIO DE INGRESO</th> 
      <tr> 
       <td align="left"> 
        Rut:<input name="rut" type="text" size="8"> 
        <select name="dv"> 
         <option value = 0>0</option> 
         <option value = 1>1</option> 
         <option value = 2>2</option> 
         <option value = 3>3</option> 
         <option value = 4>4</option> 
         <option value = 5>5</option> 
         <option value = 6>6</option> 
         <option value = 7>7</option> 
         <option value = 8>8</option> 
         <option value = 9>9</option> 
         <option value = K>K</option> 
        </select> 
        <br><label name="lrut" style="color:#cc0000">*(Campo Obligatorio)</label> 
       </td> 
       <td align="left">Primer Nombre:* <input name="pnom" type="text"><br><label style="color:#cc0000">*(Campo Obligatorio)</label></td> 

      </tr> 
      <tr> 
       <td align="left">Segundo Nombre: <input name="snom" type="text"></td> 
       <td align="left">Apellido Paterno: <input name="pape" type="text"><br><label style="color:#cc0000">*(Campo Obligatorio)</label></td> 
      </tr> 
      <tr> 
       <td align="left">Apellido Materno: <input name="mape" type="text"></td> 
       <td align="left"> 
        Sexo<br> 
        Masculino <input name="sex" type="radio" value="Masculino"><br> 
        Femenino <input name="sex" type="radio" value="Femenino"> 
        <br><label style="color:#cc0000">*(Campo Obligatorio)</label> 
       </td> 
      </tr> 
      <tr> 
       <td align="left">Dirección: <input name="dir" type="text" size="50"><br><label style="color:#cc0000">*(Campo Obligatorio)</label></td> 
       <td align="left">Comuna: <input name="comu" type="text"><br><label style="color:#cc0000">*(Campo Obligatorio)</label></td> 
      </tr> 
      <tr> 
       <td align="left">País: <input name="pais" type="text" size="15"><br><label style="color:#cc0000">*(Campo Obligatorio)</label></td> 
       <td align="left">Teléfono: <input name="fono" type="text" size="9" onkeypress="JavaScript: return isNumber(event);"><br><label style="color:#cc0000">*(Campo Obligatorio)</label></td> 
      </tr> 
      <tr> 
       <td align="left">Movil: <input name="movil" type="text" onkeypress="JavaScript: return isNumber(event);"><br><label style="color:#cc0000">*(Campo Obligatorio)</label></td> 
       <td align="left">Email: <input name="mail" type="text" size="25"><br><label style="color:#cc0000">*(Campo Obligatorio)</label></td> 
      </tr> 
      <tr> 
       <td align="left">Usuario: <input name="user" type="text"><br><label style="color:#cc0000">*(Campo Obligatorio)</label></td> 
       <td align="left">Contraseña: <input name="pass" type="password"><br><label style="color:#cc0000">*(Campo Obligatorio)</label></td> 
      </tr> 
      <tr> 
       <td align="left" colspan="2">Repetir Contraseña: <input name="rpas" type="password" size="9"><br><label style="color:#cc0000">*(Campo Obligatorio)</label></td> 
      </tr> 
      <tr> 
       <td colspan="2" align="center"> 
        <input class="boton" name="reg" type="button" value="REGISTRAR" onclick="JavaScript: verificar_datos();"/> 
       </td> 
      </tr> 
     </table> 
    </form> 
</body> 

這是提交表單到PHP文件,然後將該功能去索引html文件:

函數verificar_datos(){

var f = document.formulario; 

//Validar que el usuario ingrese todos los campos obligatorios 
if(f.rut.value === ""){ 
    alert("El Rut es un campo obligatorio!"); 
    f.rut.focus(); 
    return 0; 
} 
if(revisarRut(f.rut.value.concat(f.dv.value)) === 0){ 
    return 0; 
} 

if(f.pnom.value === ""){ 
    alert("El Nombre es un campo obligatorio!"); 
    f.pnom.focus(); 
    return 0; 
} 
if(f.pape.value === ""){ 
    alert("El Apellido Paterno es un campo obligatorio!"); 
    f.pape.focus(); 
    return 0; 
} 
if(f.sex.value === ""){ 
    alert("El Sexo es un campo obligatorio!"); 
    f.sex.focus(); 
    return 0; 
} 
if(f.dir.value === ""){ 
    alert("La Dirección es un campo obligatorio!"); 
    f.dir.focus(); 
    return 0; 
} 
if(f.comu.value === ""){ 
    alert("La Comuna es un campo obligatorio!"); 
    f.comu.focus(); 
    return 0; 
} 
if(f.pais.value === ""){ 
    alert("El País es un campo obligatorio!"); 
    f.pais.focus(); 
    return 0; 
} 

if(revisarTelefonos() === 0){ 
    return 0; 
} 

if(verificarEmail() === 0){ 
    return 0; 
} 

if(f.user.value === ""){ 
    alert("Favor ingresar su Usuario"); 
    f.user.focus(); 
    return 0; 
} 
if(f.pass.value === ""){ 
    alert("Favor Ingrese su Contraseña"); 
    f.pass.focus(); 
    return 0; 
} 
if(f.rpas.value === ""){ 
    alert("Favor repetir su contraseña en el campo repetir"); 
    f.rpas.focus(); 
    return 0; 
} 
if(f.rpas.value !== f.pass.value){ 
    alert("La Segunda Contraseña no concuerda"); 
    f.rpas.value = ""; 
    f.rpas.focus(); 
    return 0; 
} 
f.submit(); 
alert("DATOS DE USUARIO INGRESADOS EXITOSAMENTE"); 
window.location= 'index.html'; 

}

我會很高興,如果有人能帶領我,因爲我想我擁有了一切正確的,但我仍然不明白的PHP上的txt文件編寫。

+0

嘗試添加'的error_reporting系統( E_ALL); ini_set('display_errors',1);'.php'文件中。失敗時應該得到一個錯誤。 – 2014-08-29 14:43:41

+0

你只是假設fopen()永遠不會失敗。錯誤的假設。 '$ fh = fopen(...);如果(!$ fh){die(「無法打開文件」); }' – 2014-08-29 14:43:51

+0

你檢查了文本文件將被寫入的文件夾的權限嗎? Apache的用戶將需要寫入權限 – 2014-08-29 14:44:53

回答

0

首先,添加後續行,開始你的PHP文件的

error_reporting(E_ALL); 

現在,改變下一行:

$usuarios = fopen("usuarios.txt", "a"); 

要:

$usuarios = fopen("usuarios.txt", "a+"); 

的A +會如果不存在,則創建一個文件。

並驗證文件是否打開。

$ usuarios = fopen(「usuarios.txt」,「a +」);

if (!$usuarios) { 
    die("Could not open file"); 
} else { 
    fwrite($usuarios, $rut); 
    fwrite($usuarios,$dv,";"); 
    fwrite($usuarios,$pnom,";"); 
    fwrite($usuarios,$snom,";"); 
    fwrite($usuarios,$pape,";"); 
    fwrite($usuarios,$mape,";"); 
    fwrite($usuarios,$sex,";"); 
    fwrite($usuarios,$dir,";"); 
    fwrite($usuarios,$comu,";"); 
    fwrite($usuarios,$pais,";"); 
    fwrite($usuarios,$fono,";"); 
    fwrite($usuarios,$movil,";"); 
    fwrite($usuarios,$mail,";"); 
    fwrite($usuarios,$user,";"); 
    fwrite($usuarios,$pass,";"); 
    fwrite($usuarios,$rpas,"\r\n"); 
    fclose($usuarios); 
} 

現在,一切都會按預期工作。

+0

感謝您的幫助。不過,我按照你所說的做了所有的事情,而且我仍然沒有寫出文件。我使用xampp與Apache,並沒有權限問題,因爲有些日子之前,我沒有得到的PHP寫,但現在不知何故,我不能 – 2014-08-29 15:04:45

+0

因此,嘗試創建該文件。 – 2014-08-29 15:14:54

+0

你的意思是先創建文件?對不起 – 2014-08-29 16:10:36

0

你也應該檢查文件「usuarios.txt」是從網絡服務器用戶可寫的,比如Apache或www用戶只需等檢查文件的chmod和目錄

+0

前幾天我的php代碼確實有效,但現在我做了一些更改(創建一個新的php文件並粘貼所有代碼)。所以我認爲這個文件沒有權限問題。 – 2014-08-29 15:06:28

+0

你可以檢查php的error_log它可以給出一些關於這個問題的線索。也可能是你不知道,如果你從cli運行php並且它在那之後運行,你通過網絡服務器運行它並且它不起作用,這可能與包含它的文件和目錄的權限有關 – 2014-09-01 11:03:46